Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-2953

NumberFormatException when collecting Crap4J analysis files

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Component/s: crap4j-plugin
    • Labels:
      None
    • Environment:
      Platform: Other, OS: Windows XP
    • Similar Issues:

      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

        Attachments

          Activity

          Hide
          oliva oliva added a comment -

          hello daniel,

          in the meantime i tried some settings with locale and the actual result is:
          1.) in a little testproject everything works fine.
          2.) i have a project build with some subprojects. as the testproject worked out
          fine, i tried another one of my subprojects and tratra: only 1 subproject (the
          one i started with) results in "?" in the report.xml, the others work fine
          3.) the subproject i started with and started this entry now produces ? in the
          report.xml under ant as well as in hudson (within my first tests with crap4j it
          just did in hudson)

          @3: i did changes at some points (locale settings on my windows, locale settings
          in crap4j java ant task, ..) and just tried out my project under hudson getting
          the ? in the result.xml.
          when i noticed that i also get the ? under ant i revoked my changes - but still
          get the ? in the report.

          i will try to find out what happens/happened. as i am a bit busy at work, i
          can't guarantee when i will get all subprojects to run - but i'll post it here.

          lg,
          oliver

          Show
          oliva oliva added a comment - hello daniel, in the meantime i tried some settings with locale and the actual result is: 1.) in a little testproject everything works fine. 2.) i have a project build with some subprojects. as the testproject worked out fine, i tried another one of my subprojects and tratra: only 1 subproject (the one i started with) results in "?" in the report.xml, the others work fine 3.) the subproject i started with and started this entry now produces ? in the report.xml under ant as well as in hudson (within my first tests with crap4j it just did in hudson) @3: i did changes at some points (locale settings on my windows, locale settings in crap4j java ant task, ..) and just tried out my project under hudson getting the ? in the result.xml. when i noticed that i also get the ? under ant i revoked my changes - but still get the ? in the report. i will try to find out what happens/happened. as i am a bit busy at work, i can't guarantee when i will get all subprojects to run - but i'll post it here. lg, oliver
          Hide
          oliva oliva added a comment -

          hello daniel,

          another question regarding my tests: is it possible to merge multiple report.xml
          files within the crap4j/hudson plugin ?
          lets assume a fileset like **/target/crap4j/report.xml should find 2 reports:
          proj1/target/crap4j/report.xml and proj2/target/crap4j/report.xml. actually only
          one report is taken for the visualized report. is that what the plugin should do
          (take the first report that is found) or do i something wrong ?

          lg & thanks a lot,
          oliver

          Show
          oliva oliva added a comment - hello daniel, another question regarding my tests: is it possible to merge multiple report.xml files within the crap4j/hudson plugin ? lets assume a fileset like **/target/crap4j/report.xml should find 2 reports: proj1/target/crap4j/report.xml and proj2/target/crap4j/report.xml. actually only one report is taken for the visualized report. is that what the plugin should do (take the first report that is found) or do i something wrong ? lg & thanks a lot, oliver
          Hide
          dlindner dlindner added a comment -

          Hello Oliver,

          currently, the plugin only handles the first crap report file found by the
          pattern, that's true. Merging multiple reports would require the plugin to
          recalculate the overall numbers. This isn't too complicated, but maybe unstable
          if the two crap reports were taken with different parameter sets e.g. for the
          crap threshold.

          If you need this functionality, i would like you to open a new issue (request
          for enhancement) and gather thoughts there. Perhaps others chime in and want
          this feature, too. I'm willing to provide it, it may take some time, though.

          Show
          dlindner dlindner added a comment - Hello Oliver, currently, the plugin only handles the first crap report file found by the pattern, that's true. Merging multiple reports would require the plugin to recalculate the overall numbers. This isn't too complicated, but maybe unstable if the two crap reports were taken with different parameter sets e.g. for the crap threshold. If you need this functionality, i would like you to open a new issue (request for enhancement) and gather thoughts there. Perhaps others chime in and want this feature, too. I'm willing to provide it, it may take some time, though.
          Hide
          dlindner dlindner added a comment -

          I moved the additional request for enhancement (multiple reports) to a new issue
          2995.
          https://hudson.dev.java.net/issues/show_bug.cgi?id=2995

          The report parsing is now locale dependent. This might have caused trouble on
          non-english platforms, but wasn't the cause for this issue. So i'm closing it as
          FIXED though i fixed a slightly different problem.

          This will be released in 0.6

          Show
          dlindner dlindner added a comment - I moved the additional request for enhancement (multiple reports) to a new issue 2995. https://hudson.dev.java.net/issues/show_bug.cgi?id=2995 The report parsing is now locale dependent. This might have caused trouble on non-english platforms, but wasn't the cause for this issue. So i'm closing it as FIXED though i fixed a slightly different problem. This will be released in 0.6
          Hide
          oliva oliva added a comment -

          finally i found the problem that resulted with "?" for some values in the
          report.xml.

          we do tracing via AspectJ and had the Aspect.aj file among our classfiles. it
          seems that this confuses crap4j (not the hudson plugin) to produce the question
          marks in the report. the hudson plugin then runs into the named exceptions while
          parsing the report.xml.

          unfortunately the aspect.aj file was checked in between my local tests with
          ant/crap4j and my tests with hudson/crap4j - that was misleading me to start
          this issue.

          thanks for helping !

          lg,
          oliver

          Show
          oliva oliva added a comment - finally i found the problem that resulted with "?" for some values in the report.xml. we do tracing via AspectJ and had the Aspect.aj file among our classfiles. it seems that this confuses crap4j (not the hudson plugin) to produce the question marks in the report. the hudson plugin then runs into the named exceptions while parsing the report.xml. unfortunately the aspect.aj file was checked in between my local tests with ant/crap4j and my tests with hudson/crap4j - that was misleading me to start this issue. thanks for helping ! lg, oliver

            People

            • Assignee:
              dlindner dlindner
              Reporter:
              oliva oliva
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: