[ https://issues.apache.org/jira/browse/JELLY-277?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13045719#comment-13045719 ]
Sean Harp commented on JELLY-277: --------------------------------- The compileScript method in org/apache/commons/jelly/JellyContext.java needs to be synchronized as well. This solved the issue for us. Prior to fixing this, I would experience nearly 50% failures with the error above when running 12 jelly scripts simultaneously on an 8-core server. After synchronizing compileScript, repeated tests with 50 simultaneous jelly scripts were successful. > XMLParser.configure is not threadsafe. > -------------------------------------- > > Key: JELLY-277 > URL: https://issues.apache.org/jira/browse/JELLY-277 > Project: Commons Jelly > Issue Type: Bug > Components: core / taglib.core > Affects Versions: 1.0 > Environment: Linux 64bits, JDK build 1.6.0_01-b06 > Reporter: Yung-Lin Ho > > XMLParser will try to load jelly.properties from disk when it first being > used. However, because XMLParser.configure method is not threadsafe, when I > tried to run multiple jelly scripts/instance at the same time, XMLParser > threw out the following error message > java.lang.ClassNotFoundException: core > at > org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1166) > at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1107) > at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:977) > at java.lang.ClassLoader.loadClass(ClassLoader.java:251) > at org.apache.commons.jelly.parser.XMLParser.createTag(XMLParser.java:985) > java.lang.ClassNotFoundException: core > at > org.apache.commons.jelly.parser.XMLParser.createSAXException(XMLParser.java:1180) > at org.apache.commons.jelly.parser.XMLParser.createTag(XMLParser.java:990) > at > org.apache.commons.jelly.parser.XMLParser.startElement(XMLParser.java:593) > In order to fix this problem, we have to make ensureConfigured() and > configure() synchronized methods. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira