Re: Exception in Cayenne Modeler, heap blows up

From: Tomas Stenlund (tomas.stenlun..elia.com)
Date: Fri Sep 24 2010 - 17:32:10 UTC

  • Next message: Tomas Stenlund: "Re: Exception in Cayenne Modeler, heap blows up"

    Hi again,

    thanks for the help.

    I run on Ubuntu Lucid Lynx, and tried java -Xmx512m -jar
    CayenneModeler.jar but with the same result. It just took a while longer
    for the heap to fill up. The stacktrace also shows a different position.
    Anyway, this happens when I add an additional relationship between two
    entities in my datamodel and do synch. I have included the DomainMap.

    When I load it into cayenne, select the PositionTemplateDBEntity (the
    newly added relationship is the "fromHeat" relationship to
    HeatTemplateDBEntity, the "toPositions" relationship in
    HeatTemplateDBEntity is the reverse relationship). When I press "Synch",
    the GUI becomes unresponsive and after a minute or so I get the out of
    heap space exception. I thought that I might have cause some loop in the
    model, but anyway to eludes me.

    /Tomas

    <?xml version="1.0" encoding="utf-8"?>
    <data-map xmlns="http://cayenne.apache.org/schema/3.0/modelMap"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://cayenne.apache.org/schema/3.0/modelMap
    http://cayenne.apache.org/schema/3.0/modelMap.xsd"
       project-version="3.0.0.1">
    <property name="defaultPackage" value="cc.stenlund.xc.base"/>
    <db-entity name="ClubDbEntity">
    <db-attribute name="fkid_competition" type="INTEGER" isMandatory="true"/>
    <db-attribute name="id_club" type="INTEGER" isPrimaryKey="true"
    isMandatory="true"/>
    <db-attribute name="name" type="CHAR" isMandatory="true" length="80"/>
    </db-entity>
    <db-entity name="CompetitionDbEntity">
    <db-attribute name="id_competition" type="INTEGER" isPrimaryKey="true"
    isMandatory="true"/>
    <db-attribute name="name" type="CHAR" isMandatory="true" length="80"/>
    </db-entity>
    <db-entity name="HeatTemplateDbEntity">
    <db-attribute name="fkid_sprinttemplate" type="INTEGER" isMandatory="true"/>
    <db-attribute name="heatname" type="CHAR" isMandatory="true" length="20"/>
    <db-attribute name="id_heat" type="INTEGER" isPrimaryKey="true"
    isMandatory="true"/>
    </db-entity>
    <db-entity name="PositionTemplateDbEntity">
    <db-attribute name="fkid_fromheat" type="INTEGER"/>
    <db-attribute name="fkid_heattemplate" type="INTEGER" isMandatory="true"/>
    <db-attribute name="fromposition" type="INTEGER"/>
    <db-attribute name="id_position" type="INTEGER" isPrimaryKey="true"
    isMandatory="true"/>
    <db-attribute name="position" type="INTEGER" isMandatory="true"/>
    </db-entity>
    <db-entity name="RaceDbEntity">
    <db-attribute name="fkid_competition" type="INTEGER" isMandatory="true"/>
    <db-attribute name="id_race" type="INTEGER" isPrimaryKey="true"
    isMandatory="true"/>
    <db-attribute name="name" type="CHAR" isMandatory="true" length="80"/>
    </db-entity>
    <db-entity name="RaceSkierDbEntity">
    <db-attribute name="fkid_race" type="INTEGER" isMandatory="true"/>
    <db-attribute name="fkid_skier" type="INTEGER" isMandatory="true"/>
    <db-attribute name="id_raceskier" type="INTEGER" isPrimaryKey="true"
    isMandatory="true"/>
    </db-entity>
    <db-entity name="SkierDbEntity">
    <db-attribute name="firstname" type="CHAR" isMandatory="true" length="80"/>
    <db-attribute name="fkid_club" type="INTEGER" isMandatory="true"/>
    <db-attribute name="id_skier" type="INTEGER" isPrimaryKey="true"
    isMandatory="true"/>
    <db-attribute name="lastname" type="CHAR" isMandatory="true" length="80"/>
    </db-entity>
    <db-entity name="SprintTemplateDbEntity">
    <db-attribute name="fkid_competition" type="INTEGER" isMandatory="true"/>
    <db-attribute name="fkid_prolog" type="INTEGER"/>
    <db-attribute name="id_sprinttemplate" type="INTEGER"
    isPrimaryKey="true" isMandatory="true"/>
    <db-attribute name="name" type="CHAR" isMandatory="true" length="80"/>
    </db-entity>
    <obj-entity name="ClubObjEntity"
    className="cc.stenlund.xc.base.ClubObjEntity" dbEntityName="ClubDbEntity">
    <obj-attribute name="name" type="java.lang.String"
    db-attribute-path="name"/>
    </obj-entity>
    <obj-entity name="CompetitionObjEntity"
    className="cc.stenlund.xc.base.CompetitionObjEntity"
    dbEntityName="CompetitionDbEntity">
    <obj-attribute name="name" type="java.lang.String"
    db-attribute-path="name"/>
    </obj-entity>
    <obj-entity name="HeatTemplateObjEntity"
    className="cc.stenlund.xc.base.HeatTemplateObjEntity"
    dbEntityName="HeatTemplateDbEntity">
    <obj-attribute name="heatname" type="java.lang.String"
    db-attribute-path="heatname"/>
    </obj-entity>
    <obj-entity name="PositionTemplateObjEntity"
    className="cc.stenlund.xc.base.PositionTemplateObjEntity"
    dbEntityName="PositionTemplateDbEntity">
    <obj-attribute name="fkidFromheat" type="java.lang.Integer"
    db-attribute-path="fkid_fromheat"/>
    <obj-attribute name="fromposition" type="java.lang.Integer"
    db-attribute-path="fromposition"/>
    <obj-attribute name="position" type="java.lang.Integer"
    db-attribute-path="position"/>
    </obj-entity>
    <obj-entity name="RaceObjEntity"
    className="cc.stenlund.xc.base.RaceObjEntity" dbEntityName="RaceDbEntity">
    <obj-attribute name="name" type="java.lang.String"
    db-attribute-path="name"/>
    </obj-entity>
    <obj-entity name="RaceSkierObjEntity"
    className="cc.stenlund.xc.base.RaceSkierObjEntity"
    dbEntityName="RaceSkierDbEntity">
    </obj-entity>
    <obj-entity name="SkierObjEntity"
    className="cc.stenlund.xc.base.SkierObjEntity" dbEntityName="SkierDbEntity">
    <obj-attribute name="firstname" type="java.lang.String"
    db-attribute-path="firstname"/>
    <obj-attribute name="lastname" type="java.lang.String"
    db-attribute-path="lastname"/>
    </obj-entity>
    <obj-entity name="SprintTemplateObjEntity"
    className="cc.stenlund.xc.base.SprintTemplateObjEntity"
    dbEntityName="SprintTemplateDbEntity">
    <obj-attribute name="name" type="java.lang.String"
    db-attribute-path="name"/>
    </obj-entity>
    <db-relationship name="allSkiers" source="ClubDbEntity"
    target="SkierDbEntity" toMany="true">
    <db-attribute-pair source="id_club" target="fkid_club"/>
    </db-relationship>
    <db-relationship name="belongsToCompetition" source="ClubDbEntity"
    target="CompetitionDbEntity" toMany="false">
    <db-attribute-pair source="fkid_competition" target="id_competition"/>
    </db-relationship>
    <db-relationship name="allClubs" source="CompetitionDbEntity"
    target="ClubDbEntity" toMany="true">
    <db-attribute-pair source="id_competition" target="fkid_competition"/>
    </db-relationship>
    <db-relationship name="allRaces" source="CompetitionDbEntity"
    target="RaceDbEntity" toMany="true">
    <db-attribute-pair source="id_competition" target="fkid_competition"/>
    </db-relationship>
    <db-relationship name="allSprintTemplates" source="CompetitionDbEntity"
    target="SprintTemplateDbEntity" toMany="true">
    <db-attribute-pair source="id_competition" target="fkid_competition"/>
    </db-relationship>
    <db-relationship name="allPositions" source="HeatTemplateDbEntity"
    target="PositionTemplateDbEntity" toMany="true">
    <db-attribute-pair source="id_heat" target="fkid_heattemplate"/>
    </db-relationship>
    <db-relationship name="belongsToSprintTemplate"
    source="HeatTemplateDbEntity" target="SprintTemplateDbEntity"
    toMany="false">
    <db-attribute-pair source="fkid_sprinttemplate" target="id_sprinttemplate"/>
    </db-relationship>
    <db-relationship name="thisPrologBelongsToSprintTemplate"
    source="HeatTemplateDbEntity" target="SprintTemplateDbEntity"
    toMany="false">
    <db-attribute-pair source="id_heat" target="fkid_prolog"/>
    </db-relationship>
    <db-relationship name="belongsToHeat" source="PositionTemplateDbEntity"
    target="HeatTemplateDbEntity" toMany="false">
    <db-attribute-pair source="fkid_heattemplate" target="id_heat"/>
    </db-relationship>
    <db-relationship name="allRaceSkiers" source="RaceDbEntity"
    target="RaceSkierDbEntity" toMany="true">
    <db-attribute-pair source="id_race" target="fkid_race"/>
    </db-relationship>
    <db-relationship name="belongsToCompetition" source="RaceDbEntity"
    target="CompetitionDbEntity" toMany="false">
    <db-attribute-pair source="fkid_competition" target="id_competition"/>
    </db-relationship>
    <db-relationship name="belongsToRace" source="RaceSkierDbEntity"
    target="RaceDbEntity" toMany="false">
    <db-attribute-pair source="fkid_race" target="id_race"/>
    </db-relationship>
    <db-relationship name="skier" source="RaceSkierDbEntity"
    target="SkierDbEntity" toMany="false">
    <db-attribute-pair source="fkid_skier" target="id_skier"/>
    </db-relationship>
    <db-relationship name="belongsToClub" source="SkierDbEntity"
    target="ClubDbEntity" toMany="false">
    <db-attribute-pair source="fkid_club" target="id_club"/>
    </db-relationship>
    <db-relationship name="competesAsRaceSkiers" source="SkierDbEntity"
    target="RaceSkierDbEntity" toMany="true">
    <db-attribute-pair source="id_skier" target="fkid_skier"/>
    </db-relationship>
    <db-relationship name="allHeats" source="SprintTemplateDbEntity"
    target="HeatTemplateDbEntity" toMany="true">
    <db-attribute-pair source="id_sprinttemplate" target="fkid_sprinttemplate"/>
    </db-relationship>
    <db-relationship name="belongsToCompetition"
    source="SprintTemplateDbEntity" target="CompetitionDbEntity" toMany="false">
    <db-attribute-pair source="fkid_competition" target="id_competition"/>
    </db-relationship>
    <db-relationship name="prolog" source="SprintTemplateDbEntity"
    target="HeatTemplateDbEntity" toMany="false">
    <db-attribute-pair source="fkid_prolog" target="id_heat"/>
    </db-relationship>
    <obj-relationship name="allSkiers" source="ClubObjEntity"
    target="SkierObjEntity" deleteRule="Deny" db-relationship-path="allSkiers"/>
    <obj-relationship name="belongsToClub" source="ClubObjEntity"
    target="CompetitionObjEntity" deleteRule="Nullify"
    db-relationship-path="belongsToCompetition"/>
    <obj-relationship name="allClubs" source="CompetitionObjEntity"
    target="ClubObjEntity" deleteRule="Deny" db-relationship-path="allClubs"/>
    <obj-relationship name="allRaces" source="CompetitionObjEntity"
    target="RaceObjEntity" deleteRule="Deny" db-relationship-path="allRaces"/>
    <obj-relationship name="allSprintTemplates"
    source="CompetitionObjEntity" target="SprintTemplateObjEntity"
    deleteRule="Deny" db-relationship-path="allSprintTemplates"/>
    <obj-relationship name="allPositions" source="HeatTemplateObjEntity"
    target="PositionTemplateObjEntity" deleteRule="Deny"
    db-relationship-path="allPositions"/>
    <obj-relationship name="belongsToSprintTemplate"
    source="HeatTemplateObjEntity" target="SprintTemplateObjEntity"
    deleteRule="Nullify" db-relationship-path="belongsToSprintTemplate"/>
    <obj-relationship name="prologSprintTemplater"
    source="HeatTemplateObjEntity" target="SprintTemplateObjEntity"
    deleteRule="Nullify"
    db-relationship-path="thisPrologBelongsToSprintTemplate"/>
    <obj-relationship name="belongsToHeat"
    source="PositionTemplateObjEntity" target="HeatTemplateObjEntity"
    deleteRule="Nullify" db-relationship-path="belongsToHeat"/>
    <obj-relationship name="allRaceSkiers" source="RaceObjEntity"
    target="RaceSkierObjEntity" deleteRule="Deny"
    db-relationship-path="allRaceSkiers"/>
    <obj-relationship name="belongsToCompetition" source="RaceObjEntity"
    target="CompetitionObjEntity" deleteRule="Nullify"
    db-relationship-path="belongsToCompetition"/>
    <obj-relationship name="belongsToRace" source="RaceSkierObjEntity"
    target="RaceObjEntity" deleteRule="Nullify"
    db-relationship-path="belongsToRace"/>
    <obj-relationship name="skier" source="RaceSkierObjEntity"
    target="SkierObjEntity" deleteRule="Nullify" db-relationship-path="skier"/>
    <obj-relationship name="belongsToClub" source="SkierObjEntity"
    target="ClubObjEntity" deleteRule="Nullify"
    db-relationship-path="belongsToClub"/>
    <obj-relationship name="competesAsRaceSkiers" source="SkierObjEntity"
    target="RaceSkierObjEntity" deleteRule="Deny"
    db-relationship-path="competesAsRaceSkiers"/>
    <obj-relationship name="allHeats" source="SprintTemplateObjEntity"
    target="HeatTemplateObjEntity" deleteRule="Deny"
    db-relationship-path="allHeats"/>
    <obj-relationship name="belongsToCompetition"
    source="SprintTemplateObjEntity" target="CompetitionObjEntity"
    deleteRule="Nullify" db-relationship-path="belongsToCompetition"/>
    <obj-relationship name="prolog" source="SprintTemplateObjEntity"
    target="HeatTemplateObjEntity" deleteRule="Nullify"
    db-relationship-path="prolog"/>
    </data-map>

    2010-09-24 18:27, Andrus Adamchik skrev:
    > On Linux, you should probably run it as "java -Xmx512m CayenneModeler.jar" or something like that, so specifying how much heap the JVM should use is up to you. In a Windows assembly run from .exe, -Xmx is passed by the executable launcher, and the user doesn't have much control (except that he can of course run it from command line, like the example above). So these are some significant differences.
    >
    > Andrus
    >
    >
    > On Sep 24, 2010, at 7:21 PM, gilbertoca wrote:
    >
    >
    >> I can confirm this problem.
    >>
    >> gilbert..UGEP-DMASI:~$ cat /etc/SuSE-release
    >> openSUSE 11.3 (i586)
    >> VERSION = 11.3
    >> gilbert..UGEP-DMASI:~$ java -version
    >> java version "1.6.0_21"
    >> Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
    >> Java HotSpot(TM) Server VM (build 17.0-b16, mixed mode)
    >>
    >> Cayenne version: 3.0.1
    >>
    >> In my case, cayenne-modeler freezes and I have to kill it.
    >> So, I can't use that option.
    >>
    >> Regards,
    >>
    >> Gilberto
    >>
    >> --
    >> View this message in context: http://cayenne.195.n3.nabble.com/Exception-in-Cayenne-Modeler-heap-blows-up-tp1572059p1575026.html
    >> Sent from the Cayenne - User mailing list archive at Nabble.com.
    >>
    >>
    >
    >



    This archive was generated by hypermail 2.0.0 : Fri Sep 24 2010 - 17:32:46 UTC