Program: 74750
Project: 74750
Buggy source:
/** 
 * Construct a dialog with the specified owner and target. Several buttons are added to the dialog. The dialog is placed relative to the owner.
 * @param owner The object that, per the user, appears to begenerating the dialog.
 * @param target The object whose arguments are being configured.
 * @param configuration The configuration to use to open thehelp screen (or null if help is not supported).
 */
public ArgumentConfigurerDialog(Frame owner,GenericJNIActor target,Configuration configuration){
  super(owner,"String_Node_Str" + target.getName(),new ArgumentConfigurer((GenericJNIActor)target),_moreButtons);
  _configuration=configuration;
  _owner=owner;
  _target=(GenericJNIActor)target;
  if (buttonPressed().equals("String_Node_Str")) {
    try {
      _openAddDialog(null,"String_Node_Str","String_Node_Str","String_Node_Str");
    }
 catch (    Exception ex) {
      MessageHandler.error("String_Node_Str",ex);
    }
    _target.removeChangeListener(this);
  }
 else   if (buttonPressed().equals("String_Node_Str")) {
    List argumentsList=_target.argumentsList();
    String[] argumentNames=new String[argumentsList.size()];
    Iterator arguments=argumentsList.iterator();
    int index=0;
    while (arguments.hasNext()) {
      Argument argument=(Argument)arguments.next();
      argumentNames[index++]=argument.getName();
    }
    Query query=new Query();
    query.addChoice("String_Node_Str","String_Node_Str",argumentNames,null,false);
    ComponentDialog dialog=new ComponentDialog(_owner,"String_Node_Str" + _target.getFullName(),query,null);
    if (dialog.buttonPressed().equals("String_Node_Str")) {
      String argumentName=query.getStringValue("String_Node_Str");
      if (argumentName != null) {
        Argument argument=_target.getArgument(argumentName);
        if (argument != null) {
          try {
            _target.removeArgument(argument);
          }
 catch (          Exception e) {
            MessageHandler.error("String_Node_Str" + argument + "String_Node_Str",e);
          }
          NamedObj container=argument.getContainer();
          String moml="String_Node_Str" + argument.getName() + "String_Node_Str";
          ChangeRequest request=new MoMLChangeRequest(this,container,moml);
          container.addChangeListener(this);
          container.requestChange(request);
        }
      }
    }
  }
 else   if (buttonPressed().equals("String_Node_Str")) {
    help(configuration);
  }
}

Fixed version (ground truth):
/** 
 * Construct a dialog with the specified owner and target. Several buttons are added to the dialog. The dialog is placed relative to the owner.
 * @param owner The object that, per the user, appears to begenerating the dialog.
 * @param target The object whose arguments are being configured.
 * @param configuration The configuration to use to open thehelp screen (or null if help is not supported).
 */
public ArgumentConfigurerDialog(Frame owner,GenericJNIActor target,Configuration configuration){
  super(owner,"String_Node_Str" + target.getName(),new ArgumentConfigurer(target),_moreButtons);
  _configuration=configuration;
  _owner=owner;
  _target=target;
  if (buttonPressed().equals("String_Node_Str")) {
    try {
      _openAddDialog(null,"String_Node_Str","String_Node_Str","String_Node_Str");
    }
 catch (    Exception ex) {
      MessageHandler.error("String_Node_Str",ex);
    }
    _target.removeChangeListener(this);
  }
 else   if (buttonPressed().equals("String_Node_Str")) {
    List argumentsList=_target.argumentsList();
    String[] argumentNames=new String[argumentsList.size()];
    Iterator arguments=argumentsList.iterator();
    int index=0;
    while (arguments.hasNext()) {
      Argument argument=(Argument)arguments.next();
      argumentNames[index++]=argument.getName();
    }
    Query query=new Query();
    query.addChoice("String_Node_Str","String_Node_Str",argumentNames,null,false);
    ComponentDialog dialog=new ComponentDialog(_owner,"String_Node_Str" + _target.getFullName(),query,null);
    if (dialog.buttonPressed().equals("String_Node_Str")) {
      String argumentName=query.getStringValue("String_Node_Str");
      if (argumentName != null) {
        Argument argument=_target.getArgument(argumentName);
        if (argument != null) {
          try {
            _target.removeArgument(argument);
          }
 catch (          Exception e) {
            MessageHandler.error("String_Node_Str" + argument + "String_Node_Str",e);
          }
          NamedObj container=argument.getContainer();
          String moml="String_Node_Str" + argument.getName() + "String_Node_Str";
          ChangeRequest request=new MoMLChangeRequest(this,container,moml);
          container.addChangeListener(this);
          container.requestChange(request);
        }
      }
    }
  }
 else   if (buttonPressed().equals("String_Node_Str")) {
    help(configuration);
  }
}