Program: 56409
Project: 56409
Buggy source:
@Override public void action(Action action){
  if (action.getActionType() != EActionType.SCREEN_CHANGE) {
    System.out.println("String_Node_Str" + action.getActionType());
  }
switch (action.getActionType()) {
case BUILD:
    this.setSelection(new SelectionSet());
  EBuildingType buildingType=((BuildAction)action).getBuilding();
System.err.println("String_Node_Str" + buildingType);
this.previewBuilding=buildingType;
connector.setPreviewBuildingType(buildingType);
constructionMarksCalculator.setBuildingType(buildingType);
setActiveAction(action);
break;
case DEBUG_ACTION:
for (ISelectable curr : currentSelection) {
if (curr instanceof IDebugable) {
((IDebugable)curr).debug();
}
}
break;
case SPEED_TOGGLE_PAUSE:
NetworkTimer.get().invertPausing();
break;
case SPEED_SLOW:
if (!manager.isMultiplayer()) NetworkTimer.setGameSpeed(0.5f);
break;
case SPEED_FAST:
if (!manager.isMultiplayer()) NetworkTimer.setGameSpeed(2.0f);
break;
case SPEED_FASTER:
if (!manager.isMultiplayer()) NetworkTimer.multiplyGameSpeed(1.2f);
break;
case SPEED_SLOWER:
if (!manager.isMultiplayer()) NetworkTimer.multiplyGameSpeed(1 / 1.2f);
break;
case SPEED_NORMAL:
if (!manager.isMultiplayer()) NetworkTimer.setGameSpeed(1.0f);
break;
case FAST_FORWARD:
if (!manager.isMultiplayer()) {
NetworkTimer.get().fastForward();
}
break;
case SELECT_POINT:
handleSelectPointAction((SelectAction)action);
break;
case SELECT_AREA:
selectArea((SelectAreaAction)action);
break;
case MOVE_TO:
if (previewBuilding != null) {
cancelBuildingCreation();
setActiveAction(null);
}
 else {
MoveToAction moveToAction=(MoveToAction)action;
ShortPoint2D pos=moveToAction.getPosition();
moveTo(pos);
}
break;
case SET_WORK_AREA:
if (currentSelection.getSize() > 0) {
ISelectable selected=currentSelection.iterator().next();
if (selected instanceof Building) {
ShortPoint2D pos=((SelectAction)action).getPosition();
scheduleTask(new WorkAreaGuiTask(EGuiAction.SET_WORK_AREA,pos,((Building)selected).getPos()));
}
}
break;
case DESTROY:
destroySelected();
break;
case STOP_WORKING:
stopOrStartWorkingAction(true);
break;
case START_WORKING:
stopOrStartWorkingAction(false);
break;
case SHOW_SELECTION:
showSelection();
break;
case SCREEN_CHANGE:
constructionMarksCalculator.setScreen(((ScreenChangeAction)action).getScreenArea());
break;
case TOGGLE_DEBUG:
grid.resetDebugColors();
break;
case TOGGLE_FOG_OF_WAR:
grid.toggleFogOfWar();
break;
case SAVE:
manager.scheduleTask(new SimpleGuiTask(EGuiAction.QUICK_SAVE));
break;
case CONVERT:
sendConvertAction((ConvertAction)action);
break;
default :
System.err.println("String_Node_Str" + action.getActionType() + "String_Node_Str");
}
}

Fixed version (ground truth):
@Override public void action(Action action){
  if (action.getActionType() != EActionType.SCREEN_CHANGE) {
    System.out.println("String_Node_Str" + action.getActionType());
  }
switch (action.getActionType()) {
case BUILD:
    this.setSelection(new SelectionSet());
  EBuildingType buildingType=((BuildAction)action).getBuilding();
System.err.println("String_Node_Str" + buildingType);
this.previewBuilding=buildingType;
connector.setPreviewBuildingType(buildingType);
constructionMarksCalculator.setBuildingType(buildingType);
setActiveAction(action);
break;
case DEBUG_ACTION:
for (ISelectable curr : currentSelection) {
if (curr instanceof IDebugable) {
((IDebugable)curr).debug();
}
}
break;
case SPEED_TOGGLE_PAUSE:
NetworkTimer.get().invertPausing();
break;
case SPEED_SLOW:
if (!manager.isMultiplayer()) NetworkTimer.setGameSpeed(0.5f);
break;
case SPEED_FAST:
if (!manager.isMultiplayer()) NetworkTimer.setGameSpeed(2.0f);
break;
case SPEED_FASTER:
if (!manager.isMultiplayer()) NetworkTimer.multiplyGameSpeed(1.2f);
break;
case SPEED_SLOWER:
if (!manager.isMultiplayer()) NetworkTimer.multiplyGameSpeed(1 / 1.2f);
break;
case SPEED_NORMAL:
if (!manager.isMultiplayer()) NetworkTimer.setGameSpeed(1.0f);
break;
case FAST_FORWARD:
if (!manager.isMultiplayer()) {
NetworkTimer.get().fastForward();
}
break;
case SELECT_POINT:
handleSelectPointAction((SelectAction)action);
break;
case SELECT_AREA:
selectArea((SelectAreaAction)action);
break;
case MOVE_TO:
if (previewBuilding != null) {
cancelBuildingCreation();
setActiveAction(null);
}
 else {
MoveToAction moveToAction=(MoveToAction)action;
if (currentSelection.getSelectionType() == ESelectionType.BUILDING && currentSelection.getSize() == 1) {
setBuildingWorkArea(moveToAction.getPosition());
}
 else {
moveTo(moveToAction.getPosition());
}
}
break;
case SET_WORK_AREA:
if (currentSelection.getSize() > 0) {
setBuildingWorkArea(((SelectAction)action).getPosition());
}
break;
case DESTROY:
destroySelected();
break;
case STOP_WORKING:
stopOrStartWorkingAction(true);
break;
case START_WORKING:
stopOrStartWorkingAction(false);
break;
case SHOW_SELECTION:
showSelection();
break;
case SCREEN_CHANGE:
constructionMarksCalculator.setScreen(((ScreenChangeAction)action).getScreenArea());
break;
case TOGGLE_DEBUG:
grid.resetDebugColors();
break;
case TOGGLE_FOG_OF_WAR:
grid.toggleFogOfWar();
break;
case SAVE:
manager.scheduleTask(new SimpleGuiTask(EGuiAction.QUICK_SAVE));
break;
case CONVERT:
sendConvertAction((ConvertAction)action);
break;
default :
System.err.println("String_Node_Str" + action.getActionType() + "String_Node_Str");
}
}