[
https://issues.apache.org/jira/browse/CAY-1674?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrus Adamchik updated CAY-1674:
---------------------------------
Attachment: error.png
> Error generating classes with invalid path in the query qualifier
> -----------------------------------------------------------------
>
> Key: CAY-1674
> URL: https://issues.apache.org/jira/browse/CAY-1674
> Project: Cayenne
> Issue Type: Bug
> Affects Versions: 3.1M3
> Environment: affects 3.1M1 - 3.1M4-SNAPSHOT, and probably earlier
> versions as well
> Reporter: Andrus Adamchik
> Priority: Minor
> Attachments: error.png
>
>
> When a model has a query with invalid path , and I am attempting to generate
> classes from the Modeler, the following error (is this when the queries
> methods are generated??). Class generation behavior is probably correct here
> (although it may be more descriptive, showing the root object - the query -
> that caused the error). However we need to add a validation to the list of
> project validations to detect this condition on project save/load.
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: SEVERE: Error
> generating classes
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]:
> org.apache.velocity.exception.MethodInvocationException: Invocation of method
> 'getParameterNames' in class org.apache.cayenne.gen.DataMapUtils threw
> exception org.apache.cayenne.exp.ExpressionException: [v.3.1M3 Sep 13 2011
> 18:52:59] Can't resolve path component: [Entity.badRelationship]. at
> templates/v1_2/datamap-superclass.vm[line 43, column 40]
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.velocity.runtime.parser.node.ASTMethod.handleInvocationException(ASTMethod.java:337)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:284)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:262)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:507)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:282)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:175)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:366)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:175)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.velocity.Template.merge(Template.java:328)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.velocity.Template.merge(Template.java:235)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.cayenne.gen.ClassGenerationAction.execute(ClassGenerationAction.java:242)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.cayenne.gen.ClassGenerationAction.execute(ClassGenerationAction.java:214)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.cayenne.modeler.dialog.codegen.CodeGeneratorController.generateAction(CodeGeneratorController.java:146)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.lang.reflect.Method.invoke(Method.java:597)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:491)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:785)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:61)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> ognl.OgnlRuntime.callMethod(OgnlRuntime.java:819)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> ognl.ASTMethod.getValueBody(ASTMethod.java:75)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> ognl.SimpleNode.getValue(SimpleNode.java:210)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> ognl.Ognl.getValue(Ognl.java:333)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> ognl.Ognl.getValue(Ognl.java:413)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> ognl.Ognl.getValue(Ognl.java:395)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.cayenne.swing.BindingBase.getValue(BindingBase.java:168)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.cayenne.swing.ActionBinding.fireAction(ActionBinding.java:80)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.cayenne.swing.ActionBinding$1.actionPerformed(ActionBinding.java:42)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.Component.processMouseEvent(Component.java:6373)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.Component.processEvent(Component.java:6138)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.Container.processEvent(Container.java:2085)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.Component.dispatchEventImpl(Component.java:4735)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.Container.dispatchEventImpl(Container.java:2143)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.Component.dispatchEvent(Component.java:4565)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4621)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.LightweightDispatcher.processMouseEvent(Container.java:4282)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.LightweightDispatcher.dispatchEvent(Container.java:4212)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.Container.dispatchEventImpl(Container.java:2129)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.Window.dispatchEventImpl(Window.java:2478)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.Component.dispatchEvent(Component.java:4565)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventQueue.dispatchEventImpl(EventQueue.java:679)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventQueue.access$000(EventQueue.java:85)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventQueue$1.run(EventQueue.java:638)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventQueue$1.run(EventQueue.java:636)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.security.AccessController.doPrivileged(Native Method)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventQueue$2.run(EventQueue.java:652)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventQueue$2.run(EventQueue.java:650)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.security.AccessController.doPrivileged(Native Method)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventQueue.dispatchEvent(EventQueue.java:649)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:205)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.Dialog$1.run(Dialog.java:1046)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.Dialog$3.run(Dialog.java:1098)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.security.AccessController.doPrivileged(Native Method)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.Dialog.show(Dialog.java:1096)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.Component.show(Component.java:1584)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.Component.setVisible(Component.java:1536)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.Window.setVisible(Window.java:842)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.Dialog.setVisible(Dialog.java:986)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.cayenne.modeler.dialog.codegen.CodeGeneratorController.startup(CodeGeneratorController.java:75)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.cayenne.modeler.action.GenerateCodeAction.performAction(GenerateCodeAction.java:46)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.cayenne.modeler.util.CayenneAction.actionPerformed(CayenneAction.java:162)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> javax.swing.AbstractButton.doClick(AbstractButton.java:389)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:95)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.MenuItem.processActionEvent(MenuItem.java:627)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.MenuItem.processEvent(MenuItem.java:586)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:337)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.MenuComponent.dispatchEvent(MenuComponent.java:325)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventQueue.dispatchEventImpl(EventQueue.java:682)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventQueue.access$000(EventQueue.java:85)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventQueue$1.run(EventQueue.java:638)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventQueue$1.run(EventQueue.java:636)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.security.AccessController.doPrivileged(Native Method)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventQueue$2.run(EventQueue.java:652)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventQueue$2.run(EventQueue.java:650)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.security.AccessController.doPrivileged(Native Method)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventQueue.dispatchEvent(EventQueue.java:649)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: Caused by:
> org.apache.cayenne.exp.ExpressionException: [v.3.1M3 Sep 13 2011 18:52:59]
> Can't resolve path component: [Entity.badRelationship].
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.cayenne.map.PathComponentIterator.invalidPathException(PathComponentIterator.java:145)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.cayenne.map.PathComponentIterator.next(PathComponentIterator.java:133)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.cayenne.map.PathComponentIterator.next(PathComponentIterator.java:33)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.cayenne.map.Entity.lastPathComponent(Entity.java:296)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.cayenne.map.ObjEntity.lastPathComponent(ObjEntity.java:983)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.cayenne.gen.DataMapUtils.getParameterNames(DataMapUtils.java:142)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.cayenne.gen.DataMapUtils.getParameterNames(DataMapUtils.java:138)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.cayenne.gen.DataMapUtils.getParameterNames(DataMapUtils.java:81)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> sun.reflect.GeneratedMethodAccessor47.invoke(Unknown Source)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> java.lang.reflect.Method.invoke(Method.java:597)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:389)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:378)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: at
> org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270)
> Feb 27 20:18:27 garodnya [0x0-0x646646].CayenneModeler[18451]: ... 104
> more
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira