Program: 80084
Project: 80084
Buggy source:
private void init(InputStream in,Compression compression) throws Exception {
  clear();
  NBTInputStream nbtIn=null;
  try {
    nbtIn=new NBTInputStream(in,compression);
    Tag tag=nbtIn.readTag();
    if (tag instanceof CompoundTag) {
      CompoundTag root=(CompoundTag)tag;
      CompoundTag level=NbtUtil.getChild(root,"String_Node_Str",CompoundTag.class);
      if (level != null) {
        blockX=blockY=blockZ=0;
        IntTag xPosTag=NbtUtil.getChild(level,"String_Node_Str",IntTag.class);
        if (xPosTag != null)         blockX=xPosTag.getValue().intValue();
        IntTag zPosTag=NbtUtil.getChild(level,"String_Node_Str",IntTag.class);
        if (zPosTag != null)         blockZ=zPosTag.getValue().intValue();
        ListTag sections=NbtUtil.getChild(level,"String_Node_Str",ListTag.class);
        if (sections != null) {
          parseAnvilData(level);
        }
 else {
          parseMcRegionData(level);
        }
        ListTag entitiesTag=NbtUtil.getChild(level,"String_Node_Str",ListTag.class);
        if (entitiesTag != null) {
          for (          Tag t : entitiesTag.getValue()) {
            if (t instanceof CompoundTag) {
              CompoundTag entity=(CompoundTag)t;
              StringTag idTag=NbtUtil.getChild(entity,"String_Node_Str",StringTag.class);
              if (idTag.getValue().endsWith("String_Node_Str")) {
                StringTag motiveTag=NbtUtil.getChild(entity,"String_Node_Str",StringTag.class);
                IntTag xTag=NbtUtil.getChild(entity,"String_Node_Str",IntTag.class);
                IntTag yTag=NbtUtil.getChild(entity,"String_Node_Str",IntTag.class);
                IntTag zTag=NbtUtil.getChild(entity,"String_Node_Str",IntTag.class);
                ByteTag dir=NbtUtil.getChild(entity,"String_Node_Str",ByteTag.class);
                if (dir == null)                 dir=NbtUtil.getChild(entity,"String_Node_Str",ByteTag.class);
                final int x=xTag.getValue();
                final int y=yTag.getValue();
                final int z=zTag.getValue();
                final int localX=x - (blockX * WIDTH);
                final int localY=y - (blockY * HEIGHT);
                final int localZ=z - (blockZ * DEPTH);
                paintings.add(new TileEntity(-1,0,x,y,z,localX,localY,localZ,motiveTag.getValue(),dir.getValue()));
              }
            }
          }
        }
        ListTag tileEntitiesTag=NbtUtil.getChild(level,"String_Node_Str",ListTag.class);
        if (tileEntitiesTag != null) {
          for (          Tag t : tileEntitiesTag.getValue()) {
            if (t instanceof CompoundTag) {
              CompoundTag entity=(CompoundTag)t;
              StringTag idTag=NbtUtil.getChild(entity,"String_Node_Str",StringTag.class);
              IntTag xTag=NbtUtil.getChild(entity,"String_Node_Str",IntTag.class);
              IntTag yTag=NbtUtil.getChild(entity,"String_Node_Str",IntTag.class);
              IntTag zTag=NbtUtil.getChild(entity,"String_Node_Str",IntTag.class);
              if (idTag != null && xTag != null && yTag != null && zTag != null) {
                String id=idTag.getValue();
                if (id.equals("String_Node_Str")) {
                  StringTag text1Tag=NbtUtil.getChild(entity,"String_Node_Str",StringTag.class);
                  StringTag text2Tag=NbtUtil.getChild(entity,"String_Node_Str",StringTag.class);
                  StringTag text3Tag=NbtUtil.getChild(entity,"String_Node_Str",StringTag.class);
                  StringTag text4Tag=NbtUtil.getChild(entity,"String_Node_Str",StringTag.class);
                  String text1=text1Tag.getValue();
                  if (text1 == null)                   text1="String_Node_Str";
                  String text2=text2Tag.getValue();
                  if (text2 == null)                   text2="String_Node_Str";
                  String text3=text3Tag.getValue();
                  if (text3 == null)                   text3="String_Node_Str";
                  String text4=text4Tag.getValue();
                  if (text4 == null)                   text4="String_Node_Str";
                  final int x=xTag.getValue();
                  final int y=yTag.getValue();
                  final int z=zTag.getValue();
                  final int localX=x - (blockX * WIDTH);
                  final int localY=y - (blockY * HEIGHT);
                  final int localZ=z - (blockZ * DEPTH);
                  final int blockId=getBlockId(localX,localY,localZ);
                  final int data=getBlockData(localX,localY,localZ);
                  signs.add(new RawSign(blockId,data,x,y,z,localX,localY,localZ,text1,text2,text3,text4));
                }
 else                 if (id.equals("String_Node_Str")) {
                  IntTag dataTag=NbtUtil.getChild(entity,"String_Node_Str",IntTag.class);
                  IntTag itemTag=NbtUtil.getChild(entity,"String_Node_Str",IntTag.class);
                  final int x=xTag.getValue();
                  final int y=yTag.getValue();
                  final int z=zTag.getValue();
                  final int localX=x - (blockX * WIDTH);
                  final int localY=y - (blockY * HEIGHT);
                  final int localZ=z - (blockZ * DEPTH);
                  final int blockId=getBlockId(localX,localY,localZ);
                  final int blockData=getBlockData(localX,localY,localZ);
                  final int data=dataTag.getValue();
                  final int item=itemTag.getValue();
                  flowerPots.add(new TileEntity(blockId,blockData,x,y,z,localX,localY,localZ,data,item));
                }
              }
            }
          }
        }
      }
    }
  }
  finally {
    if (nbtIn != null)     nbtIn.close();
    if (in != null)     in.close();
  }
}

Fixed version (ground truth):
private void init(InputStream in,Compression compression) throws Exception {
  clear();
  NBTInputStream nbtIn=null;
  try {
    nbtIn=new NBTInputStream(in,compression);
    Tag tag=nbtIn.readTag();
    if (tag instanceof CompoundTag) {
      CompoundTag root=(CompoundTag)tag;
      CompoundTag level=NbtUtil.getChild(root,"String_Node_Str",CompoundTag.class);
      if (level != null) {
        blockX=blockY=blockZ=0;
        IntTag xPosTag=NbtUtil.getChild(level,"String_Node_Str",IntTag.class);
        if (xPosTag != null)         blockX=xPosTag.getValue().intValue();
        IntTag zPosTag=NbtUtil.getChild(level,"String_Node_Str",IntTag.class);
        if (zPosTag != null)         blockZ=zPosTag.getValue().intValue();
        ListTag sections=NbtUtil.getChild(level,"String_Node_Str",ListTag.class);
        if (sections != null) {
          parseAnvilData(level);
        }
 else {
          parseMcRegionData(level);
        }
        ListTag entitiesTag=NbtUtil.getChild(level,"String_Node_Str",ListTag.class);
        if (entitiesTag != null) {
          for (          Tag t : entitiesTag.getValue()) {
            if (t instanceof CompoundTag) {
              CompoundTag entity=(CompoundTag)t;
              StringTag idTag=NbtUtil.getChild(entity,"String_Node_Str",StringTag.class);
              if (idTag.getValue().endsWith("String_Node_Str")) {
                StringTag motiveTag=NbtUtil.getChild(entity,"String_Node_Str",StringTag.class);
                IntTag xTag=NbtUtil.getChild(entity,"String_Node_Str",IntTag.class);
                IntTag yTag=NbtUtil.getChild(entity,"String_Node_Str",IntTag.class);
                IntTag zTag=NbtUtil.getChild(entity,"String_Node_Str",IntTag.class);
                ByteTag dir=NbtUtil.getChild(entity,"String_Node_Str",ByteTag.class);
                if (dir == null)                 dir=NbtUtil.getChild(entity,"String_Node_Str",ByteTag.class);
                final int x=xTag.getValue();
                final int y=yTag.getValue();
                final int z=zTag.getValue();
                final int localX=x - (blockX * WIDTH);
                final int localY=y - (blockY * HEIGHT);
                final int localZ=z - (blockZ * DEPTH);
                paintings.add(new TileEntity(-1,0,x,y,z,localX,localY,localZ,motiveTag.getValue(),dir.getValue()));
              }
            }
          }
        }
        ListTag tileEntitiesTag=NbtUtil.getChild(level,"String_Node_Str",ListTag.class);
        if (tileEntitiesTag != null) {
          for (          Tag t : tileEntitiesTag.getValue()) {
            if (t instanceof CompoundTag) {
              CompoundTag entity=(CompoundTag)t;
              StringTag idTag=NbtUtil.getChild(entity,"String_Node_Str",StringTag.class);
              IntTag xTag=NbtUtil.getChild(entity,"String_Node_Str",IntTag.class);
              IntTag yTag=NbtUtil.getChild(entity,"String_Node_Str",IntTag.class);
              IntTag zTag=NbtUtil.getChild(entity,"String_Node_Str",IntTag.class);
              if (idTag != null && xTag != null && yTag != null && zTag != null) {
                String id=idTag.getValue();
                if (id.equals("String_Node_Str")) {
                  StringTag text1Tag=NbtUtil.getChild(entity,"String_Node_Str",StringTag.class);
                  StringTag text2Tag=NbtUtil.getChild(entity,"String_Node_Str",StringTag.class);
                  StringTag text3Tag=NbtUtil.getChild(entity,"String_Node_Str",StringTag.class);
                  StringTag text4Tag=NbtUtil.getChild(entity,"String_Node_Str",StringTag.class);
                  String text1=text1Tag.getValue().replaceAll("String_Node_Str","String_Node_Str");
                  if (text1 == null || text1.equals("String_Node_Str"))                   text1="String_Node_Str";
                  String text2=text2Tag.getValue().replaceAll("String_Node_Str","String_Node_Str");
                  if (text2 == null || text2.equals("String_Node_Str"))                   text2="String_Node_Str";
                  String text3=text3Tag.getValue().replaceAll("String_Node_Str","String_Node_Str");
                  if (text3 == null || text3.equals("String_Node_Str"))                   text3="String_Node_Str";
                  String text4=text4Tag.getValue().replaceAll("String_Node_Str","String_Node_Str");
                  if (text4 == null || text4.equals("String_Node_Str"))                   text4="String_Node_Str";
                  final int x=xTag.getValue();
                  final int y=yTag.getValue();
                  final int z=zTag.getValue();
                  final int localX=x - (blockX * WIDTH);
                  final int localY=y - (blockY * HEIGHT);
                  final int localZ=z - (blockZ * DEPTH);
                  final int blockId=getBlockId(localX,localY,localZ);
                  final int data=getBlockData(localX,localY,localZ);
                  signs.add(new RawSign(blockId,data,x,y,z,localX,localY,localZ,text1,text2,text3,text4));
                }
 else                 if (id.equals("String_Node_Str")) {
                  IntTag dataTag=NbtUtil.getChild(entity,"String_Node_Str",IntTag.class);
                  IntTag itemTag=NbtUtil.getChild(entity,"String_Node_Str",IntTag.class);
                  final int x=xTag.getValue();
                  final int y=yTag.getValue();
                  final int z=zTag.getValue();
                  final int localX=x - (blockX * WIDTH);
                  final int localY=y - (blockY * HEIGHT);
                  final int localZ=z - (blockZ * DEPTH);
                  final int blockData=getBlockData(localX,localY,localZ);
                  final int data=dataTag.getValue();
                  final int item=38;
                  flowerPots.add(new TileEntity(0,blockData,x,y,z,localX,localY,localZ,data,item));
                }
              }
            }
          }
        }
      }
    }
  }
  finally {
    if (nbtIn != null)     nbtIn.close();
    if (in != null)     in.close();
  }
}