Program: 75693
Project: 75693
Buggy source:
/** 
 * Construct a configurer for the specified object.  This stores the current values of any Settable attributes of the given object, and then defers to any editor pane factories contained by the given object to populate this panel with widgets that edit the attributes of the given object.  If there are no editor pane factories, then a default editor pane is created.
 * @param object The object to configure.
 */
public Configurer(final NamedObj object){
  setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
  _object=object;
  Iterator parameters=object.attributeList(Settable.class).iterator();
  while (parameters.hasNext()) {
    Settable parameter=(Settable)parameters.next();
    if (parameter.getVisibility() == Settable.FULL) {
      _originalValues.put(parameter.getName(),parameter.getExpression());
    }
  }
  boolean foundOne=false;
  Iterator editors=object.attributeList(EditorPaneFactory.class).iterator();
  while (editors.hasNext()) {
    foundOne=true;
    EditorPaneFactory editor=(EditorPaneFactory)editors.next();
    Component pane=editor.createEditorPane();
    add(pane);
    pane.setBackground(null);
    if (pane instanceof CloseListener) {
      _closeListeners.add(pane);
    }
  }
  if (!foundOne) {
    Component pane=EditorPaneFactory.createEditorPane(object);
    add(pane);
    pane.setBackground(null);
    if (pane instanceof CloseListener) {
      _closeListeners.add(pane);
    }
  }
}

Fixed version (ground truth):
/** 
 * Construct a configurer for the specified object.  This stores the current values of any Settable attributes of the given object, and then defers to any editor pane factories contained by the given object to populate this panel with widgets that edit the attributes of the given object.  If there are no editor pane factories, then a default editor pane is created.
 * @param object The object to configure.
 */
public Configurer(final NamedObj object){
  setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
  _object=object;
  NamedObj parent=MoMLChangeRequest.getDeferredToParent(object);
  if (parent == null) {
    parent=(NamedObj)object.getContainer();
  }
  _parent=parent;
  StringBuffer buffer=new StringBuffer();
  buffer.append("String_Node_Str");
  Iterator parameters=object.attributeList(Settable.class).iterator();
  while (parameters.hasNext()) {
    Settable parameter=(Settable)parameters.next();
    if (parameter.getVisibility() == Settable.FULL) {
      String oldExpression=parameter.getExpression();
      buffer.append("String_Node_Str");
      buffer.append(((NamedObj)parameter).getName(parent));
      buffer.append("String_Node_Str");
      buffer.append(StringUtilities.escapeForXML(oldExpression));
      buffer.append("String_Node_Str");
    }
  }
  buffer.append("String_Node_Str");
  _restoreMoML=buffer.toString();
  boolean foundOne=false;
  Iterator editors=object.attributeList(EditorPaneFactory.class).iterator();
  while (editors.hasNext()) {
    foundOne=true;
    EditorPaneFactory editor=(EditorPaneFactory)editors.next();
    Component pane=editor.createEditorPane();
    add(pane);
    pane.setBackground(null);
    if (pane instanceof CloseListener) {
      _closeListeners.add(pane);
    }
  }
  if (!foundOne) {
    Component pane=EditorPaneFactory.createEditorPane(object);
    add(pane);
    pane.setBackground(null);
    if (pane instanceof CloseListener) {
      _closeListeners.add(pane);
    }
  }
}