Program: 33983
Project: 33983
Buggy source:
@EventHandler(priority=EventPriority.LOW,ignoreCancelled=true) public void onExplosion(final EntityExplodeEvent e){
  if (DEBUG) {
    plugin.getLogger().info(e.getEventName());
    plugin.getLogger().info("String_Node_Str" + e.getEntity());
  }
  if (!inWorld(e.getLocation())) {
    return;
  }
  Entity expl=e.getEntity();
  if (expl == null) {
    if (!Settings.allowTNTDamage) {
      e.blockList().clear();
    }
 else {
      if (!Settings.allowChestDamage) {
        List<Block> toberemoved=new ArrayList<Block>();
        for (        Block b : e.blockList()) {
switch (b.getType()) {
case CHEST:
case ENDER_CHEST:
case STORAGE_MINECART:
case TRAPPED_CHEST:
            toberemoved.add(b);
          break;
default :
        break;
    }
  }
  for (  Block b : toberemoved) {
    e.blockList().remove(b);
  }
}
}
return;
}
if (plugin.getGrid().isAtSpawn(e.getLocation())) {
e.setCancelled(true);
}
EntityType exploding=e.getEntityType();
if (exploding == null) {
return;
}
switch (exploding) {
case CREEPER:
if (!Settings.allowCreeperDamage) {
e.blockList().clear();
}
 else {
if (!Settings.allowCreeperGriefing) {
  Creeper creeper=(Creeper)e.getEntity();
  if (creeper.getTarget() instanceof Player) {
    Player target=(Player)creeper.getTarget();
    if (!plugin.getGrid().locationIsOnIsland(target,e.getLocation())) {
      e.blockList().clear();
    }
  }
  if (litCreeper.contains(creeper.getUniqueId())) {
    if (DEBUG) {
      plugin.getLogger().info("String_Node_Str");
    }
    litCreeper.remove(creeper.getUniqueId());
    e.setCancelled(true);
    return;
  }
}
if (!Settings.allowChestDamage) {
  List<Block> toberemoved=new ArrayList<Block>();
  for (  Block b : e.blockList()) {
switch (b.getType()) {
case CHEST:
case ENDER_CHEST:
case STORAGE_MINECART:
case TRAPPED_CHEST:
      toberemoved.add(b);
    break;
default :
  break;
}
}
for (Block b : toberemoved) {
e.blockList().remove(b);
}
}
}
break;
case PRIMED_TNT:
case MINECART_TNT:
if (!Settings.allowTNTDamage) {
e.blockList().clear();
}
 else {
if (!Settings.allowChestDamage) {
List<Block> toberemoved=new ArrayList<Block>();
for (Block b : e.blockList()) {
switch (b.getType()) {
case CHEST:
case ENDER_CHEST:
case STORAGE_MINECART:
case TRAPPED_CHEST:
toberemoved.add(b);
break;
default :
break;
}
}
for (Block b : toberemoved) {
e.blockList().remove(b);
}
}
}
break;
default :
break;
}
}

Fixed version (ground truth):
@EventHandler(priority=EventPriority.LOW,ignoreCancelled=true) public void onExplosion(final EntityExplodeEvent e){
  if (DEBUG) {
  }
  if (!inWorld(e.getLocation())) {
    return;
  }
  Entity expl=e.getEntity();
  if (expl == null) {
    if (!Settings.allowTNTDamage) {
      e.blockList().clear();
    }
 else {
      if (!Settings.allowChestDamage) {
        List<Block> toberemoved=new ArrayList<Block>();
        for (        Block b : e.blockList()) {
switch (b.getType()) {
case CHEST:
case ENDER_CHEST:
case STORAGE_MINECART:
case TRAPPED_CHEST:
            toberemoved.add(b);
          break;
default :
        break;
    }
  }
  for (  Block b : toberemoved) {
    e.blockList().remove(b);
  }
}
}
return;
}
if (plugin.getGrid().isAtSpawn(e.getLocation())) {
e.setCancelled(true);
}
EntityType exploding=e.getEntityType();
if (exploding == null) {
return;
}
switch (exploding) {
case CREEPER:
if (!Settings.allowCreeperDamage) {
e.blockList().clear();
}
 else {
if (!Settings.allowCreeperGriefing) {
  Creeper creeper=(Creeper)e.getEntity();
  if (creeper.getTarget() instanceof Player) {
    Player target=(Player)creeper.getTarget();
    if (!plugin.getGrid().locationIsOnIsland(target,e.getLocation())) {
      e.blockList().clear();
    }
  }
  if (litCreeper.contains(creeper.getUniqueId())) {
    if (DEBUG) {
      plugin.getLogger().info("String_Node_Str");
    }
    litCreeper.remove(creeper.getUniqueId());
    e.setCancelled(true);
    return;
  }
}
if (!Settings.allowChestDamage) {
  List<Block> toberemoved=new ArrayList<Block>();
  for (  Block b : e.blockList()) {
switch (b.getType()) {
case CHEST:
case ENDER_CHEST:
case STORAGE_MINECART:
case TRAPPED_CHEST:
      toberemoved.add(b);
    break;
default :
  break;
}
}
for (Block b : toberemoved) {
e.blockList().remove(b);
}
}
}
break;
case PRIMED_TNT:
case MINECART_TNT:
if (!Settings.allowTNTDamage) {
e.blockList().clear();
}
 else {
if (!Settings.allowChestDamage) {
List<Block> toberemoved=new ArrayList<Block>();
for (Block b : e.blockList()) {
switch (b.getType()) {
case CHEST:
case ENDER_CHEST:
case STORAGE_MINECART:
case TRAPPED_CHEST:
toberemoved.add(b);
break;
default :
break;
}
}
for (Block b : toberemoved) {
e.blockList().remove(b);
}
}
}
break;
default :
break;
}
}