Modeler: copy/paste and undo/redo issues
----------------------------------------
Key: CAY-1387
URL: https://issues.apache.org/jira/browse/CAY-1387
Project: Cayenne
Issue Type: Bug
Components: Modeler
Affects Versions: 3.0RC2
Reporter: Andrus Adamchik
Priority: Minor
The Modeler misbehaves when using undo after copy/paste. Here is one scenario:
* create a new project with 1 data map
* create objentity
* copy and paste it
* "Edit > Undo" correctly shows "undo paste ObjEntity" Selecting undo menu
doesn't undo paste though. It does nothing from what I can tell.
There's another scenario that resulted in the following exception that I can't
reproduce now. It involved undo pasted objentity with inheritance:
javax.swing.undo.CannotUndoException
at
javax.swing.undo.AbstractUndoableEdit.undo(AbstractUndoableEdit.java:93)
at javax.swing.undo.CompoundEdit.undo(CompoundEdit.java:42)
at
org.apache.cayenne.modeler.undo.RelationshipUndoableEdit.undo(RelationshipUndoableEdit.java:47)
at javax.swing.undo.CompoundEdit.undo(CompoundEdit.java:46)
at javax.swing.undo.UndoManager.undoTo(UndoManager.java:320)
at javax.swing.undo.UndoManager.undo(UndoManager.java:398)
at
org.apache.cayenne.modeler.undo.CayenneUndoManager.undo(CayenneUndoManager.java:86)
at
org.apache.cayenne.modeler.action.UndoAction.performAction(UndoAction.java:57)
at
org.apache.cayenne.modeler.util.CayenneAction.actionPerformed(CayenneAction.java:163)
at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:389)
at javax.swing.AbstractButton.doClick(AbstractButton.java:337)
at
javax.swing.plaf.basic.BasicMenuItemUI$Actions.actionPerformed(BasicMenuItemUI.java:1192)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1638)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2839)
at
javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:670)
at
javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:678)
at
javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:678)
at javax.swing.JMenuBar.processKeyBinding(JMenuBar.java:649)
at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:267)
at
javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:254)
at
javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2916)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2908)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2802)
at java.awt.Component.processEvent(Component.java:6125)
at java.awt.Container.processEvent(Container.java:2085)
at java.awt.Component.dispatchEventImpl(Component.java:4714)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Component.dispatchEvent(Component.java:4544)
at
java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1850)
at
java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:712)
at
java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:990)
at
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:855)
at
java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:676)
at java.awt.Component.dispatchEventImpl(Component.java:4586)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4544)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:635)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.