Program: 162956
Project: 162956
Buggy source:
public VanillaChronicleMap(ChronicleMapBuilder<K,V> builder) throws IOException {
  keyBuilder=builder.keyBuilder;
  kClass=keyBuilder.eClass;
  keySizeMarshaller=keyBuilder.sizeMarshaller();
  originalKeyReader=keyBuilder.reader();
  dataFileVersion=BuildVersion.version();
  jsonConverters=builder.jsonConverters();
  originalKeyInterop=(KI)keyBuilder.interop();
  originalMetaKeyInterop=(MKI)keyBuilder.metaInterop();
  metaKeyInteropProvider=(MetaProvider<K,KI,MKI>)keyBuilder.metaInteropProvider();
  valueBuilder=builder.valueBuilder;
  vClass=valueBuilder.eClass;
  if (vClass.getName().endsWith("String_Node_Str")) {
    nativeValueClass=vClass;
  }
 else   if (vClass.isInterface()) {
    Class nativeValueClass=null;
    try {
      nativeValueClass=DataValueClasses.directClassFor(vClass);
    }
 catch (    Exception e) {
    }
    this.nativeValueClass=nativeValueClass;
  }
 else {
    nativeValueClass=null;
  }
  valueSizeMarshaller=valueBuilder.sizeMarshaller();
  originalValueReader=valueBuilder.reader();
  originalValueInterop=(VI)valueBuilder.interop();
  originalMetaValueInterop=(MVI)valueBuilder.metaInterop();
  metaValueInteropProvider=(MetaProvider)valueBuilder.metaInteropProvider();
  defaultValueProvider=builder.defaultValueProvider();
  prepareValueBytesAsWriter=builder.prepareValueBytesAsWriter();
  lockTimeOutNS=builder.lockTimeOut(TimeUnit.NANOSECONDS);
  boolean replicated=getClass() == ReplicatedChronicleMap.class;
  this.chunkSize=builder.chunkSize(replicated);
  this.alignment=builder.valueAlignment();
  this.constantlySizedEntry=builder.constantlySizedEntries();
  this.worstAlignment=builder.worstAlignment(replicated);
  int alignment=this.alignment.alignment();
  this.couldNotDetermineAlignmentBeforeAllocation=greatestCommonDivisor((int)chunkSize,alignment) != alignment;
  this.specialEntrySpaceOffset=builder.specialEntrySpaceOffset(replicated);
  this.errorListener=builder.errorListener();
  this.putReturnsNull=builder.putReturnsNull();
  this.removeReturnsNull=builder.removeReturnsNull();
  this.actualSegments=builder.actualSegments(replicated);
  this.actualChunksPerSegment=builder.actualChunksPerSegment(replicated);
  this.entriesPerSegment=builder.entriesPerSegment(replicated);
  this.multiMapFactory=builder.multiMapFactory(replicated);
  this.metaDataBytes=builder.metaDataBytes();
  this.eventListener=builder.eventListener();
  this.bytesEventListener=builder.bytesEventListener();
  this.segmentHeaderSize=builder.segmentHeaderSize(replicated);
  this.maxChunksPerEntry=builder.maxChunksPerEntry();
  hashSplitting=HashSplitting.Splitting.forSegments(actualSegments);
  initTransients();
}

Fixed version (ground truth):
public VanillaChronicleMap(ChronicleMapBuilder<K,V> builder) throws IOException {
  SerializationBuilder<K> keyBuilder=builder.keyBuilder;
  kClass=keyBuilder.eClass;
  keySizeMarshaller=keyBuilder.sizeMarshaller();
  originalKeyReader=keyBuilder.reader();
  dataFileVersion=BuildVersion.version();
  jsonConverters=builder.jsonConverters();
  originalKeyInterop=(KI)keyBuilder.interop();
  originalMetaKeyInterop=(MKI)keyBuilder.metaInterop();
  metaKeyInteropProvider=(MetaProvider<K,KI,MKI>)keyBuilder.metaInteropProvider();
  SerializationBuilder<V> valueBuilder=builder.valueBuilder;
  vClass=valueBuilder.eClass;
  if (vClass.getName().endsWith("String_Node_Str")) {
    nativeValueClass=vClass;
  }
 else   if (vClass.isInterface()) {
    Class nativeValueClass=null;
    try {
      nativeValueClass=DataValueClasses.directClassFor(vClass);
    }
 catch (    Exception e) {
    }
    this.nativeValueClass=nativeValueClass;
  }
 else {
    nativeValueClass=null;
  }
  valueSizeMarshaller=valueBuilder.sizeMarshaller();
  originalValueReader=valueBuilder.reader();
  originalValueInterop=(VI)valueBuilder.interop();
  originalMetaValueInterop=(MVI)valueBuilder.metaInterop();
  metaValueInteropProvider=(MetaProvider)valueBuilder.metaInteropProvider();
  defaultValueProvider=builder.defaultValueProvider();
  prepareValueBytesAsWriter=builder.prepareValueBytesAsWriter();
  lockTimeOutNS=builder.lockTimeOut(TimeUnit.NANOSECONDS);
  boolean replicated=getClass() == ReplicatedChronicleMap.class;
  this.chunkSize=builder.chunkSize(replicated);
  this.alignment=builder.valueAlignment();
  this.constantlySizedEntry=builder.constantlySizedEntries();
  this.worstAlignment=builder.worstAlignment(replicated);
  int alignment=this.alignment.alignment();
  this.couldNotDetermineAlignmentBeforeAllocation=greatestCommonDivisor((int)chunkSize,alignment) != alignment;
  this.specialEntrySpaceOffset=builder.specialEntrySpaceOffset(replicated);
  this.errorListener=builder.errorListener();
  this.putReturnsNull=builder.putReturnsNull();
  this.removeReturnsNull=builder.removeReturnsNull();
  this.actualSegments=builder.actualSegments(replicated);
  this.actualChunksPerSegment=builder.actualChunksPerSegment(replicated);
  this.entriesPerSegment=builder.entriesPerSegment(replicated);
  this.multiMapFactory=builder.multiMapFactory(replicated);
  this.metaDataBytes=builder.metaDataBytes();
  this.eventListener=builder.eventListener();
  this.bytesEventListener=builder.bytesEventListener();
  this.segmentHeaderSize=builder.segmentHeaderSize(replicated);
  this.maxChunksPerEntry=builder.maxChunksPerEntry();
  hashSplitting=HashSplitting.Splitting.forSegments(actualSegments);
  initTransients();
}