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.

Reply via email to