You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by Laurie Harper <zo...@holoweb.net> on 2004/03/12 04:48:41 UTC

OJB XDoclet module Missing element class ref on @ojb collection not handled

[I tried to submit this as a bug, but a Scarab bug[1] seems to be 
preventing me :-( ]

Using the xdoclet stuff packaged in db-ojb-1.0.rc5-contrib:

If the element-class-ref attribute is missing from the @ojb.collection 
tag, an internal error occurs which is not handled and reported clearly. 
You should get an error message like 'Could not determine collection 
element type; missing element-class-ref attribute. Instead you get a 
huge stack trace which doesn't communicate the problem:

[ojbdoclet] (XDocletMain.start                   47  ) Running 
<ojbrepository/>
[ojbdoclet] Generating repository_user.xml.
[ojbdoclet] (TemplateEngine.invokeMethod         541 ) Invoking method 
failed: xdoclet.modules.ojb.OjbTagsHandler.forAllCollectionForeignKeys, 
line=7 of template file: 
jar:file:/Users/zodiac/src/holoweb/ff1/tools/ojb-xdoclet/xdoclet-ojb-module-1.2b3.jar!/xdoclet/modules/ojb/resources/ojb_xml.xdt
[ojbdoclet] java.lang.reflect.InvocationTargetException
[ojbdoclet]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)
[ojbdoclet]     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:534)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.ifHasProperty(OjbTagsHandler.java:2126)
[ojbdoclet]     at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown 
Source)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:534)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.forAllCollectionDefinitions(OjbTagsHandler.java:1503)
[ojbdoclet]     at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown 
Source)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:561)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.ifPropertyValueEquals(OjbTagsHandler.java:2197)
[ojbdoclet]     at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown 
Source)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:534)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.ifPropertyValueEquals(OjbTagsHandler.java:2197)
[ojbdoclet]     at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown 
Source)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:534)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.forAllClassDefinitions(OjbTagsHandler.java:1276)
[ojbdoclet]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)
[ojbdoclet]     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:561)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.start(TemplateEngine.java:414)
[ojbdoclet]     at 
xdoclet.TemplateSubTask.startEngine(TemplateSubTask.java:560)
[ojbdoclet]     at 
xdoclet.TemplateSubTask.startProcessForAll(TemplateSubTask.java:616)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbSubTask.startProcess(OjbSubTask.java:89)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbSubTask.execute(OjbSubTask.java:73)
[ojbdoclet]     at xdoclet.XDocletMain.start(XDocletMain.java:48)
[ojbdoclet]     at xdoclet.DocletTask.start(DocletTask.java:458)
[ojbdoclet]     at xjavadoc.ant.XJavadocTask.execute(XJavadocTask.java:110)
[ojbdoclet]     at 
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:193)
[ojbdoclet]     at org.apache.tools.ant.Task.perform(Task.java:341)
[ojbdoclet]     at org.apache.tools.ant.Target.execute(Target.java:309)
[ojbdoclet]     at org.apache.tools.ant.Target.performTasks(Target.java:336)
[ojbdoclet]     at 
org.apache.tools.ant.Project.executeTarget(Project.java:1339)
[ojbdoclet]     at 
org.apache.tools.ant.Project.executeTargets(Project.java:1255)
[ojbdoclet]     at org.apache.tools.ant.Main.runBuild(Main.java:609)
[ojbdoclet]     at org.apache.tools.ant.Main.start(Main.java:196)
[ojbdoclet]     at org.apache.tools.ant.Main.main(Main.java:235)
[ojbdoclet] Caused by: java.lang.NullPointerException
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.forAllCollectionForeignKeys(OjbTagsHandler.java:1859)
[ojbdoclet]     ... 83 more
[ojbdoclet] (XDocletMain.start                   53  ) Running XDoclet 
failed.
[ojbdoclet] (XDocletMain.start                   54  ) <<Running XDoclet 
failed.: xdoclet.template.TemplateException: Invoking method in class 
xdoclet.modules.ojb.OjbTagsHandler failed: forAllCollectionForeignKeys, 
line=7 of template file: 
jar:file:/Users/zodiac/src/holoweb/ff1/tools/ojb-xdoclet/xdoclet-ojb-module-1.2b3.jar!/xdoclet/modules/ojb/resources/ojb_xml.xdt, 
exception: null>>
[ojbdoclet] xdoclet.template.TemplateException: Invoking method in class 
xdoclet.modules.ojb.OjbTagsHandler failed: forAllCollectionForeignKeys, 
line=7 of template file: 
jar:file:/Users/zodiac/src/holoweb/ff1/tools/ojb-xdoclet/xdoclet-ojb-module-1.2b3.jar!/xdoclet/modules/ojb/resources/ojb_xml.xdt, 
exception: null
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:542)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.ifHasProperty(OjbTagsHandler.java:2126)
[ojbdoclet]     at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown 
Source)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:534)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.forAllCollectionDefinitions(OjbTagsHandler.java:1503)
[ojbdoclet]     at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown 
Source)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:561)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.ifPropertyValueEquals(OjbTagsHandler.java:2197)
[ojbdoclet]     at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown 
Source)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:534)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.ifPropertyValueEquals(OjbTagsHandler.java:2197)
[ojbdoclet]     at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown 
Source)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:534)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.forAllClassDefinitions(OjbTagsHandler.java:1276)
[ojbdoclet]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)
[ojbdoclet]     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:561)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.start(TemplateEngine.java:414)
[ojbdoclet]     at 
xdoclet.TemplateSubTask.startEngine(TemplateSubTask.java:560)
[ojbdoclet]     at 
xdoclet.TemplateSubTask.startProcessForAll(TemplateSubTask.java:616)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbSubTask.startProcess(OjbSubTask.java:89)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbSubTask.execute(OjbSubTask.java:73)
[ojbdoclet]     at xdoclet.XDocletMain.start(XDocletMain.java:48)
[ojbdoclet]     at xdoclet.DocletTask.start(DocletTask.java:458)
[ojbdoclet]     at xjavadoc.ant.XJavadocTask.execute(XJavadocTask.java:110)
[ojbdoclet]     at 
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:193)
[ojbdoclet]     at org.apache.tools.ant.Task.perform(Task.java:341)
[ojbdoclet]     at org.apache.tools.ant.Target.execute(Target.java:309)
[ojbdoclet]     at org.apache.tools.ant.Target.performTasks(Target.java:336)
[ojbdoclet]     at 
org.apache.tools.ant.Project.executeTarget(Project.java:1339)
[ojbdoclet]     at 
org.apache.tools.ant.Project.executeTargets(Project.java:1255)
[ojbdoclet]     at org.apache.tools.ant.Main.runBuild(Main.java:609)
[ojbdoclet]     at org.apache.tools.ant.Main.start(Main.java:196)
[ojbdoclet]     at org.apache.tools.ant.Main.main(Main.java:235)
[ojbdoclet] file:/Users/zodiac/src/holoweb/ff1/build.xml:31: XDoclet failed.
[ojbdoclet]     at xdoclet.DocletTask.start(DocletTask.java:461)
[ojbdoclet]     at xjavadoc.ant.XJavadocTask.execute(XJavadocTask.java:110)
[ojbdoclet]     at 
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:193)
[ojbdoclet]     at org.apache.tools.ant.Task.perform(Task.java:341)
[ojbdoclet]     at org.apache.tools.ant.Target.execute(Target.java:309)
[ojbdoclet]     at org.apache.tools.ant.Target.performTasks(Target.java:336)
[ojbdoclet]     at 
org.apache.tools.ant.Project.executeTarget(Project.java:1339)
[ojbdoclet]     at 
org.apache.tools.ant.Project.executeTargets(Project.java:1255)
[ojbdoclet]     at org.apache.tools.ant.Main.runBuild(Main.java:609)
[ojbdoclet]     at org.apache.tools.ant.Main.start(Main.java:196)
[ojbdoclet]     at org.apache.tools.ant.Main.main(Main.java:235)
[ojbdoclet] Caused by: xdoclet.XDocletException: Running XDoclet 
failed.: xdoclet.template.TemplateException: Invoking method in class 
xdoclet.modules.ojb.OjbTagsHandler failed: forAllCollectionForeignKeys, 
line=7 of template file: 
jar:file:/Users/zodiac/src/holoweb/ff1/tools/ojb-xdoclet/xdoclet-ojb-module-1.2b3.jar!/xdoclet/modules/ojb/resources/ojb_xml.xdt, 
exception: null
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:746)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.ifHasProperty(OjbTagsHandler.java:2126)
[ojbdoclet]     at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown 
Source)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:534)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.forAllCollectionDefinitions(OjbTagsHandler.java:1503)
[ojbdoclet]     at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown 
Source)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:561)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.ifPropertyValueEquals(OjbTagsHandler.java:2197)
[ojbdoclet]     at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown 
Source)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:534)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.ifPropertyValueEquals(OjbTagsHandler.java:2197)
[ojbdoclet]     at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown 
Source)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:534)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.forAllClassDefinitions(OjbTagsHandler.java:1276)
[ojbdoclet]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)
[ojbdoclet]     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:561)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.start(TemplateEngine.java:414)
[ojbdoclet]     at 
xdoclet.TemplateSubTask.startEngine(TemplateSubTask.java:560)
[ojbdoclet]     at 
xdoclet.TemplateSubTask.startProcessForAll(TemplateSubTask.java:616)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbSubTask.startProcess(OjbSubTask.java:89)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbSubTask.execute(OjbSubTask.java:73)
[ojbdoclet]     at xdoclet.XDocletMain.start(XDocletMain.java:48)
[ojbdoclet]     at xdoclet.DocletTask.start(DocletTask.java:458)
[ojbdoclet]     ... 10 more
[ojbdoclet] --- Nested Exception ---
[ojbdoclet] xdoclet.XDocletException: Running XDoclet failed.: 
xdoclet.template.TemplateException: Invoking method in class 
xdoclet.modules.ojb.OjbTagsHandler failed: forAllCollectionForeignKeys, 
line=7 of template file: 
jar:file:/Users/zodiac/src/holoweb/ff1/tools/ojb-xdoclet/xdoclet-ojb-module-1.2b3.jar!/xdoclet/modules/ojb/resources/ojb_xml.xdt, 
exception: null
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:746)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.ifHasProperty(OjbTagsHandler.java:2126)
[ojbdoclet]     at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown 
Source)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:534)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.forAllCollectionDefinitions(OjbTagsHandler.java:1503)
[ojbdoclet]     at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown 
Source)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:561)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.ifPropertyValueEquals(OjbTagsHandler.java:2197)
[ojbdoclet]     at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown 
Source)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:534)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.ifPropertyValueEquals(OjbTagsHandler.java:2197)
[ojbdoclet]     at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown 
Source)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:534)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbTagsHandler.forAllClassDefinitions(OjbTagsHandler.java:1276)
[ojbdoclet]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)
[ojbdoclet]     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[ojbdoclet]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ojbdoclet]     at java.lang.reflect.Method.invoke(Method.java:324)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:561)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:959)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347)
[ojbdoclet]     at 
xdoclet.template.TemplateEngine.start(TemplateEngine.java:414)
[ojbdoclet]     at 
xdoclet.TemplateSubTask.startEngine(TemplateSubTask.java:560)
[ojbdoclet]     at 
xdoclet.TemplateSubTask.startProcessForAll(TemplateSubTask.java:616)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbSubTask.startProcess(OjbSubTask.java:89)
[ojbdoclet]     at 
xdoclet.modules.ojb.OjbSubTask.execute(OjbSubTask.java:73)
[ojbdoclet]     at xdoclet.XDocletMain.start(XDocletMain.java:48)
[ojbdoclet]     at xdoclet.DocletTask.start(DocletTask.java:458)
[ojbdoclet]     at xjavadoc.ant.XJavadocTask.execute(XJavadocTask.java:110)
[ojbdoclet]     at 
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:193)
[ojbdoclet]     at org.apache.tools.ant.Task.perform(Task.java:341)
[ojbdoclet]     at org.apache.tools.ant.Target.execute(Target.java:309)
[ojbdoclet]     at org.apache.tools.ant.Target.performTasks(Target.java:336)
[ojbdoclet]     at 
org.apache.tools.ant.Project.executeTarget(Project.java:1339)
[ojbdoclet]     at 
org.apache.tools.ant.Project.executeTargets(Project.java:1255)
[ojbdoclet]     at org.apache.tools.ant.Main.runBuild(Main.java:609)
[ojbdoclet]     at org.apache.tools.ant.Main.start(Main.java:196)
[ojbdoclet]     at org.apache.tools.ant.Main.main(Main.java:235)








[1] When I hit Submit Issue, scarab responds with "Alert! More 
information was required to submit your request. Please scroll down to 
see error messages." The only error message is on the Description field, 
which says "ERROR! Missing resource (actersUAttachmentOrComment)".

I have no idea what that means or how to fix it... It might be an idea 
to follow up with the Scarab guys if you care about people submitting 
bug reports, etc! ;-)



---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


Re: OJB XDoclet module Missing element class ref on @ojb collection not handled

Posted by Thomas Dudziak <to...@first.gmd.de>.
On Sun, 14 Mar 2004, Laurie Harper wrote:

> BTW, I should say I really like this tool; I had actually looked at 
> writing exactly the same thing some time back but got distracted by 
> other things, so I was delighted to discover someone else had done so in 
> the meantime :-)

Thanks! Good to see that something I wrote because I was too lazy to
manually keep repository descriptor and source consistent ;-) is useful
to other people as well.

Tom


---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


Re: OJB XDoclet module Missing element class ref on @ojb collection not handled

Posted by Laurie Harper <zo...@holoweb.net>.
Thomas Dudziak wrote:
> You can use the column attribute of the ojb.field tag to achieve this. If
> no value is specified for the column attribute, the XDoclet module will
> use the java name (after some adjustments, e.g. for nested fields) or the
> value of the name attribute (for anonymous fields).

Doh! I don't know how I missed that! :-)

Thanks for the pointer,

L.

BTW, I should say I really like this tool; I had actually looked at 
writing exactly the same thing some time back but got distracted by 
other things, so I was delighted to discover someone else had done so in 
the meantime :-)



---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


Re: OJB XDoclet module Missing element class ref on @ojb collection not handled

Posted by Thomas Dudziak <to...@first.gmd.de>.
On Sat, 13 Mar 2004, Laurie Harper wrote:

> I realise it has to match up on the Java/OJB side, but the table column 
> name can be anything, as in:
> 
>      <field-descriptor
>          name="someProperty"
>          column="THE_COLUMN"
>          jdbc-type="INTEGER"
>          nullable="true"
>          access="anonymous"
>      />
> 
> Basically, I'd like the 'name' property from ojb.field to control the 
> value of 'column'. Does that make sense?

You can use the column attribute of the ojb.field tag to achieve this. If
no value is specified for the column attribute, the XDoclet module will
use the java name (after some adjustments, e.g. for nested fields) or the
value of the name attribute (for anonymous fields).

As a general rule, almost all attributes in the repository descriptor have
a corresponding attribute of the same name in the tag corresponding to
the XML tag in the descriptor. E.g. to specify the column that a field
maps to (XML attribute field-descriptor.column) you would use the
attribute column of the tag ojb.field. Likewise for class-descriptor.table
the attribute table of ojb.class.
There are some exceptions where this wouldn't make sense either because
the info is already present in the Java source (e.g. the name attribute of
the descriptor) or is handled differently (usually easier e.g. nested
fields).

Tom


---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


Re: OJB XDoclet module Missing element class ref on @ojb collection not handled

Posted by Laurie Harper <zo...@holoweb.net>.
Thomas Dudziak wrote:
> Nope, it is required to be the same as the real name of the java field,
> otherwise OJB wouldn't find the field. So in short, you cannot specify a
> different name (as this would refer to a different field). You can however
> add anonymous fields (put a field tag in the class javadoc comment with a
> name attribute).

I realise it has to match up on the Java/OJB side, but the table column 
name can be anything, as in:

     <field-descriptor
         name="someProperty"
         column="THE_COLUMN"
         jdbc-type="INTEGER"
         nullable="true"
         access="anonymous"
     />

Basically, I'd like the 'name' property from ojb.field to control the 
value of 'column'. Does that make sense?

L.



---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


Re: OJB XDoclet module Missing element class ref on @ojb collection not handled

Posted by Thomas Dudziak <to...@first.gmd.de>.
On Fri, 12 Mar 2004, Laurie Harper wrote:

> Just to let you know: yes, that fixes the problem. The CVS version 
> reports the error cleanly (well, still with a big stack trace, but 
> that's not your fault ;-). Thanks for the pointer!
> 
> Something it doesn't seem to fix (which is not so much a bug as an 'I 
> thought it would work this way' thing) is that 'name' attributes on 
> ojb.field tags are ignored. I know you can infer a name based on the 
> name of the Java property being mapped, but if I explicitly specify a 
> different name I'd like it to be used. Is there a way to get that to happen?

Nope, it is required to be the same as the real name of the java field,
otherwise OJB wouldn't find the field. So in short, you cannot specify a
different name (as this would refer to a different field). You can however
add anonymous fields (put a field tag in the class javadoc comment with a
name attribute).

Tom


---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


Re: OJB XDoclet module Missing element class ref on @ojb collection not handled

Posted by Laurie Harper <zo...@holoweb.net>.
Just to let you know: yes, that fixes the problem. The CVS version 
reports the error cleanly (well, still with a big stack trace, but 
that's not your fault ;-). Thanks for the pointer!

Something it doesn't seem to fix (which is not so much a bug as an 'I 
thought it would work this way' thing) is that 'name' attributes on 
ojb.field tags are ignored. I know you can infer a name based on the 
name of the Java property being mapped, but if I explicitly specify a 
different name I'd like it to be used. Is there a way to get that to happen?

L.

Thomas Dudziak wrote:

> On Thu, 11 Mar 2004, Laurie Harper wrote:
> 
> 
>>Using the xdoclet stuff packaged in db-ojb-1.0.rc5-contrib:
>>
>>If the element-class-ref attribute is missing from the @ojb.collection 
>>tag, an internal error occurs which is not handled and reported clearly. 
>>You should get an error message like 'Could not determine collection 
>>element type; missing element-class-ref attribute. Instead you get a 
>>huge stack trace which doesn't communicate the problem:
> 
> 
> Please use the CVS version of the XDoclet module which is way improved
> over the rc5 version (you don't have to use OJB from CVS, only the XDoclet
> module). You can get it from the ViewCVS access from the OJB website
> (http://cvs.apache.org/viewcvs/db-ojb/). Download the three jars
> xdoclet-1.2.jar, xdoclet-ojb-module-1.2.jar, and xjavadoc-1.0.2.jar from
> the lib folder, and also the documentation (xdoclet.xml) from the xdocs
> folder (html is build via 'ant htmldoc').
> If the problem persists, please post the stacktrace that the CVS
> module version generates.
> As for the stacktrace, I can't do much about it, XDoclet 1 is not known
> for its user-friendly error messages. A conversion to XDoclet 2 is
> planned for OJB 1.1 though.
> 
> Tom



---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


Re: OJB XDoclet module Missing element class ref on @ojb collection not handled

Posted by Thomas Dudziak <to...@first.gmd.de>.
On Thu, 11 Mar 2004, Laurie Harper wrote:

> Using the xdoclet stuff packaged in db-ojb-1.0.rc5-contrib:
> 
> If the element-class-ref attribute is missing from the @ojb.collection 
> tag, an internal error occurs which is not handled and reported clearly. 
> You should get an error message like 'Could not determine collection 
> element type; missing element-class-ref attribute. Instead you get a 
> huge stack trace which doesn't communicate the problem:

Please use the CVS version of the XDoclet module which is way improved
over the rc5 version (you don't have to use OJB from CVS, only the XDoclet
module). You can get it from the ViewCVS access from the OJB website
(http://cvs.apache.org/viewcvs/db-ojb/). Download the three jars
xdoclet-1.2.jar, xdoclet-ojb-module-1.2.jar, and xjavadoc-1.0.2.jar from
the lib folder, and also the documentation (xdoclet.xml) from the xdocs
folder (html is build via 'ant htmldoc').
If the problem persists, please post the stacktrace that the CVS
module version generates.
As for the stacktrace, I can't do much about it, XDoclet 1 is not known
for its user-friendly error messages. A conversion to XDoclet 2 is
planned for OJB 1.1 though.

Tom


---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org