Program: 152213
Project: 152213
Buggy source:
@Override public boolean activateContainer(Player p,boolean silentchest,org.bukkit.block.Block b){
  EntityPlayer player=((CraftPlayer)p).getHandle();
  if (silentchest && b.getType() == Material.ENDER_CHEST) {
    p.openInventory(p.getEnderChest());
    player.b(StatisticList.X);
    return true;
  }
  World world=player.world;
  BlockPosition blockPosition=new BlockPosition(b.getX(),b.getY(),b.getZ());
  Object tile=world.getTileEntity(blockPosition);
  if (tile == null) {
    return false;
  }
  if (tile instanceof TileEntityEnderChest) {
    InventoryEnderChest enderChest=player.getEnderChest();
    enderChest.a((TileEntityEnderChest)tile);
    player.openContainer(enderChest);
    player.b(StatisticList.X);
    return true;
  }
  if (!(tile instanceof IInventory)) {
    return false;
  }
  Block block=world.getType(blockPosition).getBlock();
  if (block instanceof BlockChest) {
    for (    EnumDirection localEnumDirection : EnumDirection.EnumDirectionLimit.HORIZONTAL) {
      BlockPosition localBlockPosition=blockPosition.shift(localEnumDirection);
      Block localBlock=world.getType(localBlockPosition).getBlock();
      if (localBlock != block) {
        continue;
      }
      TileEntity localTileEntity=world.getTileEntity(localBlockPosition);
      if (!(localTileEntity instanceof TileEntityChest)) {
        continue;
      }
      if ((localEnumDirection == EnumDirection.WEST) || (localEnumDirection == EnumDirection.NORTH)) {
        tile=new InventoryLargeChest("String_Node_Str",(TileEntityChest)localTileEntity,(ITileInventory)tile);
      }
 else {
        tile=new InventoryLargeChest("String_Node_Str",(ITileInventory)tile,(TileEntityChest)localTileEntity);
      }
      break;
    }
    if (silentchest) {
      tile=new SilentContainerChest(player.inventory,((IInventory)tile),player);
    }
    if (((BlockChest)block).g == BlockChest.Type.BASIC)     player.b(StatisticList.ac);
 else     if (((BlockChest)block).g == BlockChest.Type.TRAP) {
      player.b(StatisticList.W);
    }
  }
  boolean returnValue=false;
  if (!silentchest) {
    player.openContainer((IInventory)tile);
    returnValue=true;
  }
 else {
    try {
      SilentContainerChest silentContainerChest=new SilentContainerChest(player.inventory,((IInventory)tile),player);
      int windowId=player.nextContainerCounter();
      player.playerConnection.sendPacket(new PacketPlayOutOpenWindow(windowId,"String_Node_Str",((IInventory)tile).getScoreboardDisplayName(),((IInventory)tile).getSize()));
      player.activeContainer=silentContainerChest;
      player.activeContainer.windowId=windowId;
      player.activeContainer.addSlotListener(player);
      returnValue=true;
    }
 catch (    Exception e) {
      e.printStackTrace();
      p.sendMessage(ChatColor.RED + "String_Node_Str");
    }
  }
  return returnValue;
}

Fixed version (ground truth):
@Override public boolean activateContainer(Player p,boolean silentchest,org.bukkit.block.Block b){
  EntityPlayer player=((CraftPlayer)p).getHandle();
  if (silentchest && b.getType() == Material.ENDER_CHEST) {
    p.openInventory(p.getEnderChest());
    player.b(StatisticList.X);
    return true;
  }
  World world=player.world;
  BlockPosition blockPosition=new BlockPosition(b.getX(),b.getY(),b.getZ());
  Object tile=world.getTileEntity(blockPosition);
  if (tile == null) {
    return false;
  }
  if (tile instanceof TileEntityEnderChest) {
    InventoryEnderChest enderChest=player.getEnderChest();
    enderChest.a((TileEntityEnderChest)tile);
    player.openContainer(enderChest);
    player.b(StatisticList.X);
    return true;
  }
  if (!(tile instanceof IInventory)) {
    return false;
  }
  Block block=world.getType(blockPosition).getBlock();
  Container container=null;
  if (block instanceof BlockChest) {
    for (    EnumDirection localEnumDirection : EnumDirection.EnumDirectionLimit.HORIZONTAL) {
      BlockPosition localBlockPosition=blockPosition.shift(localEnumDirection);
      Block localBlock=world.getType(localBlockPosition).getBlock();
      if (localBlock != block) {
        continue;
      }
      TileEntity localTileEntity=world.getTileEntity(localBlockPosition);
      if (!(localTileEntity instanceof TileEntityChest)) {
        continue;
      }
      if ((localEnumDirection == EnumDirection.WEST) || (localEnumDirection == EnumDirection.NORTH)) {
        tile=new InventoryLargeChest("String_Node_Str",(TileEntityChest)localTileEntity,(ITileInventory)tile);
      }
 else {
        tile=new InventoryLargeChest("String_Node_Str",(ITileInventory)tile,(TileEntityChest)localTileEntity);
      }
      break;
    }
    if (silentchest) {
      container=new SilentContainerChest(player.inventory,((IInventory)tile),player);
    }
    if (((BlockChest)block).g == BlockChest.Type.BASIC) {
      player.b(StatisticList.ac);
    }
 else     if (((BlockChest)block).g == BlockChest.Type.TRAP) {
      player.b(StatisticList.W);
    }
  }
  boolean returnValue=false;
  final IInventory iInventory=(IInventory)tile;
  if (!silentchest || container == null) {
    player.openContainer(iInventory);
    returnValue=true;
  }
 else {
    try {
      int windowId=player.nextContainerCounter();
      player.playerConnection.sendPacket(new PacketPlayOutOpenWindow(windowId,iInventory.getName(),iInventory.getScoreboardDisplayName(),iInventory.getSize()));
      player.activeContainer=container;
      player.activeContainer.windowId=windowId;
      player.activeContainer.addSlotListener(player);
      returnValue=true;
    }
 catch (    Exception e) {
      e.printStackTrace();
      p.sendMessage(ChatColor.RED + "String_Node_Str");
    }
  }
  return returnValue;
}