Details
-
Improvement
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
None
-
Platform: Other, OS: Windows XP
Description
Hello Daniel,
i am trying to use the crap4j plugin under hudson. i integrated crap4j into our
ant script and the output is generated well (report.xml as well as the html report).
when i try to run crap4j (v 0.5) under hudson (1.279), we get error messages like:
...
BUILD SUCCESSFUL
Total time: 17 seconds
[CRAP4J] Collecting Crap4J analysis files...
FATAL: For input string: "?"
java.lang.NumberFormatException: For input string: "?"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
at java.lang.Double.parseDouble(Double.java:510)
at com.schneide.crap4j.reader.ReportReader.parseStatistics(ReportReader.java:141)
at com.schneide.crap4j.reader.ReportReader.parseData(ReportReader.java:130)
at hudson.plugins.crap4j.Crap4JPublisher.perform(Crap4JPublisher.java:93)
at
hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:33)
at
hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:324)
at
hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:312)
at hudson.model.Build$RunnerImpl.post2(Build.java:132)
at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:297)
at hudson.model.Run.run(Run.java:862)
at hudson.model.Build.run(Build.java:88)
at hudson.model.ResourceController.execute(ResourceController.java:70)
at hudson.model.Executor.run(Executor.java:90)
when i tried to find the problem, i diffed the generated report from ant with
the report after the crap4j plugin under hudson and
i get differences in these lines:
1.) ant:
<stats>
<name>
Method Crap Stats
</name>
<totalCrap>
60036,00
</totalCrap>
<crap>
7,16
</crap>
<median>
2,00
</median>
<average>
7,16
</average>
<stdDev>
36,86
</stdDev>
2.) hudson:
<stats>
<name>
Method Crap Stats
</name>
<totalCrap>
?
</totalCrap>
<crap>
?
</crap>
<median>
2,00
</median>
<average>
?
</average>
<stdDev>
?
</stdDev>
i think this is the point where the plugin gets the errors.
when i copy the report from ant into crap4j output folder for hudson and run an
ant build with just the crap4j task again via hudson (without running tests,
just do the report), the report is modified with the "?" again.
in ant i use crap4j 1.1.6 to generate the report, the report is approx. 5 MBs of
size.
i'm not sure whether this is a defect in the plugin nor do i know what to do
else - maybe you have any ideas ?
best greets,
oliver
Hello Oliver,
this seems to be a bug, though i cannot reproduce it on my setting using the
exact same versions.
Let me repeat your setting as i understand it:
like 60000,00 (indicating a german locale) in the report.xml
in the report.xml
The crap4j hudson plugin has a read-only connection to the report.xml, so it
won't change the numbers. I didn't fully understand your manual manipulations to
the report.xml you describe in the last section.
I am aware that crap4j has some issues with locales. This might be the origin
for this problem. What i can do right now is to add some unit tests to the
crap4j plugin characterizing its behaviour with your inputs and perhaps make it
more robust to locale changes.
What i want you to do is:
locales or is just the local build maschine set to german and the hudson server
is set to english/no locale?
your different report.xml files to a location in the workspace and configure the
crap4j plugin to process it. Perform a few runs with different report.xml files
and report your conclusions about them.
I will work on this issue today. The rest of the week is more or less assigned
to other tasks, so hopefully we find a fix right away.