Index: src/test/api/java/common/javax/swing/undo/UndoManagerTest.java =================================================================== --- src/test/api/java/common/javax/swing/undo/UndoManagerTest.java (revision 496775) +++ src/test/api/java/common/javax/swing/undo/UndoManagerTest.java (working copy) @@ -20,9 +20,12 @@ */ package javax.swing.undo; +import java.util.Hashtable; + import javax.swing.UIManager; import javax.swing.event.UndoableEditEvent; + public class UndoManagerTest extends CompoundEditTest { protected UndoManager um; @@ -652,6 +655,27 @@ assertTrue("CannotRedoException was expected", bWasException); } + public void testUndoTo_RedoTo_AIOOB() { // Regression test for HARMONY-2612 + UndoManager um = new UndoManager(); + StateEditable editable = new StateEditable() { + public void storeState(Hashtable state) {} + public void restoreState(Hashtable state) {} + }; + um.addEdit(new StateEdit(editable)); + try { + um.undoTo(null); + fail("CannotUndoException should have been thrown"); + } catch (CannotUndoException e) { + // Expected + } + try { + um.redoTo(null); + fail("CannotRedoException should have been thrown"); + } catch (CannotRedoException e) { + // Expected + } + } + public void testUndoTo() { final int editCount = 100; TestUndoableEdit[] edits = new TestUndoableEdit[editCount];