Re: BUG: Cayenne Modeler

From: Joe Baldwin (jfbaldwi..arthlink.net)
Date: Tue Feb 02 2010 - 09:09:27 EST

  • Next message: Andrus Adamchik: "Re: BUG: Cayenne Modeler"

    The behavior by an app in which it freezes for about 3-4 minutes and then generates an out-of-memory-error is typically associated with an infinite loop. Increasing the available memory to an app does nothing to analyze the problem.

    It is more likely to be associated the the CM attempting to "remove the foreign key" as the CM dialog suggested. If the CM algorithm responsible for accomplishing this task is somehow faulty it could have easily resulted in an out of memory error.

    If on the other hand there is no error in the algorithm and this task requires and extraordinary amount of memory then it still points to the assumptions associated with the algorithm and its memory requirements.

    Still, it is not clear what the CM-dialog is attempting to accomplish or rectify (an associated, we-usually-do-it-this-way would help in these types of cases), so either the CM has mis-analysed or the user has made a procedural error. Either way the CM should not go into some functionality that takes 3-4 minutes and then runs out of memory.

    In addition, simply dismissing the CM's dialog window with the "remove the foreign key?" question results in no out of memory error. This would not typically happen if the CM were operating with insufficient memory.

    Therefore, the facts tend to point towards some exceptional condition that should be caught by the CM. If there is something missing in the user configuration then this might be an opportunity to have the CM point this out.

    On Feb 2, 2010, at 6:26 AM, Bryan Lewis wrote:

    > Sure, but you can run the modeler with an increased heap size, like
    >
    > java.exe -Xmx512m -jar CayenneModeler.jar
    >
    >
    >
    > On Mon, Feb 1, 2010 at 11:25 PM, Joe Baldwin <jfbaldwi..arthlink.net>wrote:
    >
    >> The CayenneModeler crashed not my app.
    >>
    >>
    >>
    >>
    >> On Feb 1, 2010, at 11:07 PM, Kevin Menard wrote:
    >>
    >>> Hi Joe,
    >>>
    >>> It looks like you would have needed to increased the -Xmx JVM property.
    >> Did
    >>> you actually corrupt any data in the process? If not, I'd suggest
    >>> re-running with an increased heap value. Otherwise, please file a JIRA
    >>> issue describing the problem.
    >>>
    >>> --
    >>> Kevin
    >>>
    >>>
    >>> On Sun, Jan 31, 2010 at 6:11 PM, Joe Baldwin <jfbaldwi..arthlink.net
    >>> 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)
    >>>>
    >>>>
    >>>>
    >>>>
    >>
    >>



    This archive was generated by hypermail 2.0.0 : Tue Feb 02 2010 - 09:10:03 EST