spotbugs 4.7.2 (via gradle plugin 5.0.12) causes regression in Java 11
quotidian-ennui opened this issue · comments
Updating to spotbugs plugin 5.0.12 (which defaults to spotbugs 4.7.2) causes multiple exception stack traces to be printed during a gradle spotbugsMain
if a project is built using Java 11.
Associated ticket in the corresponding repository is : adaptris/interlok#1018
The type of error suggests that it's a Java17 vs Java11 method signature problem; I wouldn't have expected this in a point release (a 4.7.1 -> 5.0.0 perhaps, not a 4.7.1 -> 4.7.2)
Our current work-around is to downgrade to 4.7.1 as the underlying tool version.
Exception analyzing com.adaptris.core.management.config.ValidationCheckerImpl using detector edu.umd.cs.findbugs.detect.FindBadCast2
org.apache.bcel.classfile.ClassFormatException: Invalid signature: Ljava/util/Collections$UnmodifiableRandomAccessList
At org.apache.bcel.classfile.Utility.typeSignatureToString(Utility.java:997)
At org.apache.bcel.generic.Type.getType(Type.java:215)
At edu.umd.cs.findbugs.ba.type.TypeFrameModelingVisitor.getType(TypeFrameModelingVisitor.java:399)
At edu.umd.cs.findbugs.ba.type.TypeFrameModelingVisitor.modelFieldLoad(TypeFrameModelingVisitor.java:361)
At edu.umd.cs.findbugs.ba.type.TypeFrameModelingVisitor.visitGETSTATIC(TypeFrameModelingVisitor.java:346)
At org.apache.bcel.generic.GETSTATIC.accept(GETSTATIC.java:76)
At edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor.analyzeInstruction(AbstractFrameModelingVisitor.java:84)
At edu.umd.cs.findbugs.ba.type.TypeFrameModelingVisitor.analyzeInstruction(TypeFrameModelingVisitor.java:196)
At edu.umd.cs.findbugs.ba.type.TypeAnalysis.transferInstruction(TypeAnalysis.java:406)
At edu.umd.cs.findbugs.ba.type.TypeAnalysis.transferInstruction(TypeAnalysis.java:86)
At edu.umd.cs.findbugs.ba.AbstractDataflowAnalysis.transfer(AbstractDataflowAnalysis.java:136)
At edu.umd.cs.findbugs.ba.type.TypeAnalysis.transfer(TypeAnalysis.java:414)
At edu.umd.cs.findbugs.ba.type.TypeAnalysis.transfer(TypeAnalysis.java:86)
At edu.umd.cs.findbugs.ba.Dataflow.execute(Dataflow.java:378)
At edu.umd.cs.findbugs.classfile.engine.bcel.TypeDataflowFactory.analyze(TypeDataflowFactory.java:83)
At edu.umd.cs.findbugs.classfile.engine.bcel.TypeDataflowFactory.analyze(TypeDataflowFactory.java:43)
At edu.umd.cs.findbugs.classfile.impl.AnalysisCache.analyzeMethod(AnalysisCache.java:368)
At edu.umd.cs.findbugs.classfile.impl.AnalysisCache.getMethodAnalysis(AnalysisCache.java:321)
At edu.umd.cs.findbugs.classfile.engine.bcel.CFGFactory.analyze(CFGFactory.java:160)
At edu.umd.cs.findbugs.classfile.engine.bcel.CFGFactory.analyze(CFGFactory.java:65)
At edu.umd.cs.findbugs.classfile.impl.AnalysisCache.analyzeMethod(AnalysisCache.java:368)
At edu.umd.cs.findbugs.classfile.impl.AnalysisCache.getMethodAnalysis(AnalysisCache.java:321)
At edu.umd.cs.findbugs.ba.ClassContext.getMethodAnalysis(ClassContext.java:1010)
At edu.umd.cs.findbugs.ba.ClassContext.getMethodAnalysisNoDataflowAnalysisException(ClassContext.java:995)
At edu.umd.cs.findbugs.ba.ClassContext.getCFG(ClassContext.java:301)
At edu.umd.cs.findbugs.detect.BuildUnconditionalParamDerefDatabase.analyzeMethod(BuildUnconditionalParamDerefDatabase.java:115)
At edu.umd.cs.findbugs.detect.BuildUnconditionalParamDerefDatabase.considerMethod(BuildUnconditionalParamDerefDatabase.java:107)
At edu.umd.cs.findbugs.detect.BuildUnconditionalParamDerefDatabase.visitClassContext(BuildUnconditionalParamDerefDatabase.java:91)
At edu.umd.cs.findbugs.DetectorToDetector2Adapter.visitClass(DetectorToDetector2Adapter.java:76)
At edu.umd.cs.findbugs.FindBugs2.lambda$analyzeApplication$1(FindBugs2.java:1108)
At java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
At edu.umd.cs.findbugs.CurrentThreadExecutorService.execute(CurrentThreadExecutorService.java:86)
At java.base/java.util.concurrent.AbstractExecutorService.invokeAll(AbstractExecutorService.java:242)
At edu.umd.cs.findbugs.FindBugs2.analyzeApplication(FindBugs2.java:1118)
At edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:309)
At edu.umd.cs.findbugs.FindBugs.runMain(FindBugs.java:395)
At edu.umd.cs.findbugs.FindBugs2.main(FindBugs2.java:1231)
Failure examining basic blocks in Duplicate Branches detector
org.apache.bcel.classfile.ClassFormatException: Invalid signature: Ljava/util/Collections$UnmodifiableRandomAccessList
At org.apache.bcel.classfile.Utility.typeSignatureToString(Utility.java:997)
At org.apache.bcel.generic.Type.getType(Type.java:215)
At edu.umd.cs.findbugs.ba.type.TypeFrameModelingVisitor.getType(TypeFrameModelingVisitor.java:399)
At edu.umd.cs.findbugs.ba.type.TypeFrameModelingVisitor.modelFieldLoad(TypeFrameModelingVisitor.java:361)
At edu.umd.cs.findbugs.ba.type.TypeFrameModelingVisitor.visitGETSTATIC(TypeFrameModelingVisitor.java:346)
At org.apache.bcel.generic.GETSTATIC.accept(GETSTATIC.java:76)
At edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor.analyzeInstruction(AbstractFrameModelingVisitor.java:84)
At edu.umd.cs.findbugs.ba.type.TypeFrameModelingVisitor.analyzeInstruction(TypeFrameModelingVisitor.java:196)
At edu.umd.cs.findbugs.ba.type.TypeAnalysis.transferInstruction(TypeAnalysis.java:406)
At edu.umd.cs.findbugs.ba.type.TypeAnalysis.transferInstruction(TypeAnalysis.java:86)
At edu.umd.cs.findbugs.ba.AbstractDataflowAnalysis.transfer(AbstractDataflowAnalysis.java:136)
At edu.umd.cs.findbugs.ba.type.TypeAnalysis.transfer(TypeAnalysis.java:414)
At edu.umd.cs.findbugs.ba.type.TypeAnalysis.transfer(TypeAnalysis.java:86)
At edu.umd.cs.findbugs.ba.Dataflow.execute(Dataflow.java:378)
At edu.umd.cs.findbugs.classfile.engine.bcel.TypeDataflowFactory.analyze(TypeDataflowFactory.java:83)
At edu.umd.cs.findbugs.classfile.engine.bcel.TypeDataflowFactory.analyze(TypeDataflowFactory.java:43)
At edu.umd.cs.findbugs.classfile.impl.AnalysisCache.analyzeMethod(AnalysisCache.java:368)
At edu.umd.cs.findbugs.classfile.impl.AnalysisCache.getMethodAnalysis(AnalysisCache.java:321)
At edu.umd.cs.findbugs.classfile.engine.bcel.CFGFactory.analyze(CFGFactory.java:160)
At edu.umd.cs.findbugs.classfile.engine.bcel.CFGFactory.analyze(CFGFactory.java:65)
At edu.umd.cs.findbugs.classfile.impl.AnalysisCache.analyzeMethod(AnalysisCache.java:368)
At edu.umd.cs.findbugs.classfile.impl.AnalysisCache.getMethodAnalysis(AnalysisCache.java:321)
At edu.umd.cs.findbugs.ba.ClassContext.getMethodAnalysis(ClassContext.java:1010)
At edu.umd.cs.findbugs.ba.ClassContext.getMethodAnalysisNoDataflowAnalysisException(ClassContext.java:995)
At edu.umd.cs.findbugs.ba.ClassContext.getCFG(ClassContext.java:301)
At edu.umd.cs.findbugs.detect.BuildUnconditionalParamDerefDatabase.analyzeMethod(BuildUnconditionalParamDerefDatabase.java:115)
At edu.umd.cs.findbugs.detect.BuildUnconditionalParamDerefDatabase.considerMethod(BuildUnconditionalParamDerefDatabase.java:107)
At edu.umd.cs.findbugs.detect.BuildUnconditionalParamDerefDatabase.visitClassContext(BuildUnconditionalParamDerefDatabase.java:91)
At edu.umd.cs.findbugs.DetectorToDetector2Adapter.visitClass(DetectorToDetector2Adapter.java:76)
At edu.umd.cs.findbugs.FindBugs2.lambda$analyzeApplication$1(FindBugs2.java:1108)
At java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
At edu.umd.cs.findbugs.CurrentThreadExecutorService.execute(CurrentThreadExecutorService.java:86)
At java.base/java.util.concurrent.AbstractExecutorService.invokeAll(AbstractExecutorService.java:242)
At edu.umd.cs.findbugs.FindBugs2.analyzeApplication(FindBugs2.java:1118)
At edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:309)
At edu.umd.cs.findbugs.FindBugs.runMain(FindBugs.java:395)
At edu.umd.cs.findbugs.FindBugs2.main(FindBugs2.java:1231)
Thanks for opening your first issue here! 😃
Please check our contributing guideline. Especially when you report a problem, make sure you share a Minimal, Complete, and Verifiable example to reproduce it in this issue.
Fixed by tool version 4.7.3 and gradle-spotbugs 5.0.13