Hi there,

I'm having some performance issues with the EJB plugin (and the 
weblogic plugin, which uses the same code) when running it on a big 
applications. As an example: generating the ejb jar for an 
application with 200 EJB's takes about 25 minutes on a recent PC 
(fast disk, no virus scanning etc).

Now, I don't think the problem is actually in this plugin because 
most time seems to be spend reading classes from disk.

Example: in a construct like the following

   <j:forEach var="class" items="${ejbUtil.getCMPBeans(metadata)}">
     <weblogic-rdbms-bean>
       <ejb-name>${ejbUtil.getEjbName(class)}</ejb-name>
       ...
   </j:forEach>

The actual call to the getCMPBeans method (which returns 150 results) 
is very fast, but after the return statement it takes about 3 minutes 
before the getEjbName method is called the first time. I don't know 
what's going on in between but looking at some snapshots of the 
thread dump I see a lot threads like the ones below (notice the locks).

Any idea what might be going on?

Regards,
Ive

"main" prio=5 tid=0x000368f0 nid=0xf58 runnable [0x0007e000..0x0007fc3c]
         at java.io.WinNTFileSystem.getBooleanAttributes(Native Method)
         at java.io.File.exists(File.java:702)
         at 
org.apache.tools.ant.AntClassLoader.getResourceStream(AntClassLoader.java:729)
         at 
org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1150)
         at 
org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1107)
         at 
org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:977)
         - locked <0x0533fb78> (a org.apache.tools.ant.loader.AntClassLoader2)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
         at 
com.thoughtworks.qdox.model.ClassLibrary.getClass(ClassLibrary.java:59)
         at 
com.thoughtworks.qdox.model.ClassLibrary.contains(ClassLibrary.java:44)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveTypeInternal(JavaSource.java:225)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveType(JavaSource.java:152)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveTypeInternal(JavaSource.java:235)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveType(JavaSource.java:152)
         at 
com.thoughtworks.qdox.model.JavaClass.resolveType(JavaClass.java:210)
         at com.thoughtworks.qdox.model.Type.isResolved(Type.java:48)
         at com.thoughtworks.qdox.model.Type.getValue(Type.java:43)
         at com.thoughtworks.qdox.model.Type.toString(Type.java:72)
         at 
com.thoughtworks.qdox.model.JavaMethod.writeBody(JavaMethod.java:67)
         at 
com.thoughtworks.qdox.model.JavaMethod.writeBody(JavaMethod.java:53)
         at 
com.thoughtworks.qdox.model.AbstractJavaEntity.write(AbstractJavaEntity.java:120)
         at com.thoughtworks.qdox.model.JavaClass.writeBody(JavaClass.java:140)
         at 
com.thoughtworks.qdox.model.AbstractJavaEntity.write(AbstractJavaEntity.java:120)
         at 
com.thoughtworks.qdox.model.AbstractJavaEntity.toString(AbstractJavaEntity.java:114)
         at java.lang.String.valueOf(String.java:2577)
         at java.util.AbstractCollection.toString(AbstractCollection.java:454)
         at java.lang.String.valueOf(String.java:2577)
         at java.lang.StringBuffer.append(StringBuffer.java:220)
         - locked <0x06bdc888> (a java.lang.StringBuffer)
         at 
org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:72)
         at 
org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:61)
         at 
org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsIterator(ExpressionSupport.java:94)
         at 
org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:89)
         at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:262)
         at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)

"main" prio=5 tid=0x000368f0 nid=0xdc0 runnable [0x0007e000..0x0007fc3c]
         at java.io.WinNTFileSystem.getBooleanAttributes(Native Method)
         at java.io.File.exists(File.java:702)
         at 
org.apache.tools.ant.AntClassLoader.getResourceStream(AntClassLoader.java:729)
         at 
org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1150)
         at 
org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1107)
         at 
org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:977)
         - locked <0x0533fb78> (a org.apache.tools.ant.loader.AntClassLoader2)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
         at 
com.thoughtworks.qdox.model.ClassLibrary.getClass(ClassLibrary.java:59)
         at 
com.thoughtworks.qdox.model.ClassLibrary.contains(ClassLibrary.java:44)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveTypeInternal(JavaSource.java:225)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveType(JavaSource.java:152)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveTypeInternal(JavaSource.java:235)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveType(JavaSource.java:152)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveTypeInternal(JavaSource.java:235)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveType(JavaSource.java:152)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveTypeInternal(JavaSource.java:235)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveType(JavaSource.java:152)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveTypeInternal(JavaSource.java:235)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveType(JavaSource.java:152)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveTypeInternal(JavaSource.java:235)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveType(JavaSource.java:152)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveTypeInternal(JavaSource.java:235)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveType(JavaSource.java:152)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveTypeInternal(JavaSource.java:235)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveType(JavaSource.java:152)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveTypeInternal(JavaSource.java:235)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveType(JavaSource.java:152)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveTypeInternal(JavaSource.java:235)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveType(JavaSource.java:152)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveTypeInternal(JavaSource.java:235)
         at 
com.thoughtworks.qdox.model.JavaSource.resolveType(JavaSource.java:152)
         at 
com.thoughtworks.qdox.model.JavaClass.resolveType(JavaClass.java:210)
         at com.thoughtworks.qdox.model.Type.isResolved(Type.java:48)
         at com.thoughtworks.qdox.model.Type.getValue(Type.java:43)
         at com.thoughtworks.qdox.model.Type.toString(Type.java:72)
         at 
com.thoughtworks.qdox.model.JavaMethod.writeBody(JavaMethod.java:78)
         at 
com.thoughtworks.qdox.model.JavaMethod.writeBody(JavaMethod.java:53)
         at 
com.thoughtworks.qdox.model.AbstractJavaEntity.write(AbstractJavaEntity.java:120)
         at com.thoughtworks.qdox.model.JavaClass.writeBody(JavaClass.java:140)
         at 
com.thoughtworks.qdox.model.AbstractJavaEntity.write(AbstractJavaEntity.java:120)
         at 
com.thoughtworks.qdox.model.AbstractJavaEntity.toString(AbstractJavaEntity.java:114)
         at java.lang.String.valueOf(String.java:2577)
         at java.util.AbstractCollection.toString(AbstractCollection.java:454)
         at java.lang.String.valueOf(String.java:2577)
         at java.lang.StringBuffer.append(StringBuffer.java:220)
         - locked <0x06bee000> (a java.lang.StringBuffer)
         at 
org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpression.java:72)
         at org.apache.commons.jelly.tags.core.SetTag.doTag(SetTag.java:84)





_______________________________________________
xdoclet-plugins-interest mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xdoclet-plugins-interest

Reply via email to