Скрытие не Java-классов от findbugs - PullRequest
6 голосов
/ 20 сентября 2010

У меня есть смешанный проект Scala / Java - в основном Java. Я хотел бы использовать Findbugs в своем Java-коде, но классы Scala создают проблемы. Поэтому я хотел бы исключить их из Findbugs. До сих пор я пытался перечислить классы scala в фильтре исключения, но это не помогает. Я использую плагин maven codehaus findbugs версии 2.3.1.

Исключения, которые я получаю в основном, принимают эту форму:

Exception analyzing some.scala.Class using detector edu.umd.cs.findbugs.detect.FindUnrelatedTypesInGenericContainer
  java.lang.NullPointerException
    At edu.umd.cs.findbugs.classfile.engine.ClassParserUsingASM$1$2.visitEnd(ClassParserUsingASM.java:319)
    At org.objectweb.asm.ClassReader.accept(Unknown Source)
    At edu.umd.cs.findbugs.asm.FBClassReader.accept(FBClassReader.java:44)
    At org.objectweb.asm.ClassReader.accept(Unknown Source)
    At edu.umd.cs.findbugs.classfile.engine.ClassParserUsingASM.parse(ClassParserUsingASM.java:93)
    At edu.umd.cs.findbugs.classfile.engine.ClassParserUsingASM.parse(ClassParserUsingASM.java:414)
    At edu.umd.cs.findbugs.classfile.engine.ClassInfoAnalysisEngine.analyze(ClassInfoAnalysisEngine.java:65)
    At edu.umd.cs.findbugs.classfile.engine.ClassInfoAnalysisEngine.analyze(ClassInfoAnalysisEngine.java:39)
    At edu.umd.cs.findbugs.classfile.impl.AnalysisCache.getClassAnalysis(AnalysisCache.java:214)
    At edu.umd.cs.findbugs.ba.XFactory.getXClass(XFactory.java:581)
    At edu.umd.cs.findbugs.ba.AnalysisCacheToAnalysisContextAdapter.setAppClassList(AnalysisCacheToAnalysisContextAdapter.java:319)
    At edu.umd.cs.findbugs.FindBugs2.createAnalysisContext(FindBugs2.java:785)
    At edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:187)
    At edu.umd.cs.findbugs.FindBugs.runMain(FindBugs.java:348)
    At edu.umd.cs.findbugs.FindBugs2.main(FindBugs2.java:1057)

1 Ответ

3 голосов
/ 21 сентября 2010

Не совсем решение, но FindBugs должен работать и для сгенерированных Scala файлов классов, поэтому я бы посоветовал сообщить об этих ошибках команде FindBugs. Конечно, анализ FindBugs может быть не очень полезен для классов Scala в большинстве случаев (из-за сильной магии компилятора), но, по крайней мере, FindBugs не должен давать сбой. Я надеюсь, что рано или поздно FindBugs будет расширен, чтобы дать классам Scala особый режим (но этого не произойдет, если никто не будет жаловаться: -)

...