Hi guys,
I just upgraded and my build is breaking with the following exception which is caused by the following snippet from dataobject.j <XDtMethod:forAllMethods> <XDtEjbDataObj:ifIsAggregate> if (otherData.<XDtMethod:propertyName/> != null) { this.<XDtMethod:propertyName/> = new <XDtClass:pushClass value="<XDtEjbIntf:beanClassNameFromInterfaceName/>"><XDtEjbDataObj:dataObjectClass/></XDtClass:pushClass>( otherData.<XDtMethod:propertyName/> ); } </XDtEjbDataObj:ifIsAggregate> </XDtMethod:forAllMethods> You will notice that I have added null checking for aggregated CMRs - the patch for which I have attached to this email. We are kinda stuck at the moment 'cause we've moved to j2sdk1.4 and so we need Xdoclet 1.1.2 but it's breaking the build. I can help if you point me in the right direction. Ahhhh the bleeding edge. regard, Colin Daly. [ejbdoclet] [ERROR,start] Exception trace: [ejbdoclet] xdoclet.XDocletException: You asked the bean class for a NULL interface name [ejbdoclet] [INFO,Default] Running XDoclet failed. [ejbdoclet] [INFO,Default] <<You asked the bean class for a NULL interface name>> [ejbdoclet] 1 error [ejbdoclet] at xdoclet.ejb.tags.InterfaceTagsHandler.getBeanClassNameFromInterfaceNameFor(InterfaceTagsHandler.java:153) [ejbdoclet] 104 warnings [ejbdoclet] at xdoclet.ejb.tags.InterfaceTagsHandler.beanClassNameFromInterfaceName(InterfaceTagsHandler.java:465) [ejbdoclet] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [ejbdoclet] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [ejbdoclet] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [ejbdoclet] at java.lang.reflect.Method.invoke(Method.java:324) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:798) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeContentMethod(TemplateEngine.java:890) [ejbdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:457) [ejbdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:336) [ejbdoclet] at xdoclet.template.TemplateEngine.outputOf(TemplateEngine.java:363) [ejbdoclet] at xdoclet.template.TemplateEngine.extractNextAttribute(TemplateEngine.java:564) [ejbdoclet] at xdoclet.template.TemplateEngine.extractAttributes(TemplateEngine.java:475) [ejbdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:452) [ejbdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:336) [ejbdoclet] at xdoclet.template.TemplateTagHandler.generate(TemplateTagHandler.java:71) [ejbdoclet] at xdoclet.ejb.tags.DataObjectTagsHandler.ifIsAggregate(DataObjectTagsHandler.java:437) [ejbdoclet] at sun.reflect.GeneratedMethodAccessor44.invoke(Unknown Source) [ejbdoclet] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [ejbdoclet] at java.lang.reflect.Method.invoke(Method.java:324) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:768) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:856) [ejbdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:720) [ejbdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:455) [ejbdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:336) [ejbdoclet] at xdoclet.template.TemplateTagHandler.generate(TemplateTagHandler.java:71) [ejbdoclet] at xdoclet.tags.AbstractProgramElementTagsHandler.forAllMembers(AbstractProgramElementTagsHandler.java:660) [ejbdoclet] at xdoclet.tags.MethodTagsHandler.forAllMethods(MethodTagsHandler.java:354) [ejbdoclet] at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source) [ejbdoclet] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [ejbdoclet] at java.lang.reflect.Method.invoke(Method.java:324) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:798) [ejbdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:856) [ejbdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:720) [ejbdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:455) [ejbdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:336) [ejbdoclet] at xdoclet.template.TemplateEngine.start(TemplateEngine.java:400) [ejbdoclet] at xdoclet.TemplateSubTask.startEngine(TemplateSubTask.java:597) [ejbdoclet] at xdoclet.TemplateSubTask.generateForClass(TemplateSubTask.java:499) [ejbdoclet] at xdoclet.ejb.DataObjectSubTask.generateForClass(DataObjectSubTask.java:138) [ejbdoclet] at xdoclet.TemplateSubTask.startProcess(TemplateSubTask.java:388) [ejbdoclet] at xdoclet.TemplateSubTask.execute(TemplateSubTask.java:326) [ejbdoclet] at xdoclet.DocletTask$DocletMain.start(DocletTask.java:549) [ejbdoclet] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [ejbdoclet] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [ejbdoclet] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [ejbdoclet] at java.lang.reflect.Method.invoke(Method.java:324) [ejbdoclet] at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:196) [ejbdoclet] at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:95) [ejbdoclet] at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:288) [ejbdoclet] at com.sun.tools.javadoc.Start.begin(Start.java:114) [ejbdoclet] at com.sun.tools.javadoc.Main.execute(Main.java:44) [ejbdoclet] at com.sun.tools.javadoc.Main.main(Main.java:34) [ejbdoclet] [ejbdoclet] javadoc: In doclet class xdoclet.DocletTask$DocletMain, method start has thrown an exception java.lang.reflect.InvocationTargetException
Index: dataobject.j =================================================================== RCS file: /cvsroot/xdoclet/xdoclet/core/resources/xdoclet/ejb/dataobject.j,v retrieving revision 1.26 diff -c -r1.26 dataobject.j *** dataobject.j 11 Mar 2002 13:42:49 -0000 1.26 --- dataobject.j 12 Mar 2002 05:55:57 -0000 *************** *** 54,60 **** <XDtMethod:forAllMethods> <XDtEjbDataObj:ifIsAggregate> ! this.<XDtMethod:propertyName/> = new <XDtClass:pushClass value="<XDtEjbIntf:beanClassNameFromInterfaceName/>"><XDtEjbDataObj:dataObjectClass/></XDtClass:pushClass>( otherData.<XDtMethod:propertyName/> ); </XDtEjbDataObj:ifIsAggregate> </XDtMethod:forAllMethods> } --- 54,62 ---- <XDtMethod:forAllMethods> <XDtEjbDataObj:ifIsAggregate> ! if (otherData.<XDtMethod:propertyName/> != null) { ! this.<XDtMethod:propertyName/> = new <XDtClass:pushClass value="<XDtEjbIntf:beanClassNameFromInterfaceName/>"><XDtEjbDataObj:dataObjectClass/></XDtClass:pushClass>( otherData.<XDtMethod:propertyName/> ); ! } </XDtEjbDataObj:ifIsAggregate> </XDtMethod:forAllMethods> } *************** *** 78,84 **** { return this.<XDtMethod:propertyName/>; } - <XDtMethod:ifHasMethod name="<XDtMethod:setterMethod/>" parameters="<XDtMethod:methodType/>"> public void <XDtMethod:setterMethod/>( <XDtEjbDataObj:dataObjectClassNameFromInterfaceName/> <XDtMethod:propertyName/> ) { --- 80,85 ----