private V createValueIfNull(V value) {
   if (value == null) {
     if (generatedValueType) value = DataValueClasses.newDirectReference(vClass);
     else
       try {
         value = vClass.newInstance();
       } catch (Exception e) {
         throw new AssertionError(e);
       }
   }
   return value;
 }
 /**
  * Reads from {@link this.tmpBytes} an object at {@param offset}, will reuse {@param value} if
  * possible, to reduce object creation.
  *
  * @param offset the offset to read the data from
  * @param value the object to reuse ( if possible ), if null a new object will be created an
  *     object and no reuse will occur.
  */
 @SuppressWarnings("unchecked")
 V readObjectUsing(V value, final long offset) {
   if (value instanceof Byteable) {
     ((Byteable) value).bytes(bytes, offset);
     return value;
   }
   if (generatedValueType) {
     if (value == null) value = DataValueClasses.newInstance(vClass);
     ((BytesMarshallable) value).readMarshallable(tmpBytes);
     return value;
   }
   return tmpBytes.readInstance(vClass, value);
 }
  @Before
  public void setup() throws IOException {
    value = DataValueClasses.newDirectReference(IntValue.class);
    ((Byteable) value).bytes(new ByteBufferBytes(ByteBuffer.allocateDirect(4)), 0);

    final InetSocketAddress endpoint = new InetSocketAddress("localhost", s_port + 1);
    timeProvider =
        new TimeProvider() {

          Random rnd = new Random(4);

          @Override
          public long currentTime() {

            if (rnd.nextBoolean()) return t++;
            else return t;
          }
        };

    {
      final TcpTransportAndNetworkConfig tcpConfig1 =
          TcpTransportAndNetworkConfig.of(s_port, endpoint);

      map1 =
          ChronicleMapBuilder.of(Integer.class, CharSequence.class)
              .entries(Builder.SIZE)
              .timeProvider(timeProvider)
              .replication((byte) 1, tcpConfig1)
              .create();
    }
    {
      final TcpTransportAndNetworkConfig tcpConfig2 = TcpTransportAndNetworkConfig.of(s_port + 1);

      map2 =
          ChronicleMapBuilder.of(Integer.class, CharSequence.class)
              .entries(Builder.SIZE)
              .timeProvider(timeProvider)
              .replication((byte) 2, tcpConfig2)
              .create();
    }
    s_port += 2;
  }