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


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

        

Reply via email to