[ 
https://issues.apache.org/jira/browse/CAY-2790?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nikita Timofeev updated CAY-2790:
---------------------------------
    Fix Version/s: 4.2
                   5.0.M1

> EOModel import: NPE importing EOFetchSpecification
> --------------------------------------------------
>
>                 Key: CAY-2790
>                 URL: https://issues.apache.org/jira/browse/CAY-2790
>             Project: Cayenne
>          Issue Type: Improvement
>    Affects Versions: 4.2.RC2
>            Reporter: Andrus Adamchik
>            Priority: Major
>             Fix For: 4.2, 5.0.M1
>
>
> Per user report at https://lists.apache.org/list.html?u...@cayenne.apache.org 
> , there's an NPE during EOModel import, caused by EOFetchSpecification with 
> relationships referencing a different EOModel. 
> {noformat}
>  qualifier = {
>            class = EOAndQualifier;
>            qualifiers = (
>                {
>                    class = EOKeyValueQualifier;
>                    key = "storedName.netid";
>                    selectorName = "isEqualTo:";
>                    value = {"_key" = netid; class = EOQualifierVariable; };
>                },
>                {
>                    class = EOKeyValueQualifier;
>                    key = "storedName.sourceDnd.domain";
>                    selectorName = "isEqualTo:";
>                    value = {"_key" = upperRealm; class = EOQualifierVariable; 
> };
>                }
>            );
>        };
> {noformat}
> {noformat}
> CayenneModeler Info
> Version: 4.2.RC2
> Build Date: Dec 01 2022 08:35:36
> Exception: 
> =================================
> org.apache.cayenne.exp.ExpressionException: [v.4.2.RC2 Dec 01 2022 08:35:36] 
> And: invalid child - null
>       at 
> org.apache.cayenne.exp.parser.AggregateConditionNode.jjtAddChild(AggregateConditionNode.java:94)
>       at 
> org.apache.cayenne.exp.parser.SimpleNode.setOperand(SimpleNode.java:325)
>       at 
> org.apache.cayenne.exp.ExpressionFactory.joinExp(ExpressionFactory.java:1298)
>       at 
> org.apache.cayenne.exp.ExpressionFactory.joinExp(ExpressionFactory.java:1270)
>       at 
> org.apache.cayenne.wocompat.EOQuery$EOFetchSpecificationParser.makeQualifier(EOQuery.java:413)
>       at 
> org.apache.cayenne.wocompat.EOModelProcessor.makeEOQueryDescriptor(EOModelProcessor.java:266)
>       at 
> org.apache.cayenne.wocompat.EOModelProcessor.makeQuery(EOModelProcessor.java:223)
>       at 
> org.apache.cayenne.wocompat.EOModelProcessor.loadEOModel(EOModelProcessor.java:180)
>       at 
> org.apache.cayenne.wocompat.EOModelProcessor.loadEOModel(EOModelProcessor.java:105)
>       at 
> org.apache.cayenne.modeler.action.ImportEOModelAction.importEOModel(ImportEOModelAction.java:124)
>       at 
> org.apache.cayenne.modeler.action.ImportEOModelAction.performAction(ImportEOModelAction.java:88)
>       at 
> org.apache.cayenne.modeler.util.CayenneAction.actionPerformed(CayenneAction.java:171)
>       at 
> java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
>       at 
> java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
>       at 
> java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
>       at 
> java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
>       at 
> java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:374)
>       at 
> java.desktop/com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:129)
>       at java.desktop/java.awt.MenuItem.processActionEvent(MenuItem.java:692)
>       at java.desktop/java.awt.MenuItem.processEvent(MenuItem.java:651)
>       at 
> java.desktop/java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:379)
>       at 
> java.desktop/java.awt.MenuComponent.dispatchEvent(MenuComponent.java:367)
>       at 
> java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
>       at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
>       at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
>       at 
> java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
>       at 
> java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
>       at 
> java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
>       at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746)
>       at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744)
>       at 
> java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
>       at 
> java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
>       at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743)
>       at 
> java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
>       at 
> java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
>       at 
> java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
>       at 
> java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
>       at 
> java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
>       at 
> java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to