Program: 145237
Project: 145237
Buggy source:
public void commandAction(Command c,Displayable d){
  if (!d.equals(addUser)) {
    Hashtable returnArgs=new Hashtable();
    returnArgs.put(Constants.RETURN_ARG_KEY,addUser.getConstructedUser());
    parent.returnFromActivity(this,Constants.ACTIVITY_COMPLETE,returnArgs);
  }
  if (c == this.CMD_SAVE) {
    String answer=addUser.readyToSave();
    if (answer.equals("String_Node_Str")) {
      final javax.microedition.lcdui.Alert successfulNewUser=new javax.microedition.lcdui.Alert("String_Node_Str","String_Node_Str",null,javax.microedition.lcdui.AlertType.CONFIRMATION);
      successfulNewUser.setCommandListener(this);
      successfulNewUser.setTimeout(Alert.FOREVER);
      parent.setDisplay(this,new IView(){
        public Object getScreenObject(){
          return successfulNewUser;
        }
      }
);
    }
 else     if (answer.substring(0,10).equals("String_Node_Str")) {
      final javax.microedition.lcdui.Alert nameTakenError=new javax.microedition.lcdui.Alert("String_Node_Str",answer,null,AlertType.ERROR);
      parent.setDisplay(this,new IView(){
        public Object getScreenObject(){
          return nameTakenError;
        }
      }
);
      parent.setDisplay(this,this.addUser);
    }
 else     if (answer.substring(0,9).equals("String_Node_Str")) {
      System.out.println(answer.substring(9));
      final javax.microedition.lcdui.Alert noInputError=new javax.microedition.lcdui.Alert("String_Node_Str",answer,null,AlertType.ERROR);
      parent.setDisplay(this,new IView(){
        public Object getScreenObject(){
          return noInputError;
        }
      }
);
      parent.setDisplay(this,this.addUser);
    }
 else     if (answer.substring(0,9).equals("String_Node_Str")) {
      System.out.println(answer.substring(9));
      final javax.microedition.lcdui.Alert passwordMismatchError=new javax.microedition.lcdui.Alert("String_Node_Str",answer,null,AlertType.ERROR);
      passwordMismatchError.setTimeout(javax.microedition.lcdui.Alert.FOREVER);
      parent.setDisplay(this,new IView(){
        public Object getScreenObject(){
          return passwordMismatchError;
        }
      }
);
      parent.setDisplay(this,this.addUser);
    }
  }
 else   if (c == this.CMD_CANCEL) {
    Hashtable returnArgs=new Hashtable();
    returnArgs.put(Constants.RETURN_ARG_KEY,addUser.getConstructedUser());
    parent.returnFromActivity(this,Constants.ACTIVITY_COMPLETE,returnArgs);
  }
}

Fixed version (ground truth):
public void commandAction(Command c,Displayable d){
  if (!d.equals(addUser)) {
    if (!success) {
      parent.setDisplay(this,addUser);
    }
 else {
      System.out.println("String_Node_Str");
      Hashtable returnArgs=new Hashtable();
      returnArgs.put(Constants.RETURN_ARG_KEY,addUser.getConstructedUser());
      parent.returnFromActivity(this,Constants.ACTIVITY_COMPLETE,returnArgs);
    }
  }
  if (c == this.CMD_SAVE) {
    final Alert successfulNewUser=new Alert("String_Node_Str","String_Node_Str",null,AlertType.CONFIRMATION);
    String answer=addUser.readyToSave();
    if (answer.equals("String_Node_Str")) {
      successfulNewUser.setCommandListener(this);
      successfulNewUser.setTimeout(Alert.FOREVER);
      parent.setDisplay(this,new IView(){
        public Object getScreenObject(){
          return successfulNewUser;
        }
      }
);
      success=true;
    }
 else     if (answer.substring(0,10).equals("String_Node_Str")) {
      final Alert nameTakenError=new Alert("String_Node_Str",answer,null,AlertType.ERROR);
      nameTakenError.setCommandListener(this);
      nameTakenError.setTimeout(Alert.FOREVER);
      parent.setDisplay(this,new IView(){
        public Object getScreenObject(){
          return nameTakenError;
        }
      }
);
    }
 else     if (answer.substring(0,9).equals("String_Node_Str")) {
      System.out.println(answer.substring(9));
      final Alert noInputError=new Alert("String_Node_Str",answer,null,AlertType.ERROR);
      noInputError.setTimeout(Alert.FOREVER);
      noInputError.setCommandListener(this);
      parent.setDisplay(this,new IView(){
        public Object getScreenObject(){
          return noInputError;
        }
      }
);
    }
 else     if (answer.substring(0,9).equals("String_Node_Str")) {
      System.out.println(answer.substring(9));
      final Alert passwordMismatchError=new Alert("String_Node_Str",answer,null,AlertType.ERROR);
      passwordMismatchError.setTimeout(Alert.FOREVER);
      passwordMismatchError.setCommandListener(this);
      parent.setDisplay(this,new IView(){
        public Object getScreenObject(){
          return passwordMismatchError;
        }
      }
);
    }
  }
 else   if (c == this.CMD_CANCEL) {
    Hashtable returnArgs=new Hashtable();
    parent.returnFromActivity(this,Constants.ACTIVITY_COMPLETE,returnArgs);
  }
}