Program: 38860
Project: 38860
Buggy source:
@Test public void baseTest() throws IOException {
  UncompressedStringArrayChunk chunk=new UncompressedStringArrayChunk(1,new String[]{"String_Node_Str","String_Node_Str","String_Node_Str"});
  assertEquals(1,chunk.getOffset());
  assertEquals(3,chunk.getLength());
  assertArrayEquals(new String[]{"String_Node_Str","String_Node_Str","String_Node_Str"},chunk.getValues());
  assertEquals(6,chunk.getEstimatedSize());
  assertFalse(chunk.isCompressed());
  assertEquals(1d,chunk.getCompressionFactor(),0d);
  CompactStringBuffer buffer=new CompactStringBuffer(4);
  chunk.fillBuffer(buffer,0);
  assertArrayEquals(new String[]{null,"String_Node_Str","String_Node_Str","String_Node_Str"},buffer.toArray());
  String jsonRef=String.join(System.lineSeparator(),"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  assertEquals(jsonRef,JsonUtil.toJson(chunk::writeJson));
  ObjectMapper objectMapper=new ObjectMapper().registerModule(new TimeSeriesJsonModule());
  List<StringArrayChunk> chunks=objectMapper.readValue(objectMapper.writeValueAsString(Arrays.asList(chunk)),TypeFactory.defaultInstance().constructCollectionType(List.class,StringArrayChunk.class));
  assertEquals(1,chunks.size());
  assertEquals(chunk,chunks.get(0));
  assertTrue(objectMapper.readValue(objectMapper.writeValueAsString(chunk),ArrayChunk.class) instanceof StringArrayChunk);
  RegularTimeSeriesIndex index=RegularTimeSeriesIndex.create(Interval.parse("String_Node_Str"),Duration.ofMinutes(15));
  assertEquals(ImmutableList.of(new StringPoint(1,Instant.parse("String_Node_Str").toEpochMilli(),"String_Node_Str"),new StringPoint(2,Instant.parse("String_Node_Str").toEpochMilli(),"String_Node_Str"),new StringPoint(3,Instant.parse("String_Node_Str").toEpochMilli(),"String_Node_Str")),chunk.stream(index).collect(Collectors.toList()));
}

Fixed version (ground truth):
@Test public void baseTest() throws IOException {
  UncompressedStringArrayChunk chunk=new UncompressedStringArrayChunk(1,new String[]{"String_Node_Str","String_Node_Str","String_Node_Str"});
  assertEquals(1,chunk.getOffset());
  assertEquals(3,chunk.getLength());
  assertArrayEquals(new String[]{"String_Node_Str","String_Node_Str","String_Node_Str"},chunk.getValues());
  assertEquals(6,chunk.getEstimatedSize());
  assertFalse(chunk.isCompressed());
  assertEquals(1d,chunk.getCompressionFactor(),0d);
  CompactStringBuffer buffer=new CompactStringBuffer(4);
  chunk.fillBuffer(buffer,0);
  assertArrayEquals(new String[]{null,"String_Node_Str","String_Node_Str","String_Node_Str"},buffer.toArray());
  String jsonRef=String.join(System.lineSeparator(),"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  assertEquals(jsonRef,JsonUtil.toJson(chunk::writeJson));
  ObjectMapper objectMapper=JsonUtil.createObjectMapper().registerModule(new TimeSeriesJsonModule());
  List<StringArrayChunk> chunks=objectMapper.readValue(objectMapper.writeValueAsString(Arrays.asList(chunk)),TypeFactory.defaultInstance().constructCollectionType(List.class,StringArrayChunk.class));
  assertEquals(1,chunks.size());
  assertEquals(chunk,chunks.get(0));
  assertTrue(objectMapper.readValue(objectMapper.writeValueAsString(chunk),ArrayChunk.class) instanceof StringArrayChunk);
  RegularTimeSeriesIndex index=RegularTimeSeriesIndex.create(Interval.parse("String_Node_Str"),Duration.ofMinutes(15));
  assertEquals(ImmutableList.of(new StringPoint(1,Instant.parse("String_Node_Str").toEpochMilli(),"String_Node_Str"),new StringPoint(2,Instant.parse("String_Node_Str").toEpochMilli(),"String_Node_Str"),new StringPoint(3,Instant.parse("String_Node_Str").toEpochMilli(),"String_Node_Str")),chunk.stream(index).collect(Collectors.toList()));
}