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

Reply via email to