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

OutOfMemoryError from CheckStyle plugin

    XMLWordPrintable

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • warnings-ng-plugin
    • None
    • Platform: PC, OS: Linux

    Description

      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)

      Attachments

        Issue Links

          Activity

            drulli Ulli Hafner added a comment -

            Somehow the m2 builds in Hudson don't use the -Xmx768M settings, so the default
            is too low.

            I'll think I need to rework XML file parsing part of the code to reduce the
            memory footprint.

            drulli Ulli Hafner added a comment - Somehow the m2 builds in Hudson don't use the -Xmx768M settings, so the default is too low. I'll think I need to rework XML file parsing part of the code to reduce the memory footprint.
            frohman 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 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_issue_link 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 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 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 cuiyuanzhi added a comment -

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

            cuiyuanzhi cuiyuanzhi added a comment - Created an attachment (id=432) FATAL: Java heap space. java.lang.OutOfMemoryError: Java heap space
            weigo 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 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).
            drulli 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.

            drulli 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 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 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.
            drulli Ulli Hafner added a comment -

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

            drulli Ulli Hafner added a comment - I thought about using a database to store the warnings, but that involves a lot of work...
            weigo 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 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.

            trajano 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.

            People

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

              Dates

                Created:
                Updated:
                Resolved: