Program: 92887
Project: 92887
Buggy source:
@Test public void testGimpGreyscaleWithManyChunks() throws Exception {
  TimeZone timeZone=TimeZone.getDefault();
  try {
    TimeZone.setDefault(TimeZone.getTimeZone("String_Node_Str"));
    Metadata metadata=processFile("String_Node_Str");
    Collection<PngDirectory> directories=metadata.getDirectoriesOfType(PngDirectory.class);
    assertNotNull(directories);
    assertEquals(6,directories.size());
    PngDirectory[] dirs=new PngDirectory[directories.size()];
    directories.toArray(dirs);
    assertEquals(PngChunkType.IHDR,dirs[0].getPngChunkType());
    assertEquals(8,dirs[0].getInt(PngDirectory.TAG_IMAGE_WIDTH));
    assertEquals(12,dirs[0].getInt(PngDirectory.TAG_IMAGE_HEIGHT));
    assertEquals(8,dirs[0].getInt(PngDirectory.TAG_BITS_PER_SAMPLE));
    assertEquals(4,dirs[0].getInt(PngDirectory.TAG_COLOR_TYPE));
    assertEquals(0,dirs[0].getInt(PngDirectory.TAG_COMPRESSION_TYPE));
    assertEquals(0,dirs[0].getInt(PngDirectory.TAG_FILTER_METHOD));
    assertEquals(0,dirs[0].getInt(PngDirectory.TAG_INTERLACE_METHOD));
    assertEquals(PngChunkType.gAMA,dirs[1].getPngChunkType());
    assertEquals(0.45455,dirs[1].getDouble(PngDirectory.TAG_GAMMA),0.00001);
    assertEquals(PngChunkType.bKGD,dirs[2].getPngChunkType());
    assertArrayEquals(new byte[]{0,52},dirs[2].getByteArray(PngDirectory.TAG_BACKGROUND_COLOR));
    assertEquals(PngChunkType.pHYs,dirs[3].getPngChunkType());
    assertEquals(1,dirs[3].getInt(PngDirectory.TAG_UNIT_SPECIFIER));
    assertEquals(2835,dirs[3].getInt(PngDirectory.TAG_PIXELS_PER_UNIT_X));
    assertEquals(2835,dirs[3].getInt(PngDirectory.TAG_PIXELS_PER_UNIT_Y));
    assertEquals(PngChunkType.tIME,dirs[4].getPngChunkType());
    assertEquals("String_Node_Str",dirs[4].getDate(PngDirectory.TAG_LAST_MODIFICATION_TIME).toString());
    assertEquals(PngChunkType.iTXt,dirs[5].getPngChunkType());
    @SuppressWarnings("String_Node_Str") List<KeyValuePair> pairs=(List<KeyValuePair>)dirs[5].getObject(PngDirectory.TAG_TEXTUAL_DATA);
    assertNotNull(pairs);
    assertEquals(1,pairs.size());
    assertEquals("String_Node_Str",pairs.get(0).getKey());
    assertEquals("String_Node_Str",pairs.get(0).getValue());
  }
  finally {
    TimeZone.setDefault(timeZone);
  }
}

Fixed version (ground truth):
@Test public void testGimpGreyscaleWithManyChunks() throws Exception {
  TimeZone timeZone=TimeZone.getDefault();
  try {
    TimeZone.setDefault(TimeZone.getTimeZone("String_Node_Str"));
    Metadata metadata=processFile("String_Node_Str");
    Collection<PngDirectory> directories=metadata.getDirectoriesOfType(PngDirectory.class);
    assertNotNull(directories);
    assertEquals(6,directories.size());
    PngDirectory[] dirs=new PngDirectory[directories.size()];
    directories.toArray(dirs);
    assertEquals(PngChunkType.IHDR,dirs[0].getPngChunkType());
    assertEquals(8,dirs[0].getInt(PngDirectory.TAG_IMAGE_WIDTH));
    assertEquals(12,dirs[0].getInt(PngDirectory.TAG_IMAGE_HEIGHT));
    assertEquals(8,dirs[0].getInt(PngDirectory.TAG_BITS_PER_SAMPLE));
    assertEquals(4,dirs[0].getInt(PngDirectory.TAG_COLOR_TYPE));
    assertEquals(0,dirs[0].getInt(PngDirectory.TAG_COMPRESSION_TYPE));
    assertEquals(0,dirs[0].getInt(PngDirectory.TAG_FILTER_METHOD));
    assertEquals(0,dirs[0].getInt(PngDirectory.TAG_INTERLACE_METHOD));
    assertEquals(PngChunkType.gAMA,dirs[1].getPngChunkType());
    assertEquals(0.45455,dirs[1].getDouble(PngDirectory.TAG_GAMMA),0.00001);
    assertEquals(PngChunkType.bKGD,dirs[2].getPngChunkType());
    assertArrayEquals(new byte[]{0,52},dirs[2].getByteArray(PngDirectory.TAG_BACKGROUND_COLOR));
    assertEquals(PngChunkType.pHYs,dirs[3].getPngChunkType());
    assertEquals(1,dirs[3].getInt(PngDirectory.TAG_UNIT_SPECIFIER));
    assertEquals(2835,dirs[3].getInt(PngDirectory.TAG_PIXELS_PER_UNIT_X));
    assertEquals(2835,dirs[3].getInt(PngDirectory.TAG_PIXELS_PER_UNIT_Y));
    assertEquals(PngChunkType.tIME,dirs[4].getPngChunkType());
    java.util.Date modTime=dirs[4].getDate(PngDirectory.TAG_LAST_MODIFICATION_TIME);
    SimpleDateFormat formatter=new SimpleDateFormat("String_Node_Str");
    formatter.setTimeZone(TimeZone.getTimeZone("String_Node_Str"));
    assertEquals("String_Node_Str",formatter.format(modTime));
    assertEquals(PngChunkType.iTXt,dirs[5].getPngChunkType());
    @SuppressWarnings("String_Node_Str") List<KeyValuePair> pairs=(List<KeyValuePair>)dirs[5].getObject(PngDirectory.TAG_TEXTUAL_DATA);
    assertNotNull(pairs);
    assertEquals(1,pairs.size());
    assertEquals("String_Node_Str",pairs.get(0).getKey());
    assertEquals("String_Node_Str",pairs.get(0).getValue());
  }
  finally {
    TimeZone.setDefault(timeZone);
  }
}