Message: A new issue has been created in JIRA.
--------------------------------------------------------------------- View the issue: http://opensource.atlassian.com/projects/xdoclet/browse/XDT-1362 Here is an overview of the issue: --------------------------------------------------------------------- Key: XDT-1362 Summary: ConcurrentModificationException while using XDtMethod:exceptionList inside XDtClass:forAllClasses Type: Bug Status: Open Priority: Critical Original Estimate: Unknown Time Spent: Unknown Remaining: Unknown Project: XDoclet Components: Core Versions: 1.2.2 1.2.3 Assignee: xdoclet-devel (Use for new issues) Reporter: Luiz Cieslak Created: Mon, 25 Apr 2005 8:55 PM Updated: Mon, 25 Apr 2005 8:55 PM Environment: Windows 2000/XP, jdk 1.4.2, ant 1.6.2 Description: I got an exception when trying to use the <XDtMethod:exceptionList/> tag inside an <XDtClass:forAllClasses><XDtMethod:forAllMethods> tags combination. Follow the template I'm using: ================================================================= <XDtPackage:forAllPackages> /* * Gerado por Xdoclet * Nao edite!!!!!!!!!!!! */ <XDtVelocity:generator> #set( $className = $currentClass.name ) #set( $boName = $className.replaceAll('BusinessObject', '') ) #set( $packageName = $currentPackage.name ) #set( $ejbPackage = $packageName.replaceAll('businessobject', 'sessionfacade') ) #set( $interfacePackage = $packageName ) </XDtVelocity:generator> package <XDtVelocity:getVariable name="ejbPackage"/>; import java.rmi.RemoteException; import javax.ejb.EJBException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; <XDtClass:forAllClasses> /* BusinessObject. */ import <XDtClass:fullClassName/>; <XDtClass:importedList currentClass=""/> </XDtClass:forAllClasses> /** * * @ejb.bean * name = "<XDtVelocity:getVariable name="boName"/>SessionFacade" * type = "Stateless" * jndi-name = "<XDtVelocity:getVariable name="ejbPackage"/>.<XDtVelocity:getVariable name="boName"/>SessionFacade" * view-type="remote" * @ejb.home * package = "<XDtVelocity:getVariable name="ejbPackage"/>" * generate = "remote" * * @ejb.interface * package = "<XDtVelocity:getVariable name="ejbPackage"/>" * extends = "javax.ejb.EJBObject" * generate = "remote" * * @ejb.transaction type="Required" * * @weblogic.enable-call-by-reference True * * @author <XDtClass:classTagValue tagName="author"/> * * @version <XDtClass:classTagValue tagName="version"/> */ public class <XDtVelocity:getVariable name="boName"/>SessionFacade implements SessionBean { /** Contexto da sessao */ private SessionContext contexto; <XDtClass:forAllClasses> <XDtVelocity:generator> #set( $currentClassName = $currentClass.name ) #set( $currentBOName = $currentClassName.substring(0,$currentClassName.indexOf("BusinessObject")).toLowerCase() ) </XDtVelocity:generator> /** Business Object */ private static <XDtVelocity:getVariable name="currentClassName"/> <XDtVelocity:getVariable name="currentBOName"/>BO = <XDtClass:className/>.getInstance(); <XDtMethod:forAllMethods> <XDtMethod:ifIsPublic> <XDtMethod:ifMethodNameNotEquals name="getInstance"> /** * <XDtMethod:methodName/> - [<XDtMethod:firstSentenceDescriptionOfCurrentMethod/>] <XDtParameter:forAllMethodParams> * @param <XDtParameter:methodParamName/> <XDtParameter:methodParamDescription/> </XDtParameter:forAllMethodParams> <XDtMethod:ifDoesntReturnVoid> * @return <XDtMethod:methodType/> </XDtMethod:ifDoesntReturnVoid> * * @ejb.interface-method <XDtMethod:ifHasMethodTag tagName="ejb.transaction"> * @ejb.transaction <XDtMethod:methodTagValue tagName="ejb.transaction"/> </XDtMethod:ifHasMethodTag> */ public <XDtMethod:methodType/> <XDtMethod:methodName/>( ) <XDtMethod:exceptionList/> { <XDtMethod:ifDoesntReturnVoid> <XDtMethod:methodType/> resultado; </XDtMethod:ifDoesntReturnVoid> <XDtMethod:ifDoesntReturnVoid>resultado = </XDtMethod:ifDoesntReturnVoid>businessObject.<XDtMethod:methodName/>( <XDtParameter:parameterList includeDefinition="false"/> ); } } </XDtMethod:ifMethodNameNotEquals> </XDtMethod:ifIsPublic> </XDtMethod:forAllMethods> </XDtClass:forAllClasses> /** * @param SessionContext * @throws EJBException * @throws RemoteException * @see javax.ejb.SessionBean#setSessionContext(javax.ejb.SessionContext) */ public void setSessionContext(SessionContext theContext) throws EJBException, RemoteException { contexto = theContext; } /** * @see javax.ejb.SessionBean#ejbCreate() */ public void ejbCreate() { } /** * @throws EJBException * @throws RemoteException * @see javax.ejb.SessionBean#ejbRemove() */ public void ejbRemove() throws EJBException, RemoteException { } /** * @throws EJBException * @throws RemoteException * @see javax.ejb.SessionBean#ejbActivate() */ public void ejbActivate() throws EJBException, RemoteException { } /** * @throws EJBException * @throws RemoteException * @see javax.ejb.SessionBean#ejbPassivate() */ public void ejbPassivate() throws EJBException, RemoteException { } } </XDtPackage:forAllPackages> ================================================================= The piece of code that makes the problem happen: import java.util.Date; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * BusinessObject Order * * @version 1.1 Feb 15, 2005 7:43:29 AM * * */ public class OrderBusinessObject { // Logger desta classe private static Log logger = LogFactory.getLog(ItemPedidoBusinessObject.class); /** Instância singleton */ private static OrderBusinessObject instancia = null; /** DAOs */ private static OrderDAO orderDAO = null; private static OrderIDAO orderIDAO = null; /** * Obtem o número do último item de pedido de um pedido. * * @author User * @param numeroPedido * @return * @throws ItemPedidoBusinessException * * */ public Integer obterUltimoNumeroItemPedido(Integer numeroPedido) throws ItemPedidoBusinessException { ItemPedido itemPedido = null; try { itemPedido = itemPedidoDAO.obterUltimoItem(numeroPedido); } catch (DAOException e) { throw new ItemPedidoBusinessException(e); } int numero = 0; if (itemPedido != null) { //adiciona 1 unidade no último numero de item de pedido. numero = itemPedido.getNumeroItemPedidoAsPrimitive() + 1; } if ( numero == 0 ){ numero = 1; } return new Integer(numero); } And here is the exception that I get: Buildfile: E:\projects\build.xml runX: [xdoclet] (XDocletMain.start 47 ) Running <template/> [xdoclet] (TemplateSubTask.engineStarted 803 ) Generating output for 'project.businessobject.OrderBusinessObject' using template file 'file:/E:/projects/tools/xdoclet/templates/session_facade.xdt'. [xdoclet] (TemplateEngine.invokeMethod 579 ) Invoking method failed: xdoclet.tagshandler.ClassTagsHandler.forAllClasses, line=134 of template file: file:/E:/projects/tools/xdoclet/templates/session_facade.xdt [xdoclet] java.lang.reflect.InvocationTargetException [xdoclet] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [xdoclet] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [xdoclet] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [xdoclet] at java.lang.reflect.Method.invoke(Unknown Source) [xdoclet] at xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:641) [xdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:567) [xdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:965) [xdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:932) [xdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:472) [xdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:348) [xdoclet] at xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:742) [xdoclet] at xdoclet.tagshandler.PackageTagsHandler.forAllPackages(PackageTagsHandler.java:274) [xdoclet] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [xdoclet] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [xdoclet] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [xdoclet] at java.lang.reflect.Method.invoke(Unknown Source) [xdoclet] at xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:641) [xdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:567) [xdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:965) [xdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:932) [xdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:472) [xdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:348) [xdoclet] at xdoclet.template.TemplateEngine.start(TemplateEngine.java:415) [xdoclet] at xdoclet.TemplateSubTask.startEngine(TemplateSubTask.java:562) [xdoclet] at xdoclet.TemplateSubTask.generateForClass(TemplateSubTask.java:779) [xdoclet] at xdoclet.TemplateSubTask.startProcessPerClass(TemplateSubTask.java:679) [xdoclet] at xdoclet.TemplateSubTask.startProcess(TemplateSubTask.java:596) [xdoclet] at xdoclet.TemplateSubTask.execute(TemplateSubTask.java:487) [xdoclet] at xdoclet.XDocletMain.start(XDocletMain.java:48) [xdoclet] at xdoclet.DocletTask.start(DocletTask.java:468) [xdoclet] at xjavadoc.ant.XJavadocTask.execute(XJavadocTask.java:105) [xdoclet] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) [xdoclet] at org.apache.tools.ant.Task.perform(Task.java:364) [xdoclet] at org.apache.tools.ant.Target.execute(Target.java:341) [xdoclet] at org.apache.tools.ant.Target.performTasks(Target.java:369) [xdoclet] at org.apache.tools.ant.Project.executeTarget(Project.java:1214) [xdoclet] at org.apache.tools.ant.Project.executeTargets(Project.java:1062) [xdoclet] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:383) [xdoclet] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:136) [xdoclet] Caused by: java.util.ConcurrentModificationException [xdoclet] at java.util.LinkedList$ListItr.checkForComodification(Unknown Source) [xdoclet] at java.util.LinkedList$ListItr.next(Unknown Source) [xdoclet] at java.util.Collections$1.next(Unknown Source) [xdoclet] at xdoclet.tagshandler.ClassTagsHandler.forAllClasses(ClassTagsHandler.java:340) [xdoclet] ... 39 more [xdoclet] (XDocletMain.start 53 ) Running XDoclet failed. [xdoclet] (XDocletMain.start 54 ) <<Running XDoclet failed.: xdoclet.template.TemplateException: Invoking method in class xdoclet.tagshandler.ClassTagsHandler failed: forAllClasses, line=134 of template file: file:/E:/projects/tools/xdoclet/templates/session_facade.xdt, exception: null>> [xdoclet] xdoclet.template.TemplateException: Invoking method in class xdoclet.tagshandler.ClassTagsHandler failed: forAllClasses, line=134 of template file: file:/E:/projects/tools/xdoclet/templates/session_facade.xdt, exception: null [xdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:580) [xdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:965) [xdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:932) [xdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:472) [xdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:348) [xdoclet] at xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:742) [xdoclet] at xdoclet.tagshandler.PackageTagsHandler.forAllPackages(PackageTagsHandler.java:274) [xdoclet] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [xdoclet] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [xdoclet] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [xdoclet] at java.lang.reflect.Method.invoke(Unknown Source) [xdoclet] at xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:641) [xdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:567) [xdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:965) [xdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:932) [xdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:472) [xdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:348) [xdoclet] at xdoclet.template.TemplateEngine.start(TemplateEngine.java:415) [xdoclet] at xdoclet.TemplateSubTask.startEngine(TemplateSubTask.java:562) [xdoclet] at xdoclet.TemplateSubTask.generateForClass(TemplateSubTask.java:779) [xdoclet] at xdoclet.TemplateSubTask.startProcessPerClass(TemplateSubTask.java:679) [xdoclet] at xdoclet.TemplateSubTask.startProcess(TemplateSubTask.java:596) [xdoclet] at xdoclet.TemplateSubTask.execute(TemplateSubTask.java:487) [xdoclet] at xdoclet.XDocletMain.start(XDocletMain.java:48) [xdoclet] at xdoclet.DocletTask.start(DocletTask.java:468) [xdoclet] at xjavadoc.ant.XJavadocTask.execute(XJavadocTask.java:105) [xdoclet] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) [xdoclet] at org.apache.tools.ant.Task.perform(Task.java:364) [xdoclet] at org.apache.tools.ant.Target.execute(Target.java:341) [xdoclet] at org.apache.tools.ant.Target.performTasks(Target.java:369) [xdoclet] at org.apache.tools.ant.Project.executeTarget(Project.java:1214) [xdoclet] at org.apache.tools.ant.Project.executeTargets(Project.java:1062) [xdoclet] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:383) [xdoclet] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:136) [xdoclet] E:\projects\tools\xdoclet\buildXdoclet.xml:40: XDoclet failed. [xdoclet] at xdoclet.DocletTask.start(DocletTask.java:471) [xdoclet] at xjavadoc.ant.XJavadocTask.execute(XJavadocTask.java:105) [xdoclet] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) [xdoclet] at org.apache.tools.ant.Task.perform(Task.java:364) [xdoclet] at org.apache.tools.ant.Target.execute(Target.java:341) [xdoclet] at org.apache.tools.ant.Target.performTasks(Target.java:369) [xdoclet] at org.apache.tools.ant.Project.executeTarget(Project.java:1214) [xdoclet] at org.apache.tools.ant.Project.executeTargets(Project.java:1062) [xdoclet] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:383) [xdoclet] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:136) [xdoclet] Caused by: xdoclet.XDocletException: Running XDoclet failed.: xdoclet.template.TemplateException: Invoking method in class xdoclet.tagshandler.ClassTagsHandler failed: forAllClasses, line=134 of template file: file:/E:/projects/tools/xdoclet/templates/session_facade.xdt, exception: null [xdoclet] at xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:750) [xdoclet] at xdoclet.tagshandler.PackageTagsHandler.forAllPackages(PackageTagsHandler.java:274) [xdoclet] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [xdoclet] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [xdoclet] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [xdoclet] at java.lang.reflect.Method.invoke(Unknown Source) [xdoclet] at xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:641) [xdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:567) [xdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:965) [xdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:932) [xdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:472) [xdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:348) [xdoclet] at xdoclet.template.TemplateEngine.start(TemplateEngine.java:415) [xdoclet] at xdoclet.TemplateSubTask.startEngine(TemplateSubTask.java:562) [xdoclet] at xdoclet.TemplateSubTask.generateForClass(TemplateSubTask.java:779) [xdoclet] at xdoclet.TemplateSubTask.startProcessPerClass(TemplateSubTask.java:679) [xdoclet] at xdoclet.TemplateSubTask.startProcess(TemplateSubTask.java:596) [xdoclet] at xdoclet.TemplateSubTask.execute(TemplateSubTask.java:487) [xdoclet] at xdoclet.XDocletMain.start(XDocletMain.java:48) [xdoclet] at xdoclet.DocletTask.start(DocletTask.java:468) [xdoclet] ... 9 more [xdoclet] --- Nested Exception --- [xdoclet] xdoclet.XDocletException: Running XDoclet failed.: xdoclet.template.TemplateException: Invoking method in class xdoclet.tagshandler.ClassTagsHandler failed: forAllClasses, line=134 of template file: file:/E:/projects/tools/xdoclet/templates/session_facade.xdt, exception: null [xdoclet] at xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:750) [xdoclet] at xdoclet.tagshandler.PackageTagsHandler.forAllPackages(PackageTagsHandler.java:274) [xdoclet] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [xdoclet] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [xdoclet] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [xdoclet] at java.lang.reflect.Method.invoke(Unknown Source) [xdoclet] at xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:641) [xdoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:567) [xdoclet] at xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:965) [xdoclet] at xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:932) [xdoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:472) [xdoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:348) [xdoclet] at xdoclet.template.TemplateEngine.start(TemplateEngine.java:415) [xdoclet] at xdoclet.TemplateSubTask.startEngine(TemplateSubTask.java:562) [xdoclet] at xdoclet.TemplateSubTask.generateForClass(TemplateSubTask.java:779) [xdoclet] at xdoclet.TemplateSubTask.startProcessPerClass(TemplateSubTask.java:679) [xdoclet] at xdoclet.TemplateSubTask.startProcess(TemplateSubTask.java:596) [xdoclet] at xdoclet.TemplateSubTask.execute(TemplateSubTask.java:487) [xdoclet] at xdoclet.XDocletMain.start(XDocletMain.java:48) [xdoclet] at xdoclet.DocletTask.start(DocletTask.java:468) [xdoclet] at xjavadoc.ant.XJavadocTask.execute(XJavadocTask.java:105) [xdoclet] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) [xdoclet] at org.apache.tools.ant.Task.perform(Task.java:364) [xdoclet] at org.apache.tools.ant.Target.execute(Target.java:341) [xdoclet] at org.apache.tools.ant.Target.performTasks(Target.java:369) [xdoclet] at org.apache.tools.ant.Project.executeTarget(Project.java:1214) [xdoclet] at org.apache.tools.ant.Project.executeTargets(Project.java:1062) [xdoclet] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:383) [xdoclet] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:136) BUILD FAILED: E:\projects\tools\xdoclet\buildXdoclet.xml:40: Unexpected error Total time: 4 seconds --------------------------------------------------------------------- JIRA INFORMATION: This message is automatically generated by JIRA. If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/xdoclet/secure/Administrators.jspa If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_ide95&alloc_id396&op=click _______________________________________________ xdoclet-devel mailing list xdoclet-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xdoclet-devel