japex
  1. japex
  2. JAPEX-25

hudson japex plugin doens't render properly

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Critical Critical
    • Resolution: Won't Fix
    • Affects Version/s: current
    • Fix Version/s: milestone 1
    • Component/s: renderer
    • Labels:
      None
    • Environment:

      Operating System: All
      Platform: All

    • Issuezilla Id:
      25

      Description

      Hi,

      we have a Hudson reporting problem for a few months now and after many many many
      tries to solve it I finally gave up on the issue and mail the issue (looks like
      a version conflict?).

      The maven japex plugin always works and builds succesfully (also on Hudson), but
      the hudson japex plugin doesn't report it succesfully.

      There are 2 errors, the first one happens most often :

      • FATAL: Could not initialize class com.sun.japex.RegressionDetector
      • FATAL: javax.xml.transform.TransformerConfigurationException:
        javax.xml.transform.TransformerException:
        javax.xml.transform.TransformerException: Could not find function: nodeset

      Below detailed info, ask if more info is needed ?

      Versions:

      Java : 1.5
      Hudson plugin : 1.6-SNAPSHOT

      <plugin>
      <groupId>com.agfa.maven.plugins</groupId>
      <artifactId>maven-japex-plugin</artifactId>
      <version>1.5</version>
      <executions>
      <execution>
      <goals>
      <goal>japex</goal>
      </goals>
      <phase>test</phase>
      </execution>
      </executions>
      </plugin>

      <dependency>
      <groupId>com.sun.japex</groupId>
      <artifactId>japex</artifactId>
      <version>1.1.5</version>
      </dependency>

      Stacktraces :

      FREQUENT ERROR
      ==============

      [INFO] BUILD SUCCESSFUL
      [INFO] ------------------------------------------------------------------------
      [INFO] Total time: 18 seconds
      [INFO] Finished at: Fri Aug 08 11:38:20 CEST 2008
      [INFO] Final Memory: 10M/18M
      [INFO] ------------------------------------------------------------------------
      Recording japex reports target/japex-reports/**
      c:\hudson\home\jobs\iplanplus-japex-tests\builds\2008-08-08_11-37-47\japex\target\japex-reports\IntervalTest\2008_08_08_11_38\report.xml
      FATAL: Could not initialize class com.sun.japex.RegressionDetector
      java.lang.NoClassDefFoundError: Could not initialize class
      com.sun.japex.RegressionDetector
      at hudson.plugins.japex.JapexPublisher.perform(JapexPublisher.java:140)
      at
      hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:33)
      at
      hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:309)
      at
      hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:297)
      at hudson.model.Build$RunnerImpl.post2(Build.java:118)
      at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:282)
      at hudson.model.Run.run(Run.java:791)
      at hudson.model.Build.run(Build.java:85)
      at hudson.model.ResourceController.execute(ResourceController.java:70)
      at hudson.model.Executor.run(Executor.java:82)

      RARE ERROR
      ==========

      [INFO] BUILD SUCCESSFUL
      [INFO] ------------------------------------------------------------------------
      [INFO] Total time: 29 seconds
      [INFO] Finished at: Fri Aug 08 10:53:13 CEST 2008
      [INFO] Final Memory: 10M/18M
      [INFO] ------------------------------------------------------------------------
      Recording japex reports target/japex-reports/**
      c:\hudson\home\jobs\iplanplus-japex-tests\builds\2008-08-08_10-52-19\japex\target\japex-reports\IntervalTest\2008_08_08_10_52\report.xml
      FATAL: javax.xml.transform.TransformerConfigurationException:
      javax.xml.transform.TransformerException:
      javax.xml.transform.TransformerException: Could not find function: nodeset
      java.lang.Error: javax.xml.transform.TransformerConfigurationException:
      javax.xml.transform.TransformerException:
      javax.xml.transform.TransformerException: Could not find function: nodeset
      at com.sun.japex.RegressionDetector.<clinit>(RegressionDetector.java:151)
      at hudson.plugins.japex.JapexPublisher.perform(JapexPublisher.java:140)
      at
      hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:33)
      at
      hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:309)
      at
      hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:297)
      at hudson.model.Build$RunnerImpl.post2(Build.java:118)
      at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:282)
      at hudson.model.Run.run(Run.java:791)
      at hudson.model.Build.run(Build.java:85)
      at hudson.model.ResourceController.execute(ResourceController.java:70)
      at hudson.model.Executor.run(Executor.java:82)
      Caused by: javax.xml.transform.TransformerConfigurationException:
      javax.xml.transform.TransformerException:
      javax.xml.transform.TransformerException: Could not find function: nodeset
      at
      org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:936)
      at com.sun.japex.RegressionDetector.<clinit>(RegressionDetector.java:144)
      ... 10 more
      Caused by: javax.xml.transform.TransformerException:
      javax.xml.transform.TransformerException: Could not find function: nodeset
      at
      org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:928)
      ... 11 more
      Caused by: javax.xml.transform.TransformerException: Could not find function:
      nodeset
      at
      org.apache.xalan.processor.XSLTAttributeDef.processEXPR(XSLTAttributeDef.java:768)
      at
      org.apache.xalan.processor.XSLTAttributeDef.processValue(XSLTAttributeDef.java:1404)
      at
      org.apache.xalan.processor.XSLTAttributeDef.setAttrValue(XSLTAttributeDef.java:1600)
      at
      org.apache.xalan.processor.XSLTElementProcessor.setPropertiesFromAttributes(XSLTElementProcessor.java:338)
      at
      org.apache.xalan.processor.XSLTElementProcessor.setPropertiesFromAttributes(XSLTElementProcessor.java:263)
      at
      org.apache.xalan.processor.ProcessorTemplateElem.startElement(ProcessorTemplateElem.java:76)
      at
      org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:623)
      at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
      at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
      Source)
      at
      org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
      Source)
      at
      org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
      at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
      at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
      at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
      at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
      at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
      at
      org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:920)
      ... 11 more

      VERY VERY RARE SUCCESS
      ======================

      [INFO] BUILD SUCCESSFUL
      [INFO] ------------------------------------------------------------------------
      [INFO] Total time: 6 minutes 34 seconds
      [INFO] Finished at: Thu Jun 19 13:43:39 CEST 2008
      [INFO] Final Memory: 9M/17M
      [INFO] ------------------------------------------------------------------------
      Recording japex reports target/japex-reports/**
      c:\hudson\home\jobs\iplanplus-domaincalculus-japex\builds\2008-06-19_13-36-42\japex\target\japex-reports\IntervalTest\2008_06_19_13_37\report.xml
      Email was triggered for: Success

      1. regression-report.xsl
        5 kB
        Santiago Pericas-Geertsen

        Activity

        mordredqv created issue -
        Hide
        Santiago Pericas-Geertsen added a comment -

        Hi,

        You appear to be using a different version of JAXP and/or the JDK than the one we normally use. One of
        the stylesheets from Japex may need to be tweaked to run on Apache Xalan. Can you tell us which
        version of JAXP and the JDK you are using?

        Thanks.

        Show
        Santiago Pericas-Geertsen added a comment - Hi, You appear to be using a different version of JAXP and/or the JDK than the one we normally use. One of the stylesheets from Japex may need to be tweaked to run on Apache Xalan. Can you tell us which version of JAXP and the JDK you are using? Thanks.
        Hide
        mordredqv added a comment -

        Hi,

        thx for yopur very quick response, the master's JDK version is 1.6.0_05 which
        includes JAXP 1.4, but I should note I don't control the master.

        Show
        mordredqv added a comment - Hi, thx for yopur very quick response, the master's JDK version is 1.6.0_05 which includes JAXP 1.4, but I should note I don't control the master.
        Hide
        Santiago Pericas-Geertsen added a comment -

        Created an attachment (id=2)
        Patched stylesheet to run under interpretive Xalan

        Show
        Santiago Pericas-Geertsen added a comment - Created an attachment (id=2) Patched stylesheet to run under interpretive Xalan
        Hide
        Santiago Pericas-Geertsen added a comment -

        The stack trace shows that Apache Xalan is being used, which isn't part of JAXP. I believe the issue is
        related to the nodeset() extension function. I've attached an updated stylesheet that is likely to work for
        you. You'd need to locate your 'japex.jar' and replace the one there (under the 'resources' folder). Would
        you be able to try that? Thanks.

        Show
        Santiago Pericas-Geertsen added a comment - The stack trace shows that Apache Xalan is being used, which isn't part of JAXP. I believe the issue is related to the nodeset() extension function. I've attached an updated stylesheet that is likely to work for you. You'd need to locate your 'japex.jar' and replace the one there (under the 'resources' folder). Would you be able to try that? Thanks.
        Hide
        mordredqv added a comment -

        I did as you asked but the RegressionDetector issue still pops up a few times, I
        gave it a couple of runs, and one of the hudson builds actually succeeded, the
        rest all failed like this :

        [INFO] BUILD SUCCESSFUL
        [INFO] ------------------------------------------------------------------------
        [INFO] Total time: 12 seconds
        [INFO] Finished at: Wed Aug 13 15:59:34 CEST 2008
        [INFO] Final Memory: 10M/18M
        [INFO] ------------------------------------------------------------------------
        Recording japex reports target/japex-reports/**
        c:\hudson\home\jobs\iplanplus-japex-tests\builds\2008-08-13_15-59-26\japex\target\japex-reports\SimpleProcedureTest\2008_08_13_15_59\report.xml
        FATAL: Could not initialize class com.sun.japex.RegressionDetector
        java.lang.NoClassDefFoundError: Could not initialize class
        com.sun.japex.RegressionDetector
        at hudson.plugins.japex.JapexPublisher.perform(JapexPublisher.java:140)
        at
        hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:33)
        at
        hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:309)
        at
        hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:297)
        at hudson.model.Build$RunnerImpl.post2(Build.java:118)
        at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:282)
        at hudson.model.Run.run(Run.java:791)
        at hudson.model.Build.run(Build.java:85)
        at hudson.model.ResourceController.execute(ResourceController.java:70)
        at hudson.model.Executor.run(Executor.java:82)

        I don't know why he complains about the RegressionDetector despite it being in
        the japex jar, looks like a classpath issue? Also very strange that the hudson
        behaviour is inconsistent, I would expect it to either fail always or fail never.

        If you need any more info, let me know.

        Thanks.

        Show
        mordredqv added a comment - I did as you asked but the RegressionDetector issue still pops up a few times, I gave it a couple of runs, and one of the hudson builds actually succeeded, the rest all failed like this : [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 12 seconds [INFO] Finished at: Wed Aug 13 15:59:34 CEST 2008 [INFO] Final Memory: 10M/18M [INFO] ------------------------------------------------------------------------ Recording japex reports target/japex-reports/** c:\hudson\home\jobs\iplanplus-japex-tests\builds\2008-08-13_15-59-26\japex\target\japex-reports\SimpleProcedureTest\2008_08_13_15_59\report.xml FATAL: Could not initialize class com.sun.japex.RegressionDetector java.lang.NoClassDefFoundError: Could not initialize class com.sun.japex.RegressionDetector at hudson.plugins.japex.JapexPublisher.perform(JapexPublisher.java:140) at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:33) at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:309) at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:297) at hudson.model.Build$RunnerImpl.post2(Build.java:118) at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:282) at hudson.model.Run.run(Run.java:791) at hudson.model.Build.run(Build.java:85) at hudson.model.ResourceController.execute(ResourceController.java:70) at hudson.model.Executor.run(Executor.java:82) I don't know why he complains about the RegressionDetector despite it being in the japex jar, looks like a classpath issue? Also very strange that the hudson behaviour is inconsistent, I would expect it to either fail always or fail never. If you need any more info, let me know. Thanks.
        Hide
        mordredqv added a comment -

        Ok, the issue is fixed and has nothing to do with Hudson nor Japex.

        By default JBoss uses a different classloader for WAR-files, so the japex jar
        and the hudson plugin did not share their classloader, hence the
        NoClassDefFoundError on RegressionDetector.

        Sharing the CL or using eg Tomcat directly solves the issue (including the xml
        parsing)

        Show
        mordredqv added a comment - Ok, the issue is fixed and has nothing to do with Hudson nor Japex. By default JBoss uses a different classloader for WAR-files, so the japex jar and the hudson plugin did not share their classloader, hence the NoClassDefFoundError on RegressionDetector. Sharing the CL or using eg Tomcat directly solves the issue (including the xml parsing)
        kenaiadmin made changes -
        Field Original Value New Value
        issue.field.bugzillaimportkey 25 19483
        Santiago Pericas-Geertsen made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Won't Fix [ 2 ]

          People

          • Assignee:
            Santiago Pericas-Geertsen
            Reporter:
            mordredqv
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: