action icon indicating copy to clipboard operation
action copied to clipboard

[Feature] Support SpotBugs

Open jtiala opened this issue 3 years ago • 0 comments

SpotBugs can output it's results as XML that could be used for a report. The file looks something like this:

<?xml version="1.0" encoding="UTF-8"?>

<BugCollection version="4.7.1" sequence="0" timestamp="1660217986614" analysisTimestamp="1660217986614" release="">
  <Project projectName="app (spotbugsMain)">
    <Jar>/*path*/App.class</Jar>
    <Jar>/*path*/ExceptionHandler.class</Jar>
    <AuxClasspathEntry>/*path*/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-configuration-processor/2.7.2/12575686ba3820571ea79bfd08d6d27534b97a0e/spring-boot-configuration-processor-2.7.2.jar</AuxClasspathEntry>
    <AuxClasspathEntry>/*path*/.gradle/caches/modules-2/files-2.1/com.github.spotbugs/spotbugs-annotations/4.7.1/50e29adaec8cf4299441a6786a909a0b105326ad/spotbugs-annotations-4.7.1.jar</AuxClasspathEntry>
    <SrcDir>/*path*/src/main/resources</SrcDir>
    <SrcDir>/*path*/src/main/java</SrcDir>
    <Plugin id="com.h3xstream.findsecbugs" enabled="true"/>
  </Project>
  <Errors errors="1" missingClasses="3">
    <Error>
      <ErrorMessage>Exception analyzing *class* using detector com.h3xstream.findsecbugs.spring.SpringEntityLeakDetector</ErrorMessage>
      <Exception>java.lang.IllegalArgumentException: Invalid class name java/lang/String;Ljava/lang/Object</Exception>
      <StackTrace>edu.umd.cs.findbugs.classfile.ClassDescriptor.&lt;init&gt;(ClassDescriptor.java:59)</StackTrace>
      <StackTrace>edu.umd.cs.findbugs.classfile.DescriptorFactory.getClassDescriptor(DescriptorFactory.java:128)</StackTrace>
      <StackTrace>edu.umd.cs.findbugs.AnalysisCacheToRepositoryAdapter.loadClass(AnalysisCacheToRepositoryAdapter.java:90)</StackTrace>
      <StackTrace>org.apache.bcel.Repository.lookupClass(Repository.java:65)</StackTrace>
      <StackTrace>com.h3xstream.findsecbugs.spring.SignatureParserWithGeneric.typeToJavaClass(SignatureParserWithGeneric.java:75)</StackTrace>
      <StackTrace>com.h3xstream.findsecbugs.spring.SignatureParserWithGeneric.getReturnClasses(SignatureParserWithGeneric.java:60)</StackTrace>
      <StackTrace>com.h3xstream.findsecbugs.spring.SpringEntityLeakDetector.analyzeMethod(SpringEntityLeakDetector.java:112)</StackTrace>
      <StackTrace>com.h3xstream.findsecbugs.spring.SpringEntityLeakDetector.visitClassContext(SpringEntityLeakDetector.java:69)</StackTrace>
      <StackTrace>edu.umd.cs.findbugs.DetectorToDetector2Adapter.visitClass(DetectorToDetector2Adapter.java:76)</StackTrace>
      <StackTrace>edu.umd.cs.findbugs.FindBugs2.lambda$analyzeApplication$1(FindBugs2.java:1108)</StackTrace>
      <StackTrace>java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)</StackTrace>
      <StackTrace>edu.umd.cs.findbugs.CurrentThreadExecutorService.execute(CurrentThreadExecutorService.java:86)</StackTrace>
      <StackTrace>java.base/java.util.concurrent.AbstractExecutorService.invokeAll(AbstractExecutorService.java:242)</StackTrace>
      <StackTrace>edu.umd.cs.findbugs.FindBugs2.analyzeApplication(FindBugs2.java:1118)</StackTrace>
      <StackTrace>edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:309)</StackTrace>
      <StackTrace>edu.umd.cs.findbugs.FindBugs.runMain(FindBugs.java:395)</StackTrace>
      <StackTrace>edu.umd.cs.findbugs.FindBugs2.main(FindBugs2.java:1231)</StackTrace>
    </Error>
    <MissingClass>apply</MissingClass>
    <MissingClass>makeConcatWithConstants</MissingClass>
    <MissingClass>test</MissingClass>
  </Errors>
  <FindBugsSummary timestamp="Thu, 11 Aug 2022 14:39:46 +0300" total_classes="0" referenced_classes="0" total_bugs="0" total_size="0" num_packages="0" java_version="11.0.15" vm_version="11.0.15+0" cpu_seconds="10.43" clock_seconds="3.11" peak_mbytes="278.01" alloc_mbytes="4096.00" gc_seconds="0.05">
    <FindBugsProfile></FindBugsProfile>
  </FindBugsSummary>
  <ClassFeatures></ClassFeatures>
  <History></History>
</BugCollection>

jtiala avatar Aug 12 '22 08:08 jtiala