2010-09-20 7 views
6

que tienen un proyecto Scala/java mixta - en su mayoría java. Me gustaría utilizar Findbugs en mi código java, pero las clases scala le están dando problemas. Entonces me gustaría excluirlos de Findbugs. Hasta ahora he intentado listar las clases de scala en un filtro de exclusión, pero eso no ayuda. Estoy usando el complemento maven codehaus findbugs versión 2.3.1.Ocultación de clases que no son Java desde findbugs

Las excepciones que estoy recibiendo sobre todo tomar esta forma:

 
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) 
+0

¿Separaron los directorios de origen?/src/main/java y src/main/scala – crowne

+3

Findbugs opera en archivos .class, no en archivos fuente. –

+0

El problema es que findbugs crea miles de NPE al analizar los archivos * .class generados por scalac. –

Respuesta

3
No

realmente una solución, pero FindBugs deben trabajar para Scala genera archivos de clase, así que me gustaría sugerir reportar estos errores a la Equipo FindBugs. Por supuesto, el análisis de FindBugs podría no ser muy útil para las clases de Scala en la mayoría de los casos (debido a la gran magia del compilador), pero al menos FindBugs no debería fallar. Espero que tarde o temprano FindBugs se extienda para darle a las clases de Scala un tratamiento especial (pero eso no sucederá si nadie se queja :-)

+1

De hecho, el error se ha corregido en findbugs tronco: http://code.google.com/p/findbugs/source/detail?r=12121 No estoy seguro de si hay una manera de hacer que el experto findbugs plugin de uso de una estructura de tronco de findbugs sin embargo. –

+0

@Geoff Reedy Gracias! Tuve que aplicar la corrección al código 1.3.9, pero parece que ha hecho felices a findbugs. Con suerte, findbugs 2.0 saldrá pronto. – sblundy

Cuestiones relacionadas