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

Reply via email to