Issue Details (XML | Word | Printable)

Key: JAPEX-25
Type: Bug Bug
Status: Resolved Resolved
Resolution: Won't Fix
Priority: Critical Critical
Assignee: Santiago Pericas-Geertsen
Reporter: mordredqv
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
japex

hudson japex plugin doens't render properly

Created: 12/Aug/08 06:43 AM   Updated: 22/Apr/11 10:55 AM   Resolved: 22/Apr/11 10:55 AM
Component/s: renderer
Affects Version/s: current
Fix Version/s: milestone 1

Time Tracking:
Not Specified

File Attachments: 1. XML File regression-report.xsl (5 kB) 13/Aug/08 06:01 AM - Santiago Pericas-Geertsen

Environment:

Operating System: All
Platform: All


Issuezilla Id: 25
Tags:
Participants: mordredqv and Santiago Pericas-Geertsen


 Description  « Hide

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



mordredqv added a comment - 01/Dec/08 06:27 AM

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)


mordredqv added a comment - 13/Aug/08 07:04 AM

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.


Santiago Pericas-Geertsen added a comment - 13/Aug/08 06:03 AM

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.


Santiago Pericas-Geertsen added a comment - 13/Aug/08 06:01 AM

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


mordredqv added a comment - 12/Aug/08 11:51 PM

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.


Santiago Pericas-Geertsen added a comment - 12/Aug/08 10:22 AM

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.