Are you sure this happens on "Save"? I just checked the code, and the dialog is only called when you click "Synch ObjEntity with DbEntity" button. And from there it does the right thing. Also I couldn't reproduce the memory problem. The only retained object in this operation is the undo stack, which is limited to 100 undo's (which does take memory, but a reasonable amount).

So what I suggest now is that we just wait till it happens again, to see if there is a pattern to reproduce it.

CayenneModeler Info
Version: cayenne.version
Build Date: cayenne.build.date

Doesn't look like this is coming from a release build of the Modeler.

Andrus

On Feb 1, 2010, at 1:11 AM, Joe Baldwin wrote:

Tried to save a project with a new Entity (which had a many to one relationship). When I selected "Save" the following panel was displayed:

        Remove Foreign Keys mapped as object attributes?

Not sure what this would accomplish, I selected "Yes", which appears to be the wrong answer because Cayenne Modeler crashed big time. (see auto report below)

Joe

CayenneModeler Info
Version: cayenne.version
Build Date: cayenne.build.date
Exception:
=================================
java.lang.OutOfMemoryError: Java heap space
at java.util.Collections $UnmodifiableCollection.iterator(Collections.java:1006) at org .apache .cayenne.map.ObjEntity.getAttributeForDbAttribute(ObjEntity.java:845) at org.apache.cayenne.modeler.undo.DbEntitySyncUndoableEdit $MeaningfulFKsUndoableEdit.<init>(DbEntitySyncUndoableEdit.java:96) at org .apache .cayenne .modeler .action.DbEntitySyncAction.synchDbEntity(DbEntitySyncAction.java:95) at org .apache .cayenne .modeler .action.DbEntitySyncAction.performAction(DbEntitySyncAction.java:60) 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 .plaf .basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java: 272)
        at java.awt.Component.processMouseEvent(Component.java:6348)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3255)
        at java.awt.Component.processEvent(Component.java:6113)
        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.LightweightDispatcher.retargetMouseEvent(Container.java: 4618) at java.awt.LightweightDispatcher.processMouseEvent(Container.java: 4282)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4212)
        at java.awt.Container.dispatchEventImpl(Container.java:2129)
        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)





Reply via email to