1

我有一个非常奇怪的问题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 服务器,如果我在本地运行 findbugs,但如果我从 Idea 运行 findBugs - 一切都很好。

我找到了这个 bugreport,但是在当前项目中,我们使用javac了编译器,而新代码没有任何 lambda 东西。

4

1 回答 1

1

但可能仍然存在编译器版本(jdk 版本)问题。CI和本地PC上的JDK版本有什么区别吗?您可以尝试在本地 PC 上添加另一个 JDK 并运行 findbugs 来重现该问题。

于 2017-03-16T06:24:29.823 回答