Search code examples
javamavenjava-8findbugsspotbugs

Maven spotbugs plugin failing with Out of Memory Error


I am trying to use spotbugs-maven-plugin like below

<build>
...
<plugin>
        <groupId>com.github.spotbugs</groupId>
        <artifactId>spotbugs-maven-plugin</artifactId>
        <version>3.1.0-RC8</version>
        <configuration>
                <plugins>
                        <plugin>
                            <groupId>jp.skypencil.findbugs.slf4j<groupId>
                            <artifactId>bug-pattern</artifactId>
                            <version>1.2.4</version>
                        </plugin>
                </plugins>
                <includeFilterFile>./spotbugIncludeFilter.xml</includeFilterFile>
                <onlyAnalyze>com.vnera.-</onlyAnalyze>
                <argLine>-Xmx1024m</argLine>
        </configuration>
</plugin>
</build>

But each time it is failing with the below error

[INFO] Fork Value is true
     [java] Out of memory
     [java] Total memory: 482M
     [java]  free memory: 43M

Stacktrace look like below

[java]  at java.util.ArrayList.<init>(ArrayList.java:152)
[java]     at edu.umd.cs.findbugs.ba.Frame.<init>(Frame.java:113)
[java]     at edu.umd.cs.findbugs.ba.vna.ValueNumberFrame.<init>(ValueNumberFrame.java:90)
[java]     at edu.umd.cs.findbugs.ba.vna.ValueNumberAnalysis.createFact(ValueNumberAnalysis.java:181)
[java]     at edu.umd.cs.findbugs.ba.vna.ValueNumberAnalysis.createFact(ValueNumberAnalysis.java:58)
[java]     at edu.umd.cs.findbugs.ba.BasicAbstractDataflowAnalysis.lookupOrCreateFact(BasicAbstractDataflowAnalysis.java:185)
[java]     at edu.umd.cs.findbugs.ba.BasicAbstractDataflowAnalysis.getStartFact(BasicAbstractDataflowAnalysis.java:70)
[java]     at edu.umd.cs.findbugs.ba.Dataflow.execute(Dataflow.java:234)
[java]     at edu.umd.cs.findbugs.classfile.engine.bcel.ValueNumberDataflowFactory.analyze(ValueNumberDataflowFactory.java:76)
[java]     at edu.umd.cs.findbugs.classfile.engine.bcel.ValueNumberDataflowFactory.analyze(ValueNumberDataflowFactory.java:46)
[java]     at edu.umd.cs.findbugs.classfile.impl.AnalysisCache.analyzeMethod(AnalysisCache.java:369)
[java]     at edu.umd.cs.findbugs.classfile.impl.AnalysisCache.getMethodAnalysis(AnalysisCache.java:322)
[java]     at edu.umd.cs.findbugs.ba.ClassContext.getMethodAnalysis(ClassContext.java:1005)
[java]     at edu.umd.cs.findbugs.ba.ClassContext.getValueNumberDataflow(ClassContext.java:336)
[java]     at edu.umd.cs.findbugs.detect.FindInconsistentSync2.analyzeMethod(FindInconsistentSync2.java:638)
[java]     at edu.umd.cs.findbugs.detect.FindInconsistentSync2.visitClassContext(FindInconsistentSync2.java:413)
[java]     at edu.umd.cs.findbugs.DetectorToDetector2Adapter.visitClass(DetectorToDetector2Adapter.java:76)
[java]     at edu.umd.cs.findbugs.FindBugs2.analyzeApplication(FindBugs2.java:1079)
[java]     at edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:280)
[java]     at edu.umd.cs.findbugs.FindBugs.runMain(FindBugs.java:401)
[java]     at edu.umd.cs.findbugs.FindBugs2.main(FindBugs2.java:1187)

I have also tried setting <argLine>-XX:MaxPermSize=1024m</argLine>. Still getting same error.

Can someone let me know how can I get around this?

  • Java 8
  • Maven 3

Solution

  • Have you looked at maxHeap ? This should help out with increasing the memory problem that you have.

    Also from their FAQ it states:

    You can increase this using the -maxHeap n option, where n is the number of megabytes of heap space to allocate.