[ 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)