Index: modules/swing/src/main/java/common/javax/swing/undo/UndoManager.java =================================================================== --- modules/swing/src/main/java/common/javax/swing/undo/UndoManager.java (revision 440006) +++ modules/swing/src/main/java/common/javax/swing/undo/UndoManager.java (working copy) @@ -64,7 +64,7 @@ protected void undoTo(final UndoableEdit edit) { int index = edits.indexOf(edit); for (int i = indexOfNextAdd - 1; i >= index; i--) { - UndoableEdit e = (UndoableEdit)edits.get(i); + UndoableEdit e = edits.get(i); e.undo(); } indexOfNextAdd = index; @@ -73,7 +73,7 @@ protected void redoTo(final UndoableEdit edit) { int index = edits.indexOf(edit); for (int i = indexOfNextAdd; i <= index; i++) { - UndoableEdit e = (UndoableEdit)edits.get(i); + UndoableEdit e = edits.get(i); e.redo(); } indexOfNextAdd = index + 1; @@ -82,7 +82,7 @@ protected UndoableEdit editToBeUndone() { // find first significant edit starting from indexOfNextAdd - 1 -> start for (int i = indexOfNextAdd - 1; i >= 0; i--) { - UndoableEdit edit = (UndoableEdit)edits.get(i); + UndoableEdit edit = edits.get(i); if (edit.isSignificant()) { return edit; } @@ -93,7 +93,7 @@ protected UndoableEdit editToBeRedone() { // find first significant edit starting from indexOfNextAdd -> end for (int i = indexOfNextAdd; i < edits.size(); i++) { - UndoableEdit edit = (UndoableEdit)edits.get(i); + UndoableEdit edit = edits.get(i); if (edit.isSignificant()) { return edit; } @@ -102,8 +102,6 @@ } public void undoableEditHappened(final UndoableEditEvent e) { - // implements just described behaviour - // XXX to be additionally tested addEdit(e.getEdit()); } @@ -160,7 +158,7 @@ // and remove all edits in the given range (inclusive) from edits // we must go from end to start (to -> from) for (int i = to; i >= from; i--) { - ((UndoableEdit)edits.get(i)).die(); + edits.get(i).die(); edits.remove(i); } } @@ -272,7 +270,7 @@ public synchronized void discardAllEdits() { indexOfNextAdd = 0; for (int i = 0; i < edits.size(); i++) { - ((UndoableEdit)edits.get(i)).die(); + edits.get(i).die(); } edits.removeAllElements(); return; Index: modules/swing/src/main/java/common/javax/swing/undo/StateEdit.java =================================================================== --- modules/swing/src/main/java/common/javax/swing/undo/StateEdit.java (revision 440006) +++ modules/swing/src/main/java/common/javax/swing/undo/StateEdit.java (working copy) @@ -29,9 +29,9 @@ protected StateEditable object; - protected Hashtable preState; + protected Hashtable preState; - protected Hashtable postState; + protected Hashtable postState; protected String undoRedoName; @@ -58,9 +58,11 @@ return undoRedoName; } - private Hashtable initHashtable(final Hashtable ht) { + private Hashtable + initHashtable(final Hashtable ht) { + if (ht == null) { - return new Hashtable(); + return new Hashtable(); } ht.clear(); return ht; Index: modules/swing/src/main/java/common/javax/swing/undo/CompoundEdit.java =================================================================== --- modules/swing/src/main/java/common/javax/swing/undo/CompoundEdit.java (revision 440006) +++ modules/swing/src/main/java/common/javax/swing/undo/CompoundEdit.java (working copy) @@ -25,19 +25,14 @@ public class CompoundEdit extends AbstractUndoableEdit { - protected Vector edits; + protected Vector edits = new Vector(); /** * This is flag that indicates edits are still being added to it. * The method end() sets inProgress to false. */ - boolean inProgress; + boolean inProgress = true; - public CompoundEdit() { - edits = new Vector(); - inProgress = true; - } - public boolean addEdit(final UndoableEdit anEdit) { if (!inProgress) { return false; @@ -55,7 +50,7 @@ protected UndoableEdit lastEdit() { UndoableEdit last = null; try { - last = (UndoableEdit)edits.lastElement(); + last = edits.lastElement(); } catch (final NoSuchElementException e) { } Index: modules/swing/src/main/java/common/javax/swing/undo/StateEditable.java =================================================================== --- modules/swing/src/main/java/common/javax/swing/undo/StateEditable.java (revision 440006) +++ modules/swing/src/main/java/common/javax/swing/undo/StateEditable.java (working copy) @@ -28,10 +28,10 @@ + "/08 19:39:08 marklin Exp $"; - void restoreState(final Hashtable ht); + void restoreState(final Hashtable ht); - void storeState(final Hashtable ht); + void storeState(final Hashtable ht); } Index: modules/swing/src/main/java/common/javax/swing/undo/UndoableEditSupport.java =================================================================== --- modules/swing/src/main/java/common/javax/swing/undo/UndoableEditSupport.java (revision 440006) +++ modules/swing/src/main/java/common/javax/swing/undo/UndoableEditSupport.java (working copy) @@ -34,7 +34,7 @@ protected CompoundEdit compoundEdit; - protected Vector listeners; + protected Vector listeners; /** * Source for UndoableEditEvent @@ -54,7 +54,7 @@ */ public UndoableEditSupport(final Object source) { realSource = (source == null) ? this : source; - listeners = new Vector(); + listeners = new Vector(); updateLevel = 0; } @@ -145,8 +145,7 @@ } public synchronized UndoableEditListener[] getUndoableEditListeners() { - return (UndoableEditListener[])listeners - .toArray(new UndoableEditListener[listeners.size()]); + return listeners.toArray(new UndoableEditListener[listeners.size()]); } } \ No newline at end of file