Commons Jelly
  1. Commons Jelly
  2. JELLY-277

XMLParser.configure is not threadsafe.

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 1.0
    • Fix Version/s: None
    • Component/s: core / taglib.core
    • Labels:
      None
    • Environment:

      Linux 64bits, JDK build 1.6.0_01-b06

      Description

      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.

        Activity

        Yung-Lin Ho created issue -
        Yung-Lin Ho made changes -
        Field Original Value New Value
        Description 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 return 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.
        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.

          People

          • Assignee:
            Unassigned
            Reporter:
            Yung-Lin Ho
          • Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:

              Development