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 <jfbald...@earthlink.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 <jfbald...@earthlink.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)
>>>> 
>>>> 
>>>> 
>>>> 
>> 
>> 

Reply via email to