Buggy code:
public class MapDrawableThing_Relation { protected Map current_map_reference_ = null ; private MapTile my_tile_ = null ; private void initguardMap ( ) { } private void initguardTile ( ) { } public int getMyXCoordinate ( ) { } public void associateWithMap ( Map m ) { } public int getMyYCoordinate ( ) { } public MapTile getMapTile ( ) { } public void setMapTile ( MapTile new_tile ) { } public int pushEntityInDirection ( Entity e , int delta_x , int delta_y ) { } public final class AreaDamager extends AreaFunctor { @ Override public void repeat ( int x_pos , int y_pos , int strength ) { MapTile infliction = current_map_reference_ . getTile ( x_pos , y_pos ) ; if ( infliction != null ) { <START_BUG> if ( ! ( infliction . getTerrain ( ) . hasDecal ( ) ) ) { <END_BUG> infliction . getTerrain ( ) . addDecal ( '♨' ) ; } Entity to_hurt = infliction . getEntity ( ) ; if ( to_hurt != null ) { EntityStatsPack s = to_hurt . getStatsPack ( ) ; s . current_life_ -= strength ; System . out . println ( ( "Current<seq2seq4repair_space>Life<seq2seq4repair_space>after:<seq2seq4repair_space>" + ( s . current_life_ ) ) ) ; } else { System . out . println ( "NULL" ) ; } } } } public final class AreaHealer extends AreaFunctor { @ Override public void repeat ( int x_pos , int y_pos , int strength ) { MapTile infliction = current_map_reference_ . getTile ( x_pos , y_pos ) ; if ( infliction != null ) { Entity to_heal = infliction . getEntity ( ) ; if ( to_heal != null ) { EntityStatsPack s = to_heal . getStatsPack ( ) ; s . current_life_ += strength ; } } } } public final class AreaKiller extends AreaFunctor { @ Override public void repeat ( int x_pos , int y_pos , int num_kills ) { MapTile infliction = current_map_reference_ . getTile ( x_pos , y_pos ) ; if ( infliction != null ) { Entity to_kill = infliction . getEntity ( ) ; if ( to_kill != null ) { to_kill . commitSuicide ( ) ; } } } } public final class AreaLeveler extends AreaFunctor { @ Override public void repeat ( int x_pos , int y_pos , int num_level_ups ) { MapTile infliction = current_map_reference_ . getTile ( x_pos , y_pos ) ; if ( infliction != null ) { Entity to_level = infliction . getEntity ( ) ; if ( to_level != null ) { for ( int i = 0 ; i < num_level_ups ; ++ i ) { to_level . gainEnoughExperienceTolevelUp ( ) ; } } } } } private final MapDrawableThing_Relation . AreaDamager areaHurtFunctor = new MapDrawableThing_Relation . AreaDamager ( ) ; private final MapDrawableThing_Relation . AreaHealer areaHealFunctor = new MapDrawableThing_Relation . AreaHealer ( ) ; private final MapDrawableThing_Relation . AreaKiller areaKillFunctor = new MapDrawableThing_Relation . AreaKiller ( ) ; private final MapDrawableThing_Relation . AreaLeveler areaLevelFunctor = new MapDrawableThing_Relation . AreaLeveler ( ) ; @ Override protected Object clone ( ) throws CloneNotSupportedException { } public void hurtWithinRadius ( int damage , int radius ) { } public void healWithinRadius ( int heal_quantity , int radius ) { } public void killWithinRadius ( int radius ) { } public void levelUpWithinRadius ( int radius ) { } public boolean isAssociatedWithMap ( ) { } }

Fix:
if ( ( ( infliction . getTerrain ( ) ) != null ) && ( ! ( infliction . getTerrain ( ) . hasDecal ( ) ) ) ) {