finbugs 构建 methodGen 时出错
finbugs Error constructing methodGen
我对 findbugs
有一个非常奇怪的问题:
Error constructing methodGen
org.apache.bcel.classfile.ClassFormatException: Invalid method signature: !+Lsome/packag/and/SomeClass
org.apache.bcel.classfile.Utility.typeOfSignature(Utility.java:1012)
org.apache.bcel.generic.Type.getType(Type.java:181)
org.apache.bcel.generic.MethodGen.<init>(MethodGen.java:258) edu.umd.cs.findbugs.classfile.engine.bcel.MethodGenFactory.analyze(MethodGenFactory.java:90)
edu.umd.cs.findbugs.classfile.engine.bcel.MethodGenFactory.analyze(MethodGenFactory.java:41)
edu.umd.cs.findbugs.classfile.impl.AnalysisCache.analyzeMethod(AnalysisCache.java:369)
edu.umd.cs.findbugs.classfile.impl.AnalysisCache.getMethodAnalysis(AnalysisCache.java:322)
edu.umd.cs.findbugs.ba.ClassContext.getMethodAnalysis(ClassContext.java:1002)
edu.umd.cs.findbugs.ba.ClassContext.getMethodAnalysisNoException(ClassContext.java:976)
edu.umd.cs.findbugs.ba.ClassContext.getMethodGen(ClassContext.java:287)
edu.umd.cs.findbugs.detect.FindUseOfNonSerializableValue.analyzeMethod(FindUseOfNonSerializableValue.java:126)
edu.umd.cs.findbugs.detect.FindUseOfNonSerializableValue.visitClassContext(FindUseOfNonSerializableValue.java:94)
edu.umd.cs.findbugs.DetectorToDetector2Adapter.visitClass(DetectorToDetector2Adapter.java:76)
edu.umd.cs.findbugs.FindBugs2.analyzeApplication(FindBugs2.java:1089)
edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:283)
edu.umd.cs.findbugs.FindBugs.runMain(FindBugs.java:402)
edu.umd.cs.findbugs.FindBugs2.main(FindBugs2.java:1200)
此异常来自 CI 服务器,如果我 运行 在本地查找错误,但如果我 运行 从 Idea 查找错误 - 一切都很好。
我找到了 this bugreport,但在当前项目中我们使用 javac
编译器并且新代码没有任何 lambda 东西。
但可能仍然存在编译器版本(jdk 版本)问题。
CI 和您本地 PC 上的 JDK 版本有什么不同吗?
您可以尝试重现该问题,在您的本地 PC 上添加另一个 JDK 和 运行 findbugs。
我对 findbugs
有一个非常奇怪的问题:
Error constructing methodGen
org.apache.bcel.classfile.ClassFormatException: Invalid method signature: !+Lsome/packag/and/SomeClass
org.apache.bcel.classfile.Utility.typeOfSignature(Utility.java:1012)
org.apache.bcel.generic.Type.getType(Type.java:181)
org.apache.bcel.generic.MethodGen.<init>(MethodGen.java:258) edu.umd.cs.findbugs.classfile.engine.bcel.MethodGenFactory.analyze(MethodGenFactory.java:90)
edu.umd.cs.findbugs.classfile.engine.bcel.MethodGenFactory.analyze(MethodGenFactory.java:41)
edu.umd.cs.findbugs.classfile.impl.AnalysisCache.analyzeMethod(AnalysisCache.java:369)
edu.umd.cs.findbugs.classfile.impl.AnalysisCache.getMethodAnalysis(AnalysisCache.java:322)
edu.umd.cs.findbugs.ba.ClassContext.getMethodAnalysis(ClassContext.java:1002)
edu.umd.cs.findbugs.ba.ClassContext.getMethodAnalysisNoException(ClassContext.java:976)
edu.umd.cs.findbugs.ba.ClassContext.getMethodGen(ClassContext.java:287)
edu.umd.cs.findbugs.detect.FindUseOfNonSerializableValue.analyzeMethod(FindUseOfNonSerializableValue.java:126)
edu.umd.cs.findbugs.detect.FindUseOfNonSerializableValue.visitClassContext(FindUseOfNonSerializableValue.java:94)
edu.umd.cs.findbugs.DetectorToDetector2Adapter.visitClass(DetectorToDetector2Adapter.java:76)
edu.umd.cs.findbugs.FindBugs2.analyzeApplication(FindBugs2.java:1089)
edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:283)
edu.umd.cs.findbugs.FindBugs.runMain(FindBugs.java:402)
edu.umd.cs.findbugs.FindBugs2.main(FindBugs2.java:1200)
此异常来自 CI 服务器,如果我 运行 在本地查找错误,但如果我 运行 从 Idea 查找错误 - 一切都很好。
我找到了 this bugreport,但在当前项目中我们使用 javac
编译器并且新代码没有任何 lambda 东西。
但可能仍然存在编译器版本(jdk 版本)问题。 CI 和您本地 PC 上的 JDK 版本有什么不同吗? 您可以尝试重现该问题,在您的本地 PC 上添加另一个 JDK 和 运行 findbugs。