Program: 56233
Project: 56233
Buggy source:
@Override public void action(Action action){
  if (action.getActionType() != EActionType.SCREEN_CHANGE) {
    System.out.println("String_Node_Str" + action.getActionType() + "String_Node_Str"+ MatchConstants.clock.getTime());
  }
switch (action.getActionType()) {
case BUILD:
    this.setSelection(new SelectionSet());
  EBuildingType buildingType=((BuildAction)action).getBuilding();
System.out.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:
clock.invertPausing();
break;
case SPEED_SET_PAUSE:
clock.setPausing(true);
break;
case SPEED_UNSET_PAUSE:
clock.setPausing(false);
break;
case SPEED_SLOW:
if (!multiplayer) {
clock.setGameSpeed(0.5f);
}
break;
case SPEED_FAST:
if (!multiplayer) {
clock.setGameSpeed(2.0f);
}
break;
case SPEED_FASTER:
if (!multiplayer) {
clock.multiplyGameSpeed(1.2f);
}
break;
case SPEED_SLOWER:
if (!multiplayer) {
clock.multiplyGameSpeed(1 / 1.2f);
}
break;
case SPEED_NORMAL:
if (!multiplayer) {
clock.setGameSpeed(1.0f);
}
break;
case FAST_FORWARD:
if (!multiplayer) {
clock.fastForward();
}
break;
case SELECT_POINT:
handleSelectPointAction((PointAction)action);
break;
case SELECT_AREA:
selectArea((SelectAreaAction)action);
break;
case MOVE_TO:
if (previewBuilding != null) {
cancelBuildingCreation();
setActiveAction(null);
}
 else {
PointAction moveToAction=(PointAction)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(((PointAction)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:
taskScheduler.scheduleTask(new SimpleGuiTask(EGuiAction.QUICK_SAVE));
break;
case CONVERT:
sendConvertAction((ConvertAction)action);
break;
case SET_BUILDING_PRIORITY:
setBuildingPriority(((SetBuildingPriorityAction)action).getNewPriority());
break;
case SET_MATERIAL_DISTRIBUTION_SETTINGS:
{
SetMaterialDistributionSettingsAction a=(SetMaterialDistributionSettingsAction)action;
taskScheduler.scheduleTask(new SetMaterialDistributionSettingsGuiTask(a.getManagerPosition(),a.getMaterialType(),a.getProbabilities()));
break;
}
case SET_MATERIAL_PRIORITIES:
{
SetMaterialPrioritiesAction a=(SetMaterialPrioritiesAction)action;
taskScheduler.scheduleTask(new SetMaterialPrioritiesGuiTask(a.getManagerPosition(),a.getMaterialTypeForPriority()));
break;
}
case EXIT:
gameStoppable.stopGame();
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() + "String_Node_Str"+ MatchConstants.clock.getTime());
  }
switch (action.getActionType()) {
case BUILD:
    this.setSelection(new SelectionSet());
  EBuildingType buildingType=((BuildAction)action).getBuilding();
System.out.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:
clock.invertPausing();
break;
case SPEED_SET_PAUSE:
clock.setPausing(true);
break;
case SPEED_UNSET_PAUSE:
clock.setPausing(false);
break;
case SPEED_SLOW:
if (!multiplayer) {
clock.setGameSpeed(0.5f);
}
break;
case SPEED_FAST:
if (!multiplayer) {
clock.setGameSpeed(2.0f);
}
break;
case SPEED_FASTER:
if (!multiplayer) {
clock.multiplyGameSpeed(1.2f);
}
break;
case SPEED_SLOWER:
if (!multiplayer) {
clock.multiplyGameSpeed(1 / 1.2f);
}
break;
case SPEED_NORMAL:
if (!multiplayer) {
clock.setGameSpeed(1.0f);
}
break;
case FAST_FORWARD:
if (!multiplayer) {
clock.fastForward();
}
break;
case SELECT_POINT:
handleSelectPointAction((PointAction)action);
break;
case SELECT_AREA:
selectArea((SelectAreaAction)action);
break;
case MOVE_TO:
if (previewBuilding != null) {
cancelBuildingCreation();
setActiveAction(null);
}
 else {
PointAction moveToAction=(PointAction)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(((PointAction)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:
if (CommonConstants.ENABLE_FOG_OF_WAR_DISABLING) {
grid.toggleFogOfWar();
}
break;
case SAVE:
taskScheduler.scheduleTask(new SimpleGuiTask(EGuiAction.QUICK_SAVE));
break;
case CONVERT:
sendConvertAction((ConvertAction)action);
break;
case SET_BUILDING_PRIORITY:
setBuildingPriority(((SetBuildingPriorityAction)action).getNewPriority());
break;
case SET_MATERIAL_DISTRIBUTION_SETTINGS:
{
SetMaterialDistributionSettingsAction a=(SetMaterialDistributionSettingsAction)action;
taskScheduler.scheduleTask(new SetMaterialDistributionSettingsGuiTask(a.getManagerPosition(),a.getMaterialType(),a.getProbabilities()));
break;
}
case SET_MATERIAL_PRIORITIES:
{
SetMaterialPrioritiesAction a=(SetMaterialPrioritiesAction)action;
taskScheduler.scheduleTask(new SetMaterialPrioritiesGuiTask(a.getManagerPosition(),a.getMaterialTypeForPriority()));
break;
}
case EXIT:
gameStoppable.stopGame();
break;
default :
System.err.println("String_Node_Str" + action.getActionType() + "String_Node_Str");
}
}