FAQ
I still need to delve into this to get more details.

Yesterday a co-worker imported an EOModel and saved it. Later on he
re-loaded the project and the DataMap fails to load. I just repeated the
steps and verified it. The problem lies in the stored fetch specifications
that were imported as Cayenne queries. When we deleted the <query> parts
out of the map XML it loaded. I haven't had a chance to try to figure out
which query was the problem yet (there are over 20 of them), but if someone
has recently done something with the query loading code, please let me know.

Thanks! :-)

mrg

PS. This was a modeler I built on 12/15, post B1.

Search Discussions

  • Andrus Adamchik at Dec 23, 2009 at 2:10 pm
    Not sure if it is possible to share the DataMap xml file? Otherwise
    this can be posted to Jira, and somebody can take a look. Also any
    exceptions in ~/.cayenne/modeler.log ?

    Andrus

    On Dec 23, 2009, at 4:04 PM, Michael Gentry wrote:

    I still need to delve into this to get more details.

    Yesterday a co-worker imported an EOModel and saved it. Later on he
    re-loaded the project and the DataMap fails to load. I just
    repeated the
    steps and verified it. The problem lies in the stored fetch
    specifications
    that were imported as Cayenne queries. When we deleted the <query>
    parts
    out of the map XML it loaded. I haven't had a chance to try to
    figure out
    which query was the problem yet (there are over 20 of them), but if
    someone
    has recently done something with the query loading code, please let
    me know.

    Thanks! :-)

    mrg

    PS. This was a modeler I built on 12/15, post B1.
  • Michael Gentry at Dec 23, 2009 at 2:15 pm
    I've found one query that trips it up. Looking to see if there are others.
    I'll post them shortly (probably after a meeting I have to attend, though).

    Thanks,

    mrg

    On Wed, Dec 23, 2009 at 9:10 AM, Andrus Adamchik wrote:

    Not sure if it is possible to share the DataMap xml file? Otherwise this
    can be posted to Jira, and somebody can take a look. Also any exceptions in
    ~/.cayenne/modeler.log ?

    Andrus



    On Dec 23, 2009, at 4:04 PM, Michael Gentry wrote:

    I still need to delve into this to get more details.
    Yesterday a co-worker imported an EOModel and saved it. Later on he
    re-loaded the project and the DataMap fails to load. I just repeated the
    steps and verified it. The problem lies in the stored fetch
    specifications
    that were imported as Cayenne queries. When we deleted the <query> parts
    out of the map XML it loaded. I haven't had a chance to try to figure out
    which query was the problem yet (there are over 20 of them), but if
    someone
    has recently done something with the query loading code, please let me
    know.

    Thanks! :-)

    mrg

    PS. This was a modeler I built on 12/15, post B1.
  • Michael Gentry at Dec 23, 2009 at 2:31 pm
    23 of the 24 queries it imported loaded back in fine (although I
    didn't verify they were actually correct).  Here is the one that
    failed:

    <query name="CoreContracts_OSISContracts"
    factory="org.apache.cayenne.map.SelectQueryBuilder" root="obj-entity"
    root-name="CoreContracts">
    <qualifier><![CDATA[db: = "OSIS "]]></qualifier>
    <ordering><![CDATA[contractNum]]></ordering>
    </query>

    It is the only one that had a "db:" in it. Under the "General" tab
    for the query, it has: db: = "OSIS "

    Here is the EOModel fetch specification it imported:

    {
    OSISContracts = {
    class = EOFetchSpecification;
    entityName = CoreContracts;
    fetchLimit = 0;
    isDeep = YES;
    qualifier = {
    class = EOKeyValueQualifier;
    key = contractOwner;
    selectorName = "isEqualTo:";
    value = "OSIS ";
    };
    refreshesRefetchedObjects = YES;
    sortOrderings = (
    {
    class = EOSortOrdering;
    key = contractNum;
    selectorName = "compareAscending:";
    }
    );
    };
    }

    It doesn't look like the qualifier was correctly imported, either.
    Here is the stack trace:

    INFO: Warning: map loading failed.
    org.apache.cayenne.CayenneRuntimeException: [v.3.0-SNAPSHOT Dec 15
    2009 20:25:11] Error loading DataMap, last processed tag: (MapLoader.java:732)
    at org.apache.cayenne.conf.RuntimeLoadDelegate.loadDataMap(RuntimeLoadDelegate.java:212)
    at org.apache.cayenne.conf.RuntimeLoadDelegate.shouldLoadDataMaps(RuntimeLoadDelegate.java:170)
    at org.apache.cayenne.conf.ConfigLoader$DomainHandler.loadMaps(ConfigLoader.java:251)
    at org.apache.cayenne.conf.ConfigLoader$DomainHandler.finished(ConfigLoader.java:235)
    at org.apache.cayenne.conf.AbstractHandler.endElement(AbstractHandler.java:124)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:633)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(XMLNSDocumentScannerImpl.java:719)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
    at org.apache.cayenne.conf.ConfigLoader.loadDomains(ConfigLoader.java:78)
    at org.apache.cayenne.conf.DefaultConfiguration.initialize(DefaultConfiguration.java:152)
    at org.apache.cayenne.project.ApplicationProject.loadProject(ApplicationProject.java:114)
    at org.apache.cayenne.project.ApplicationProject.postInitialize(ApplicationProject.java:101)
    at org.apache.cayenne.project.ApplicationProject.(OpenProjectAction.java:123)
    at org.apache.cayenne.modeler.ProjectWatchdog.doOnChange(ProjectWatchdog.java:86)
    at org.apache.cayenne.modeler.util.FileWatchdog.check(FileWatchdog.java:198)
    at org.apache.cayenne.modeler.util.FileWatchdog.run(FileWatchdog.java:209)
    Caused by: org.apache.cayenne.exp.parser.ParseException: Encountered "
    "=" "= "" at line 1, column 5.
    Was expecting:
    <PROPERTY_PATH> ...

    at org.apache.cayenne.exp.parser.ExpressionParser.generateParseException(ExpressionParser.java:1487)
    at org.apache.cayenne.exp.parser.ExpressionParser.jj_consume_token(ExpressionParser.java:1422)
    at org.apache.cayenne.exp.parser.ExpressionParser.pathExpression(ExpressionParser.java:1298)
    at org.apache.cayenne.exp.parser.ExpressionParser.numericPrimary(ExpressionParser.java:1202)
    at org.apache.cayenne.exp.parser.ExpressionParser.numericTerm(ExpressionParser.java:1156)
    at org.apache.cayenne.exp.parser.ExpressionParser.multiplySubtractExp(ExpressionParser.java:1063)
    at org.apache.cayenne.exp.parser.ExpressionParser.scalarNumericExpression(ExpressionParser.java:987)
    at org.apache.cayenne.exp.parser.ExpressionParser.scalarConditionExpression(ExpressionParser.java:780)
    at org.apache.cayenne.exp.parser.ExpressionParser.simpleCondition(ExpressionParser.java:237)
    at org.apache.cayenne.exp.parser.ExpressionParser.notCondition(ExpressionParser.java:190)
    at org.apache.cayenne.exp.parser.ExpressionParser.andCondition(ExpressionParser.java:96)
    at org.apache.cayenne.exp.parser.ExpressionParser.orCondition(ExpressionParser.java:56)
    at org.apache.cayenne.exp.parser.ExpressionParser.expression(ExpressionParser.java:49)
    at org.apache.cayenne.exp.Expression.fromString(Expression.java:136)
    at org.apache.cayenne.map.QueryLoader.setQualifier(QueryLoader.java:136)
    at org.apache.cayenne.map.MapLoader.processEndQualifier(MapLoader.java:1311)
    at org.apache.cayenne.map.MapLoader.access$49(MapLoader.java:1297)
    at org.apache.cayenne.map.MapLoader$49.execute(MapLoader.java:560)
    at org.apache.cayenne.map.MapLoader.endElement(MapLoader.java:873)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:633)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(XMLNSDocumentScannerImpl.java:719)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
    at org.apache.cayenne.map.MapLoader.loadDataMap(MapLoader.java:721)
    ... 22 more


    I have to run off for a bit now ...

    Thanks,

    mrg


    On Wed, Dec 23, 2009 at 9:10 AM, Andrus Adamchik wrote:

    Not sure if it is possible to share the DataMap xml file? Otherwise this can be posted to Jira, and somebody can take a look. Also any exceptions in ~/.cayenne/modeler.log ?

    Andrus

    On Dec 23, 2009, at 4:04 PM, Michael Gentry wrote:

    I still need to delve into this to get more details.

    Yesterday a co-worker imported an EOModel and saved it.  Later on he
    re-loaded the project and the DataMap fails to load.  I just repeated the
    steps and verified it.  The problem lies in the stored fetch specifications
    that were imported as Cayenne queries.  When we deleted the <query> parts
    out of the map XML it loaded.  I haven't had a chance to try to figure out
    which query was the problem yet (there are over 20 of them), but if someone
    has recently done something with the query loading code, please let me know.

    Thanks!  :-)

    mrg

    PS. This was a modeler I built on 12/15, post B1.
  • Andrus Adamchik at Dec 23, 2009 at 2:42 pm

    On Dec 23, 2009, at 4:30 PM, Michael Gentry wrote:

    db: = "OSIS "
    This is most certainly not a valid Cayenne expression. It is missing
    the name of the property or DB column. While I am less interested in
    tracing down EOF import code, the fact that we parse expressions on
    project load and throw an error on invalid ones is definitely a bug.
    It should just load, and give a validation error on subsequent save.

    Andrus
  • Michael Gentry at Dec 23, 2009 at 3:08 pm
    I agree that hunting down the problem in the EOF import code is a
    lower priority. I would even say it shouldn't stop 3.0 final from
    being released, but the fact that the modeler will save something it
    can't load should be fixed. That Qualifier: field is free-text for
    someone to type in and they can hose themselves unintentionally now.

    I'll create a Jira for the Qualifier field/validation. I should
    probably create a separate one for the EOF import. We have a lot of
    EOF models here, so I'll look into it.

    Thanks,

    mrg

    On Wed, Dec 23, 2009 at 9:42 AM, Andrus Adamchik wrote:
    On Dec 23, 2009, at 4:30 PM, Michael Gentry wrote:

    db: = "OSIS "
    This is most certainly not a valid Cayenne expression. It is missing the
    name of the property or DB column. While I am less interested in tracing
    down EOF import code, the fact that we parse expressions on project load and
    throw an error on invalid ones is definitely a bug. It should just load, and
    give a validation error on subsequent save.

    Andrus

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupdev @
categoriescayenne
postedDec 23, '09 at 2:04p
activeDec 23, '09 at 3:08p
posts6
users2
websitecayenne.apache.org

2 users in discussion

Michael Gentry: 4 posts Andrus Adamchik: 2 posts

People

Translate

site design / logo © 2022 Grokbase