• Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • warnings-ng-plugin
    • None
    • Platform: PC, OS: Linux

      I have a project that does not have a very large number of CheckStyle issues
      (less than 6500). Building it using Maven on the command line does not have any
      issues. However, when I build it using the Maven runner in Hudson, I get an
      OutOfMemoryError. I have tried using -Xmx768M and -XX:MaxPermSize=256M when I
      start tomcat, but they have not seemed to fix the problem. The stack trace does
      not seem to be the same between runs.

      [INFO] Generating "Checkstyle" report.
      [WARNING] File encoding has not been set, using platform encoding
      ANSI_X3.4-1968, i.e. build is platform dependent!
      [INFO] There are 295 checkstyle errors.

      <snip/>

      [INFO] Generating "Project Team" report.
      [PMD] Successfully parsed file
      /var/lib/hudson/jobs/endx_nightly/workspace/src/endx-webapp/target/pmd.xml of
      module enDx Web App with 235 warnings.
      [PMD] A total of 235 annotations have been found.
      [CHECKSTYLE] Successfully parsed file
      /var/lib/hudson/jobs/endx_nightly/workspace/src/endx-webapp/target/checkstyle-result.xml
      of module enDx Web App with 6293 warnings.
      [HUDSON] Archiving
      /var/lib/hudson/jobs/endx_nightly/workspace/src/endx-webapp/pom.xml to <snip/>
      [HUDSON] Archiving
      /var/lib/hudson/jobs/endx_nightly/workspace/src/endx-webapp/target/endx-webapp.war
      to <snip/>
      [INFO] ------------------------------------------------------------------------
      [ERROR] FATAL ERROR
      [INFO] ------------------------------------------------------------------------
      [INFO] Java heap space
      [INFO] ------------------------------------------------------------------------
      [INFO] Trace
      java.lang.OutOfMemoryError: Java heap space
      at java.util.HashSet.<init>(HashSet.java:86)
      at
      hudson.plugins.checkstyle.util.model.AnnotationContainer.addType(AnnotationContainer.java:205)
      at
      hudson.plugins.checkstyle.util.model.AnnotationContainer.updateMappings(AnnotationContainer.java:167)
      at
      hudson.plugins.checkstyle.util.model.AnnotationContainer.addAnnotation(AnnotationContainer.java:262)
      at
      hudson.plugins.checkstyle.util.model.AnnotationContainer.addFile(AnnotationContainer.java:252)
      at
      hudson.plugins.checkstyle.util.model.AnnotationContainer.updateMappings(AnnotationContainer.java:176)
      at
      hudson.plugins.checkstyle.util.model.AnnotationContainer.addAnnotation(AnnotationContainer.java:262)
      at
      hudson.plugins.checkstyle.util.model.AnnotationContainer.addModule(AnnotationContainer.java:222)
      at
      hudson.plugins.checkstyle.util.model.AnnotationContainer.updateMappings(AnnotationContainer.java:170)
      at
      hudson.plugins.checkstyle.util.model.AnnotationContainer.addAnnotation(AnnotationContainer.java:262)
      at
      hudson.plugins.checkstyle.util.model.AnnotationContainer.addAnnotations(AnnotationContainer.java:272)
      at hudson.plugins.checkstyle.util.model.JavaProject.addModule(JavaProject.java:46)
      at hudson.plugins.checkstyle.util.FilesParser.invoke(FilesParser.java:94)
      at hudson.plugins.checkstyle.util.FilesParser.invoke(FilesParser.java:22)
      at hudson.FilePath.act(FilePath.java:315)
      at hudson.plugins.checkstyle.CheckStyleReporter.perform(CheckStyleReporter.java:65)
      at
      hudson.plugins.checkstyle.util.HealthAwareMavenReporter.postExecute(HealthAwareMavenReporter.java:125)
      at
      hudson.maven.MavenModuleSetBuild$Builder.postExecute(MavenModuleSetBuild.java:585)
      at hudson.maven.MavenBuilder$Adapter.postExecute(MavenBuilder.java:250)
      at
      hudson.maven.agent.PluginManagerInterceptor$1MojoConfig.callPost(PluginManagerInterceptor.java:104)
      at
      hudson.maven.agent.PluginManagerInterceptor.executeMojo(PluginManagerInterceptor.java:137)
      at
      org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
      at
      org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499)
      at
      org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478)
      at
      org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330)
      at
      org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291)
      at
      org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142)
      at
      org.apache.maven.lifecycle.LifecycleExecutorInterceptor.execute(LifecycleExecutorInterceptor.java:42)
      at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
      at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
      at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

          [JENKINS-1960] OutOfMemoryError from CheckStyle plugin

          frohman added a comment -

          I managed to work around it for the time being by setting -Xm768M
          -XX:MaxPermSize=256M in the MAVEN_OPTS for the project, even though this is not
          an optimal solution.

          frohman added a comment - I managed to work around it for the time being by setting -Xm768M -XX:MaxPermSize=256M in the MAVEN_OPTS for the project, even though this is not an optimal solution.

          Code changed in hudson
          User: : drulli
          Path:
          trunk/hudson/plugins/checkstyle/.classpath
          trunk/hudson/plugins/checkstyle/eclipse.bat
          trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/CheckStylePublisher.java
          trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/CheckStyleReporter.java
          trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/CheckStyleResult.java
          trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/CheckStyleResultBuilder.java
          trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/MavenCheckStyleResultAction.java
          trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/parser/CheckStyleParser.java
          trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/AbstractResultAction.java
          trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/AnnotationParser.java
          trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/AnnotationsBuildResult.java
          trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/DetailBuilder.java
          trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/ErrorDetail.java
          trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/FilesParser.java
          trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/HealthAwareMavenReporter.java
          trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/HealthAwarePublisher.java
          trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/ParserResult.java
          trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/PluginDescriptor.java
          trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/ReporterDescriptor.java
          trunk/hudson/plugins/checkstyle/src/main/resources/hudson/plugins/checkstyle/util/Messages.properties
          trunk/hudson/plugins/checkstyle/src/main/webapp/help-m2.html
          trunk/hudson/plugins/checkstyle/src/main/webapp/help.html
          trunk/hudson/plugins/checkstyle/src/test/java/hudson/plugins/checkstyle/CheckstyleResultTest.java
          trunk/hudson/plugins/checkstyle/src/test/java/hudson/plugins/checkstyle/parser/CheckStyleParserTest.java
          trunk/hudson/plugins/checkstyle/src/test/java/hudson/plugins/checkstyle/util/AbstractAnnotationsBuildResultTest.java
          trunk/hudson/plugins/findbugs/.classpath
          trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/FindBugsPublisher.java
          trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/FindBugsReporter.java
          trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/FindBugsResult.java
          trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/FindBugsResultBuilder.java
          trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/MavenFindBugsResultAction.java
          trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/parser/FindBugsParser.java
          trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/parser/PlainFindBugsParser.java
          trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/parser/maven/MavenFindBugsParser.java
          trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/AbstractResultAction.java
          trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/AnnotationParser.java
          trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/AnnotationsBuildResult.java
          trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/DetailBuilder.java
          trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/ErrorDetail.java
          trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/FilesParser.java
          trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/HealthAwareMavenReporter.java
          trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/HealthAwarePublisher.java
          trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/ParserResult.java
          trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/PluginDescriptor.java
          trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/ReporterDescriptor.java
          trunk/hudson/plugins/findbugs/src/main/resources/hudson/plugins/findbugs/util/Messages.properties
          trunk/hudson/plugins/findbugs/src/main/webapp/help-m2.html
          trunk/hudson/plugins/findbugs/src/main/webapp/help.html
          trunk/hudson/plugins/findbugs/src/test/java/hudson/plugins/findbugs/FindBugsResultTest.java
          trunk/hudson/plugins/findbugs/src/test/java/hudson/plugins/findbugs/parser/NativeFindBugsParserTest.java
          trunk/hudson/plugins/findbugs/src/test/java/hudson/plugins/findbugs/parser/maven/MavenFindBugsParserTest.java
          trunk/hudson/plugins/findbugs/src/test/java/hudson/plugins/findbugs/util/AbstractAnnotationsBuildResultTest.java
          trunk/hudson/plugins/pmd/.classpath
          trunk/hudson/plugins/pmd/eclipse.bat
          trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/MavenPmdResultAction.java
          trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/PmdPublisher.java
          trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/PmdReporter.java
          trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/PmdResult.java
          trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/PmdResultBuilder.java
          trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/parser/PmdParser.java
          trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/AbstractResultAction.java
          trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/AnnotationParser.java
          trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/AnnotationsBuildResult.java
          trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/DetailBuilder.java
          trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/ErrorDetail.java
          trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/FilesParser.java
          trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/HealthAwareMavenReporter.java
          trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/HealthAwarePublisher.java
          trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/ParserResult.java
          trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/PluginDescriptor.java
          trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/ReporterDescriptor.java
          trunk/hudson/plugins/pmd/src/main/resources/hudson/plugins/pmd/util/Messages.properties
          trunk/hudson/plugins/pmd/src/main/webapp/help-m2.html
          trunk/hudson/plugins/pmd/src/main/webapp/help.html
          trunk/hudson/plugins/pmd/src/test/java/hudson/plugins/pmd/PmdResultTest.java
          trunk/hudson/plugins/pmd/src/test/java/hudson/plugins/pmd/parser/PmdParserTest.java
          trunk/hudson/plugins/pmd/src/test/java/hudson/plugins/pmd/util/AbstractAnnotationsBuildResultTest.java
          trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/MavenTasksResultAction.java
          trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/TasksPublisher.java
          trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/TasksReporter.java
          trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/TasksResult.java
          trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/TasksResultBuilder.java
          trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/parser/WorkspaceScanner.java
          trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/AbstractResultAction.java
          trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/AnnotationParser.java
          trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/AnnotationsBuildResult.java
          trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/DetailBuilder.java
          trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/ErrorDetail.java
          trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/FilesParser.java
          trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/HealthAwareMavenReporter.java
          trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/HealthAwarePublisher.java
          trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/ParserResult.java
          trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/PluginDescriptor.java
          trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/ReporterDescriptor.java
          trunk/hudson/plugins/tasks/src/main/resources/hudson/plugins/tasks/util/Messages.properties
          trunk/hudson/plugins/tasks/src/main/webapp/help-m2.html
          trunk/hudson/plugins/tasks/src/test/java/hudson/plugins/tasks/util/AbstractAnnotationsBuildResultTest.java
          trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/WarningsPublisher.java
          trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/WarningsResult.java
          trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/WarningsResultBuilder.java
          trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/AbstractResultAction.java
          trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/AnnotationParser.java
          trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/AnnotationsBuildResult.java
          trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/DetailBuilder.java
          trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/ErrorDetail.java
          trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/FilesParser.java
          trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/HealthAwareMavenReporter.java
          trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/HealthAwarePublisher.java
          trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/ParserResult.java
          trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/PluginDescriptor.java
          trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/ReporterDescriptor.java
          trunk/hudson/plugins/warnings/src/main/resources/hudson/plugins/warnings/util/Messages.properties
          trunk/hudson/plugins/warnings/src/test/java/hudson/plugins/warnings/WarningsResultTest.java
          trunk/hudson/plugins/warnings/src/test/java/hudson/plugins/warnings/util/AbstractAnnotationsBuildResultTest.java
          http://fisheye4.cenqua.com/changelog/hudson/?cs=11060
          Log:
          [FIXED JENKINS-1960] Rewrote parser API. Now a simple container with annotations is used during parsing rather than the full blown project with drill down support. Also updates the help files for maven reporters.

          SCM/JIRA link daemon added a comment - Code changed in hudson User: : drulli Path: trunk/hudson/plugins/checkstyle/.classpath trunk/hudson/plugins/checkstyle/eclipse.bat trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/CheckStylePublisher.java trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/CheckStyleReporter.java trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/CheckStyleResult.java trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/CheckStyleResultBuilder.java trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/MavenCheckStyleResultAction.java trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/parser/CheckStyleParser.java trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/AbstractResultAction.java trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/AnnotationParser.java trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/AnnotationsBuildResult.java trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/DetailBuilder.java trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/ErrorDetail.java trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/FilesParser.java trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/HealthAwareMavenReporter.java trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/HealthAwarePublisher.java trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/ParserResult.java trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/PluginDescriptor.java trunk/hudson/plugins/checkstyle/src/main/java/hudson/plugins/checkstyle/util/ReporterDescriptor.java trunk/hudson/plugins/checkstyle/src/main/resources/hudson/plugins/checkstyle/util/Messages.properties trunk/hudson/plugins/checkstyle/src/main/webapp/help-m2.html trunk/hudson/plugins/checkstyle/src/main/webapp/help.html trunk/hudson/plugins/checkstyle/src/test/java/hudson/plugins/checkstyle/CheckstyleResultTest.java trunk/hudson/plugins/checkstyle/src/test/java/hudson/plugins/checkstyle/parser/CheckStyleParserTest.java trunk/hudson/plugins/checkstyle/src/test/java/hudson/plugins/checkstyle/util/AbstractAnnotationsBuildResultTest.java trunk/hudson/plugins/findbugs/.classpath trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/FindBugsPublisher.java trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/FindBugsReporter.java trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/FindBugsResult.java trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/FindBugsResultBuilder.java trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/MavenFindBugsResultAction.java trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/parser/FindBugsParser.java trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/parser/PlainFindBugsParser.java trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/parser/maven/MavenFindBugsParser.java trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/AbstractResultAction.java trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/AnnotationParser.java trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/AnnotationsBuildResult.java trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/DetailBuilder.java trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/ErrorDetail.java trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/FilesParser.java trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/HealthAwareMavenReporter.java trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/HealthAwarePublisher.java trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/ParserResult.java trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/PluginDescriptor.java trunk/hudson/plugins/findbugs/src/main/java/hudson/plugins/findbugs/util/ReporterDescriptor.java trunk/hudson/plugins/findbugs/src/main/resources/hudson/plugins/findbugs/util/Messages.properties trunk/hudson/plugins/findbugs/src/main/webapp/help-m2.html trunk/hudson/plugins/findbugs/src/main/webapp/help.html trunk/hudson/plugins/findbugs/src/test/java/hudson/plugins/findbugs/FindBugsResultTest.java trunk/hudson/plugins/findbugs/src/test/java/hudson/plugins/findbugs/parser/NativeFindBugsParserTest.java trunk/hudson/plugins/findbugs/src/test/java/hudson/plugins/findbugs/parser/maven/MavenFindBugsParserTest.java trunk/hudson/plugins/findbugs/src/test/java/hudson/plugins/findbugs/util/AbstractAnnotationsBuildResultTest.java trunk/hudson/plugins/pmd/.classpath trunk/hudson/plugins/pmd/eclipse.bat trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/MavenPmdResultAction.java trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/PmdPublisher.java trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/PmdReporter.java trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/PmdResult.java trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/PmdResultBuilder.java trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/parser/PmdParser.java trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/AbstractResultAction.java trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/AnnotationParser.java trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/AnnotationsBuildResult.java trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/DetailBuilder.java trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/ErrorDetail.java trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/FilesParser.java trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/HealthAwareMavenReporter.java trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/HealthAwarePublisher.java trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/ParserResult.java trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/PluginDescriptor.java trunk/hudson/plugins/pmd/src/main/java/hudson/plugins/pmd/util/ReporterDescriptor.java trunk/hudson/plugins/pmd/src/main/resources/hudson/plugins/pmd/util/Messages.properties trunk/hudson/plugins/pmd/src/main/webapp/help-m2.html trunk/hudson/plugins/pmd/src/main/webapp/help.html trunk/hudson/plugins/pmd/src/test/java/hudson/plugins/pmd/PmdResultTest.java trunk/hudson/plugins/pmd/src/test/java/hudson/plugins/pmd/parser/PmdParserTest.java trunk/hudson/plugins/pmd/src/test/java/hudson/plugins/pmd/util/AbstractAnnotationsBuildResultTest.java trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/MavenTasksResultAction.java trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/TasksPublisher.java trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/TasksReporter.java trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/TasksResult.java trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/TasksResultBuilder.java trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/parser/WorkspaceScanner.java trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/AbstractResultAction.java trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/AnnotationParser.java trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/AnnotationsBuildResult.java trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/DetailBuilder.java trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/ErrorDetail.java trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/FilesParser.java trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/HealthAwareMavenReporter.java trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/HealthAwarePublisher.java trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/ParserResult.java trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/PluginDescriptor.java trunk/hudson/plugins/tasks/src/main/java/hudson/plugins/tasks/util/ReporterDescriptor.java trunk/hudson/plugins/tasks/src/main/resources/hudson/plugins/tasks/util/Messages.properties trunk/hudson/plugins/tasks/src/main/webapp/help-m2.html trunk/hudson/plugins/tasks/src/test/java/hudson/plugins/tasks/util/AbstractAnnotationsBuildResultTest.java trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/WarningsPublisher.java trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/WarningsResult.java trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/WarningsResultBuilder.java trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/AbstractResultAction.java trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/AnnotationParser.java trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/AnnotationsBuildResult.java trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/DetailBuilder.java trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/ErrorDetail.java trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/FilesParser.java trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/HealthAwareMavenReporter.java trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/HealthAwarePublisher.java trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/ParserResult.java trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/PluginDescriptor.java trunk/hudson/plugins/warnings/src/main/java/hudson/plugins/warnings/util/ReporterDescriptor.java trunk/hudson/plugins/warnings/src/main/resources/hudson/plugins/warnings/util/Messages.properties trunk/hudson/plugins/warnings/src/test/java/hudson/plugins/warnings/WarningsResultTest.java trunk/hudson/plugins/warnings/src/test/java/hudson/plugins/warnings/util/AbstractAnnotationsBuildResultTest.java http://fisheye4.cenqua.com/changelog/hudson/?cs=11060 Log: [FIXED JENKINS-1960] Rewrote parser API. Now a simple container with annotations is used during parsing rather than the full blown project with drill down support. Also updates the help files for maven reporters.

          jeffreyyan added a comment -

          It happens again sometimes on windowsXP

          [CHECKSTYLE] Collecting checkstyle analysis files...
          [CHECKSTYLE] Successfully parsed file C:\View\TAS_R5.2
          \garmentpodium_zha\TAS_JavaApp\ant-build\check-style\AFWServer\checkstyle-
          result.xml of module AFWServer with 4326 warnings.
          FATAL: Java heap space
          java.lang.OutOfMemoryError: Java heap space
          at java.util.HashMap.resize(HashMap.java:462)
          at java.util.HashMap.addEntry(HashMap.java:755)
          at java.util.HashMap.put(HashMap.java:385)
          at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert
          (AbstractReferenceUnmarshaller.java:57)
          at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother
          (TreeUnmarshaller.java:75)
          at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother
          (TreeUnmarshaller.java:59)
          at hudson.util.RobustReflectionConverter.unmarshallField
          (RobustReflectionConverter.java:235)
          at hudson.util.RobustReflectionConverter.doUnmarshal
          (RobustReflectionConverter.java:193)
          at hudson.util.RobustReflectionConverter.unmarshal
          (RobustReflectionConverter.java:144)
          at com.thoughtworks.xstream.core.TreeUnmarshaller.convert
          (TreeUnmarshaller.java:81)
          at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert
          (AbstractReferenceUnmarshaller.java:55)
          at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother
          (TreeUnmarshaller.java:75)
          at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother
          (TreeUnmarshaller.java:59)
          at
          com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.read
          Item(AbstractCollectionConverter.java:77)
          at
          com.thoughtworks.xstream.converters.collections.ArrayConverter.unmarshal
          (ArrayConverter.java:55)
          at com.thoughtworks.xstream.core.TreeUnmarshaller.convert
          (TreeUnmarshaller.java:81)
          at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert
          (AbstractReferenceUnmarshaller.java:55)
          at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother
          (TreeUnmarshaller.java:75)
          at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother
          (TreeUnmarshaller.java:59)
          at com.thoughtworks.xstream.core.TreeUnmarshaller.start
          (TreeUnmarshaller.java:142)
          at
          com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal
          (AbstractTreeMarshallingStrategy.java:33)
          at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:931)
          at hudson.util.XStream2.unmarshal(XStream2.java:38)
          at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:917)
          at com.thoughtworks.xstream.XStream.fromXML(XStream.java:861)
          at hudson.XmlFile.read(XmlFile.java:103)
          at hudson.plugins.checkstyle.util.AnnotationsBuildResult.loadResult
          (AnnotationsBuildResult.java:317)
          at hudson.plugins.checkstyle.util.AnnotationsBuildResult.getProject
          (AnnotationsBuildResult.java:298)
          at hudson.plugins.checkstyle.util.AnnotationsBuildResult.<init>
          (AnnotationsBuildResult.java:108)
          at hudson.plugins.checkstyle.CheckStyleResult.<init>
          (CheckStyleResult.java:45)
          at hudson.plugins.checkstyle.CheckStyleResultBuilder.build
          (CheckStyleResultBuilder.java:29)
          at hudson.plugins.checkstyle.CheckStylePublisher.perform
          (CheckStylePublisher.java:82)

          jeffreyyan added a comment - It happens again sometimes on windowsXP [CHECKSTYLE] Collecting checkstyle analysis files... [CHECKSTYLE] Successfully parsed file C:\View\TAS_R5.2 \garmentpodium_zha\TAS_JavaApp\ant-build\check-style\AFWServer\checkstyle- result.xml of module AFWServer with 4326 warnings. FATAL: Java heap space java.lang.OutOfMemoryError: Java heap space at java.util.HashMap.resize(HashMap.java:462) at java.util.HashMap.addEntry(HashMap.java:755) at java.util.HashMap.put(HashMap.java:385) at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert (AbstractReferenceUnmarshaller.java:57) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother (TreeUnmarshaller.java:75) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother (TreeUnmarshaller.java:59) at hudson.util.RobustReflectionConverter.unmarshallField (RobustReflectionConverter.java:235) at hudson.util.RobustReflectionConverter.doUnmarshal (RobustReflectionConverter.java:193) at hudson.util.RobustReflectionConverter.unmarshal (RobustReflectionConverter.java:144) at com.thoughtworks.xstream.core.TreeUnmarshaller.convert (TreeUnmarshaller.java:81) at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert (AbstractReferenceUnmarshaller.java:55) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother (TreeUnmarshaller.java:75) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother (TreeUnmarshaller.java:59) at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.read Item(AbstractCollectionConverter.java:77) at com.thoughtworks.xstream.converters.collections.ArrayConverter.unmarshal (ArrayConverter.java:55) at com.thoughtworks.xstream.core.TreeUnmarshaller.convert (TreeUnmarshaller.java:81) at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert (AbstractReferenceUnmarshaller.java:55) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother (TreeUnmarshaller.java:75) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother (TreeUnmarshaller.java:59) at com.thoughtworks.xstream.core.TreeUnmarshaller.start (TreeUnmarshaller.java:142) at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal (AbstractTreeMarshallingStrategy.java:33) at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:931) at hudson.util.XStream2.unmarshal(XStream2.java:38) at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:917) at com.thoughtworks.xstream.XStream.fromXML(XStream.java:861) at hudson.XmlFile.read(XmlFile.java:103) at hudson.plugins.checkstyle.util.AnnotationsBuildResult.loadResult (AnnotationsBuildResult.java:317) at hudson.plugins.checkstyle.util.AnnotationsBuildResult.getProject (AnnotationsBuildResult.java:298) at hudson.plugins.checkstyle.util.AnnotationsBuildResult.<init> (AnnotationsBuildResult.java:108) at hudson.plugins.checkstyle.CheckStyleResult.<init> (CheckStyleResult.java:45) at hudson.plugins.checkstyle.CheckStyleResultBuilder.build (CheckStyleResultBuilder.java:29) at hudson.plugins.checkstyle.CheckStylePublisher.perform (CheckStylePublisher.java:82)

          cuiyuanzhi added a comment -

          Created an attachment (id=432)
          FATAL: Java heap space. java.lang.OutOfMemoryError: Java heap space

          cuiyuanzhi added a comment - Created an attachment (id=432) FATAL: Java heap space. java.lang.OutOfMemoryError: Java heap space

          weigo added a comment -

          The implementation used to read the checkstyle-warnings.xml holds on to a HashMap
          which in my case holds about 1.4G worth of objects (for ~300.000 warnings). I can
          provide the heapdump for inspection with e.g. eclipse memory analyzer.

          Wouldn't it be simpler to just use a handcrafted extension of DefaultHandler to
          construct the Warning objects?

          I attached such a class to issue JENKINS-2978.

          One could overwrite the XStream2.fromXML method to use another unmarshaling method
          i.e. the DefaultHandler above. But i think this would not go along with the intended
          design (simplicity of reading and storing objects to/from xml files and evolving the
          data structures).

          weigo added a comment - The implementation used to read the checkstyle-warnings.xml holds on to a HashMap which in my case holds about 1.4G worth of objects (for ~300.000 warnings). I can provide the heapdump for inspection with e.g. eclipse memory analyzer. Wouldn't it be simpler to just use a handcrafted extension of DefaultHandler to construct the Warning objects? I attached such a class to issue JENKINS-2978 . One could overwrite the XStream2.fromXML method to use another unmarshaling method i.e. the DefaultHandler above. But i think this would not go along with the intended design (simplicity of reading and storing objects to/from xml files and evolving the data structures).

          Ulli Hafner added a comment -

          Well, actually I think it would be far more efficient if the serialization would not be in XML. That would not only reduce the parsing times it also would significantly reduce the file I/O. Additionaly, reading all of the warnings is also not required for the typical use cases (see JENKINS-2320).

          However, I don't see a simple way to change the current behavior since the plug-in was designed to show a couple of warnings only. So don't expect a solution in the near future.

          Ulli Hafner added a comment - Well, actually I think it would be far more efficient if the serialization would not be in XML. That would not only reduce the parsing times it also would significantly reduce the file I/O. Additionaly, reading all of the warnings is also not required for the typical use cases (see JENKINS-2320 ). However, I don't see a simple way to change the current behavior since the plug-in was designed to show a couple of warnings only. So don't expect a solution in the near future.

          weigo added a comment -

          Do you have something specific in mind regarding the serialization?

          It would probably make sense to change to something that lets you query
          subsets of warnings without loading all warnings into memory.

          weigo added a comment - Do you have something specific in mind regarding the serialization? It would probably make sense to change to something that lets you query subsets of warnings without loading all warnings into memory.

          Ulli Hafner added a comment -

          I thought about using a database to store the warnings, but that involves a lot of work...

          Ulli Hafner added a comment - I thought about using a database to store the warnings, but that involves a lot of work...

          weigo added a comment -

          Would you care to outline a roadmap?

          My understanding of the affected plugins is very limited
          so my view of the problems is rather narrow.

          I think extracting an interface for supplying the relevant
          data could be the first step.

          This would encapsulate how a plugin provides its data (in
          form of FileAnnotations) to the views.

          This could be used to hide the implementation each plugin
          uses and would provide us with a smoother path to convert
          the plugins (or even let (xml) file based annotations
          coexist with database backed plugins).

          weigo added a comment - Would you care to outline a roadmap? My understanding of the affected plugins is very limited so my view of the problems is rather narrow. I think extracting an interface for supplying the relevant data could be the first step. This would encapsulate how a plugin provides its data (in form of FileAnnotations) to the views. This could be used to hide the implementation each plugin uses and would provide us with a smoother path to convert the plugins (or even let (xml) file based annotations coexist with database backed plugins).

          You can try to use the Java BDB project which provides a Map implementation that is backed by a BDB. That would at least eliminate the immediate problem caused by having a large in memory HashMap.

          Archimedes Trajano added a comment - You can try to use the Java BDB project which provides a Map implementation that is backed by a BDB. That would at least eliminate the immediate problem caused by having a large in memory HashMap.

            drulli Ulli Hafner
            frohman frohman
            Votes:
            5 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: