Buggy code:
public class MapUpdateManager extends BukkitRunnable { private final HashMap < World , ArrayList < MapUpdateCommand > > updates = new HashMap < World , ArrayList < MapUpdateCommand > > ( ) ; private final HashMap < World , ArrayList < EntityUpdateCommand > > entityUpdates = new HashMap < World , ArrayList < EntityUpdateCommand > > ( ) ; private HashSet < Location > protectedBlocks = new HashSet < Location > ( ) ; private MapUpdateManager ( ) { } public static MapUpdateManager getInstance ( ) { } private static class MapUpdateManagerHolder { private static final MapUpdateManager INSTANCE = new MapUpdateManager ( ) ; } private void updateBlock ( MapUpdateCommand m , World w , Map < MovecraftLocation , TransferData > dataMap , Set < Chunk > chunks , Set < org . bukkit . Chunk > cmChunks , HashMap < MovecraftLocation , Byte > origLightMap , boolean placeDispensers ) { MovecraftLocation workingL = m . getNewBlockLocation ( ) ; <START_BUG> final int [ ] blocksToBlankOut = new int [ ] { 23 , 54 , 61 , 62 , 63 , 68 , 116 , 117 , 146 , 149 , 150 , 154 , 158 , 145 } ; <END_BUG> int x = workingL . getX ( ) ; int y = workingL . getY ( ) ; int z = workingL . getZ ( ) ; org . bukkit . Chunk chunk = null ; int newTypeID = m . getTypeID ( ) ; if ( ( newTypeID == 152 ) && ( ! placeDispensers ) ) { return ; } chunk = w . getBlockAt ( x , y , z ) . getChunk ( ) ; Chunk c = null ; org . bukkit . Chunk cmC = null ; if ( Settings . CompatibilityMode ) { cmC = chunk ; } else { c = ( ( org . bukkit . craftbukkit . v1_8_R1 . CraftChunk ) ( chunk ) ) . getHandle ( ) ; } TransferData transferData = dataMap . get ( workingL ) ; byte data ; if ( transferData != null ) { data = transferData . getData ( ) ; } else { data = 0 ; } if ( ( newTypeID == 23 ) && ( ! placeDispensers ) ) { newTypeID = 44 ; data = 8 ; } int origType = w . getBlockAt ( x , y , z ) . getTypeId ( ) ; byte origData = w . getBlockAt ( x , y , z ) . getData ( ) ; boolean success = false ; if ( Settings . CompatibilityMode ) { if ( ( origType != newTypeID ) || ( origData != data ) ) { boolean doBlankOut = ( Arrays . binarySearch ( blocksToBlankOut , newTypeID ) ) >= 0 ; if ( doBlankOut ) { w . getBlockAt ( x , y , z ) . setType ( AIR ) ; } if ( ( origType == 149 ) || ( origType == 150 ) ) { w . getBlockAt ( x , y , z ) . setType ( SIGN_POST ) ; BlockState state = w . getBlockAt ( x , y , z ) . getState ( ) ; Sign s = ( ( Sign ) ( state ) ) ; s . setLine ( 0 , "PLACEHOLDER" ) ; s . update ( ) ; w . getBlockAt ( x , y , z ) . setType ( AIR ) ; } if ( ( newTypeID == 149 ) || ( newTypeID == 150 ) ) { if ( newTypeID == 149 ) w . getBlockAt ( x , y , z ) . setType ( REDSTONE_COMPARATOR_OFF ) ; else w . getBlockAt ( x , y , z ) . setType ( REDSTONE_COMPARATOR_ON ) ; } else { w . getBlockAt ( x , y , z ) . setTypeIdAndData ( newTypeID , data , false ) ; } } if ( ! ( cmChunks . contains ( cmC ) ) ) { cmChunks . add ( cmC ) ; } } else { BlockPosition position = new BlockPosition ( x , y , z ) ; if ( ( origType == 149 ) || ( origType == 150 ) ) { c . a ( position , CraftMagicNumbers . getBlock ( AIR ) . fromLegacyData ( 0 ) ) ; c . a ( position , CraftMagicNumbers . getBlock ( SIGN_POST ) . fromLegacyData ( 0 ) ) ; BlockState state = w . getBlockAt ( x , y , z ) . getState ( ) ; Sign s = ( ( Sign ) ( state ) ) ; s . setLine ( 0 , "PLACEHOLDER" ) ; s . update ( ) ; c . a ( position , CraftMagicNumbers . getBlock ( SIGN_POST ) . fromLegacyData ( 0 ) ) ; success = ( c . a ( position , CraftMagicNumbers . getBlock ( newTypeID ) . fromLegacyData ( data ) ) ) != null ; if ( ! success ) { w . getBlockAt ( x , y , z ) . setTypeIdAndData ( newTypeID , data , false ) ; } if ( ! ( chunks . contains ( c ) ) ) { chunks . add ( c ) ; } } else { if ( ( ( origType == 50 ) || ( origType == 89 ) ) || ( origType == 124 ) ) { int centerX = x ; int centerY = y ; int centerZ = z ; for ( int posx = centerX - 14 ; posx <= ( centerX + 14 ) ; posx ++ ) { for ( int posy = centerY - 14 ; posy <= ( centerY + 14 ) ; posy ++ ) { if ( ( posy > 0 ) && ( posy <= 255 ) ) for ( int posz = centerZ - 14 ;

Fix:
final int [ ] blocksToBlankOut = new int [ ] { 54 , 61 , 62 , 63 , 68 , 116 , 117 , 146 , 149 , 150 , 154 , 158 , 145 } ;