Program: 32492
Project: 32492
Buggy source:
public void guiTestUninstall(){
  final JComboBox combo=new JComboBox();
  final EventList<Object> items=new BasicEventList<Object>();
  items.add("String_Node_Str");
  items.add("String_Node_Str");
  final ComboBoxUI originalUI=combo.getUI();
  final ComboBoxModel originalModel=combo.getModel();
  final boolean originalEditable=combo.isEditable();
  final ComboBoxEditor originalEditor=combo.getEditor();
  final int originalEditorKeyListenerCount=originalEditor.getEditorComponent().getKeyListeners().length;
  final AbstractDocument originalEditorDocument=(AbstractDocument)((JTextField)combo.getEditor().getEditorComponent()).getDocument();
  final int originalComboBoxPropertyChangeListenerCount=combo.getPropertyChangeListeners().length;
  final int originalComboBoxPopupMouseListenerCount=((ComboPopup)combo.getUI().getAccessibleChild(combo,0)).getList().getMouseListeners().length;
  final int originalMaxRowCount=combo.getMaximumRowCount();
  final int originalComboBoxPopupMenuListenerCount=((JPopupMenu)combo.getUI().getAccessibleChild(combo,0)).getPopupMenuListeners().length;
  final Action originalSelectNextAction=combo.getActionMap().get("String_Node_Str");
  final Action originalSelectPreviousAction=combo.getActionMap().get("String_Node_Str");
  final Action originalSelectNext2Action=combo.getActionMap().get("String_Node_Str");
  final Action originalSelectPrevious2Action=combo.getActionMap().get("String_Node_Str");
  final Action originalAquaSelectNextAction=combo.getActionMap().get("String_Node_Str");
  final Action originalAquaSelectPreviousAction=combo.getActionMap().get("String_Node_Str");
  AutoCompleteSupport support=AutoCompleteSupport.install(combo,items);
  JTextField currentEditor=((JTextField)combo.getEditor().getEditorComponent());
  AbstractDocument currentEditorDocument=(AbstractDocument)currentEditor.getDocument();
  assertSame(originalUI,combo.getUI());
  assertSame(currentEditorDocument,originalEditorDocument);
  assertNotSame(originalEditor,combo.getEditor());
  assertNotSame(originalModel,combo.getModel());
  assertEquals(!originalEditable,combo.isEditable());
  assertNotSame(originalSelectNextAction,combo.getActionMap().get("String_Node_Str"));
  assertNotSame(originalSelectPreviousAction,combo.getActionMap().get("String_Node_Str"));
  assertNotSame(originalSelectNext2Action,combo.getActionMap().get("String_Node_Str"));
  assertNotSame(originalSelectPrevious2Action,combo.getActionMap().get("String_Node_Str"));
  assertNotSame(originalAquaSelectNextAction,combo.getActionMap().get("String_Node_Str"));
  assertNotSame(originalAquaSelectPreviousAction,combo.getActionMap().get("String_Node_Str"));
  assertNotNull(currentEditorDocument.getDocumentFilter());
  assertEquals(originalComboBoxPropertyChangeListenerCount + 2,combo.getPropertyChangeListeners().length);
  assertEquals(originalComboBoxPopupMenuListenerCount + 2,((JPopupMenu)combo.getUI().getAccessibleChild(combo,0)).getPopupMenuListeners().length);
  assertEquals(originalComboBoxPopupMouseListenerCount + 1,((ComboPopup)combo.getUI().getAccessibleChild(combo,0)).getList().getMouseListeners().length);
  assertEquals(originalEditorKeyListenerCount + 1,currentEditor.getKeyListeners().length);
  support.uninstall();
  currentEditor=((JTextField)combo.getEditor().getEditorComponent());
  currentEditorDocument=(AbstractDocument)currentEditor.getDocument();
  assertSame(originalUI,combo.getUI());
  assertSame(originalModel,combo.getModel());
  assertEquals(originalEditable,combo.isEditable());
  assertSame(originalEditor,combo.getEditor());
  assertSame(originalEditorDocument,currentEditorDocument);
  assertSame(currentEditorDocument.getDocumentFilter(),null);
  assertEquals(originalComboBoxPropertyChangeListenerCount,combo.getPropertyChangeListeners().length);
  assertEquals(originalEditorKeyListenerCount,currentEditor.getKeyListeners().length);
  assertEquals(originalMaxRowCount,combo.getMaximumRowCount());
  assertEquals(originalComboBoxPopupMenuListenerCount,((JPopupMenu)combo.getUI().getAccessibleChild(combo,0)).getPopupMenuListeners().length);
  assertEquals(originalComboBoxPopupMouseListenerCount,((ComboPopup)combo.getUI().getAccessibleChild(combo,0)).getList().getMouseListeners().length);
  assertSame(originalSelectNextAction,combo.getActionMap().get("String_Node_Str"));
  assertSame(originalSelectPreviousAction,combo.getActionMap().get("String_Node_Str"));
  assertSame(originalSelectNext2Action,combo.getActionMap().get("String_Node_Str"));
  assertSame(originalSelectPrevious2Action,combo.getActionMap().get("String_Node_Str"));
  assertSame(originalAquaSelectNextAction,combo.getActionMap().get("String_Node_Str"));
  assertSame(originalAquaSelectPreviousAction,combo.getActionMap().get("String_Node_Str"));
  try {
    support.uninstall();
    fail("String_Node_Str");
  }
 catch (  IllegalStateException e) {
  }
}

Fixed version (ground truth):
public void guiTestUninstall(){
  final JComboBox combo=new JComboBox();
  final EventList<Object> items=new BasicEventList<Object>();
  items.add("String_Node_Str");
  items.add("String_Node_Str");
  final ComboBoxUI originalUI=combo.getUI();
  final ComboBoxModel originalModel=combo.getModel();
  final boolean originalEditable=combo.isEditable();
  final ListCellRenderer originalRenderer=combo.getRenderer();
  final ComboBoxEditor originalEditor=combo.getEditor();
  final int originalEditorKeyListenerCount=originalEditor.getEditorComponent().getKeyListeners().length;
  final AbstractDocument originalEditorDocument=(AbstractDocument)((JTextField)combo.getEditor().getEditorComponent()).getDocument();
  final int originalComboBoxPropertyChangeListenerCount=combo.getPropertyChangeListeners().length;
  final int originalComboBoxPopupMouseListenerCount=((ComboPopup)combo.getUI().getAccessibleChild(combo,0)).getList().getMouseListeners().length;
  final int originalMaxRowCount=combo.getMaximumRowCount();
  final int originalComboBoxPopupMenuListenerCount=((JPopupMenu)combo.getUI().getAccessibleChild(combo,0)).getPopupMenuListeners().length;
  final Action originalSelectNextAction=combo.getActionMap().get("String_Node_Str");
  final Action originalSelectPreviousAction=combo.getActionMap().get("String_Node_Str");
  final Action originalSelectNext2Action=combo.getActionMap().get("String_Node_Str");
  final Action originalSelectPrevious2Action=combo.getActionMap().get("String_Node_Str");
  final Action originalAquaSelectNextAction=combo.getActionMap().get("String_Node_Str");
  final Action originalAquaSelectPreviousAction=combo.getActionMap().get("String_Node_Str");
  AutoCompleteSupport support=AutoCompleteSupport.install(combo,items);
  JTextField currentEditor=((JTextField)combo.getEditor().getEditorComponent());
  AbstractDocument currentEditorDocument=(AbstractDocument)currentEditor.getDocument();
  ListCellRenderer currentRenderer=combo.getRenderer();
  assertSame(originalUI,combo.getUI());
  assertSame(currentEditorDocument,originalEditorDocument);
  assertSame(originalRenderer,currentRenderer);
  assertNotSame(originalEditor,combo.getEditor());
  assertNotSame(originalModel,combo.getModel());
  assertEquals(!originalEditable,combo.isEditable());
  assertNotSame(originalSelectNextAction,combo.getActionMap().get("String_Node_Str"));
  assertNotSame(originalSelectPreviousAction,combo.getActionMap().get("String_Node_Str"));
  assertNotSame(originalSelectNext2Action,combo.getActionMap().get("String_Node_Str"));
  assertNotSame(originalSelectPrevious2Action,combo.getActionMap().get("String_Node_Str"));
  assertNotSame(originalAquaSelectNextAction,combo.getActionMap().get("String_Node_Str"));
  assertNotSame(originalAquaSelectPreviousAction,combo.getActionMap().get("String_Node_Str"));
  assertNotNull(currentEditorDocument.getDocumentFilter());
  assertEquals(originalComboBoxPropertyChangeListenerCount + 2,combo.getPropertyChangeListeners().length);
  assertEquals(originalComboBoxPopupMenuListenerCount + 2,((JPopupMenu)combo.getUI().getAccessibleChild(combo,0)).getPopupMenuListeners().length);
  assertEquals(originalComboBoxPopupMouseListenerCount + 1,((ComboPopup)combo.getUI().getAccessibleChild(combo,0)).getList().getMouseListeners().length);
  assertEquals(originalEditorKeyListenerCount + 1,currentEditor.getKeyListeners().length);
  support.uninstall();
  currentEditor=((JTextField)combo.getEditor().getEditorComponent());
  currentEditorDocument=(AbstractDocument)currentEditor.getDocument();
  currentRenderer=combo.getRenderer();
  assertSame(originalUI,combo.getUI());
  assertSame(originalModel,combo.getModel());
  assertEquals(originalEditable,combo.isEditable());
  assertSame(originalEditor,combo.getEditor());
  assertSame(originalRenderer,currentRenderer);
  assertSame(originalEditorDocument,currentEditorDocument);
  assertSame(currentEditorDocument.getDocumentFilter(),null);
  assertEquals(originalComboBoxPropertyChangeListenerCount,combo.getPropertyChangeListeners().length);
  assertEquals(originalEditorKeyListenerCount,currentEditor.getKeyListeners().length);
  assertEquals(originalMaxRowCount,combo.getMaximumRowCount());
  assertEquals(originalComboBoxPopupMenuListenerCount,((JPopupMenu)combo.getUI().getAccessibleChild(combo,0)).getPopupMenuListeners().length);
  assertEquals(originalComboBoxPopupMouseListenerCount,((ComboPopup)combo.getUI().getAccessibleChild(combo,0)).getList().getMouseListeners().length);
  assertSame(originalSelectNextAction,combo.getActionMap().get("String_Node_Str"));
  assertSame(originalSelectPreviousAction,combo.getActionMap().get("String_Node_Str"));
  assertSame(originalSelectNext2Action,combo.getActionMap().get("String_Node_Str"));
  assertSame(originalSelectPrevious2Action,combo.getActionMap().get("String_Node_Str"));
  assertSame(originalAquaSelectNextAction,combo.getActionMap().get("String_Node_Str"));
  assertSame(originalAquaSelectPreviousAction,combo.getActionMap().get("String_Node_Str"));
  try {
    support.uninstall();
    fail("String_Node_Str");
  }
 catch (  IllegalStateException e) {
  }
}