SpotBugs is FindBugs' successor. A tool for static analysis to look for bugs in Java code.

Overview

SpotBugs

Build Status Documentation Status Coverage Status Maven Central Javadocs

SpotBugs is the spiritual successor of FindBugs, carrying on from the point where it left off with support of its community.

SpotBugs is licensed under the GNU LESSER GENERAL PUBLIC LICENSE.

More information at the official website. A lot of things can still be found at the old FindBugs website.

Build

SpotBugs is built using Gradle. The recommended way to obtain it is to simply run the gradlew (or gradlew.bat) wrapper, which will automatically download and run the correct version as needed (using the settings in gradle/wrapper/gradle-wrapper.properties).

To see a list of build options, run gradle tasks (or gradlew tasks). The build task will perform a full build and test.

To build the SpotBugs plugin for Eclipse, you'll need to create the file eclipsePlugin/local.properties, containing a property eclipseRoot.dir that points to an Eclipse installation's root directory (see .travis.yml for an example), then run the build. To prepare Eclipse environment only, run ./gradlew eclipse. See also detailed steps.

Using SpotBugs

SpotBugs can be used standalone and through several integrations, including:

Questions?

You can contact us using our general purpose mailing list.

Issues
  • Maven Support

    Maven Support

    Please provide an official maven plugin

    enhancement 
    opened by levonk 75
  • Release SpotBugs 3.1.0

    Release SpotBugs 3.1.0

    Finally SpotBugs is ready to be released. However this might be unstable because we changed build process drastically and this is the first release from new community without enough automated test.

    So it would be better to release release candidate version first, to ask major users to have a try. This is my opinion, could you tell me yours?

    TODO

    • [x] Ask Sonatype to let us deploy artifacts to Maven central
    • [x] Update build.gradle to enable uploadArchives goal
    • [x] Prepare changelog for 3.1.0 (#117)
    • [x] create and check instructions to use spotbugs with existing maven and gradle plugins
    • [x] Close all issues which belongs to 3.1.0 milestone
    • [x] Release 3.1.0-rc4 to Maven central
    • [x] Release 3.1.0-rc4 to Eclipse plugin update site
    • [x] Announce 3.1.0-rc4 release to [email protected]
    • [x] Test released RC version with several users
      • [x] fb-contrib
      • [x] find-sec-bugs
      • [x] findbugs-slf4j
      • [x] Findbugs Gradle plugin
      • [x] [Findbugs Maven plugin](com.github.hazendaz.spotbugs:spotbugs-maven-plugin , see #8 )
      • [x] Test update of FindBugs plugin installed on Eclipse Neon to SpotBugs plugin (see #209 )
      • [x] Test installation of SpotBugs plugin into Eclipse Oxygen via https://spotbugs.github.io/eclipse-candidate/ update site
      • [x] Test command line scripts execution
      • [x] TBU
    • [x] Release more release candidate versions if necessary
    • [x] Release 3.1.0 to Maven central
    • [x] Release 3.1.0 to Eclipse plugin update site
    help wanted question 
    opened by KengoTODA 48
  • try with resources with Java 11 triggers RCN warnings

    try with resources with Java 11 triggers RCN warnings

    Tested with spotBugs 3.1.7. The issue doesn't happen with Java 10.

    Example:

    RCN | Nullcheck of fc at line 629 of value previously dereferenced in org.apache.kafka.common.utils.Utils.readFileAsString(String, Charset)

    public static String readFileAsString(String path, Charset charset) throws IOException {
      try (FileChannel fc = FileChannel.open(Paths.get(path))) {
        MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size()); // line 629
        return StandardCharsets.UTF_8.decode(bb).toString();
      }
    }
    
    Java-11 bug false positive 
    opened by ijuma 28
  • Gradle-daemon: Trying to add already registered factory fills stdout

    Gradle-daemon: Trying to add already registered factory fills stdout

    When using gradle daemon i constantly get a lot of output for subsequent runs after the first run. Is daemon caching clashing with spotbugs logging? Seems to happens when adding spotbugs plugins I have findsecbugs plugin and one i have written myself

    Trying to add already registered factory: IwSlf4jLoggers, Plugin:uk.co.ideaworks.spotbugs.spotbugs-plugin Trying to add already registered factory: PredictableRandomDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: ServletEndpointDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: CookieReadDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: CookieFlagsDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: PathTraversalDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: CommandInjectionDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: WeakFilenameUtilsMethodDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: WeakTrustManagerDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: JaxWsEndpointDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: JaxRsEndpointDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: TapestryEndpointDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: WicketEndpointDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: WeakMessageDigestDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: WeakTLSDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: CustomMessageDigestDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: FileUploadFilenameDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: ReDosDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: XxeDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: TransformerFactoryDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: XmlStreamReaderDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: XPathInjectionDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: Struts1EndpointDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: Struts2EndpointDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: SpringMvcEndpointDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: SpringCsrfProtectionDisabledDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: SpringCsrfUnrestrictedRequestMappingDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: CustomInjectionDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: SqlInjectionDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: AndroidSqlInjectionDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: BadHexadecimalConversionDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: HazelcastSymmetricEncryptionDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: NullCipherDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: UnencryptedSocketDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: UnencryptedServerSocketDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: DesUsageDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: TDesUsageDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: RsaNoPaddingDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: ConstantPasswordDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: GoogleApiKeyDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: HardcodePasswordInMapDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: IntuitiveHardcodePasswordDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: HardcodedPasswordEqualsDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: HashUnsafeEqualsDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: KotlinHardcodedPasswordEqualsDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: StrutsValidatorFormDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: XSSRequestWrapperDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: InsufficientKeySizeBlowfishDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: InsufficientKeySizeRsaDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: UnvalidatedRedirectDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: XssJspDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: XssServletDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: JspIncludeDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: JspSpringEvalDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: JstlOutDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: XslTransformJspDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: StdXmlTransformDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: XmlDecoderDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: StaticIvDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: CipherWithNoIntegrityDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: EsapiEncryptorDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: ScriptInjectionDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: OgnlInjectionDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: SpelViewDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: HttpResponseSplittingDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: CrlfLogInjectionDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: ExternalConfigurationControlDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: ExternalFileAccessDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: BroadcastDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: WorldWritableDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: GeolocationDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: WebViewJavascriptEnabledDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: WebViewJavascriptInterfaceDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: ObjectDeserializationDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: UnsafeJacksonDeserializationDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: DeserializationGadgetDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: TrustBoundaryViolationAttributeDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: TrustBoundaryViolationValueDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: PlayUnvalidatedRedirectDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: SslDisablerDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: ScalaSensitiveDataExposureDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: SSRFDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: XssMvcApiDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: XssTwirlDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: VelocityDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: FreemarkerDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: LdapInjectionDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: AnonymousLdapDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: LdapEntryPoisoningDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: PermissiveCORSDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: PersistentCookieDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: UrlRewritingDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: InsecureSmtpSslDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: AwsQueryInjectionDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: BeanInjectionDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: FileDisclosureDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: FormatStringManipulationDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: HttpParameterPollutionDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: SmtpHeaderInjectionDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: SpringUnvalidatedRedirectDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: PotentialValueDetector, Plugin:com.h3xstream.findsecbugs Trying to add already registered factory: ErrorMessageExposureDetector, Plugin:com.h3xstream.findsecbugs


    Gradle 5.0

    Build time: 2018-11-26 11:48:43 UTC Revision: 7fc6e5abf2fc5fe0824aec8a0f5462664dbcd987

    Kotlin DSL: 1.0.4 Kotlin: 1.3.10 Groovy: 2.5.4 Ant: Apache Ant(TM) version 1.9.13 compiled on July 10 2018 JVM: 1.8.0_191 (Oracle Corporation 25.191-b12) OS: Linux 4.15.0-39-generic amd64

    Spotbugs Version: 3.1.8/3.1.9 Spotbugs Gradle Plugin Version: 1.6.5

    need info 
    opened by dellgreen 25
  • Compatibility with (and update for) existing FindBugs Eclipse plugin

    Compatibility with (and update for) existing FindBugs Eclipse plugin

    I just stumbled over the fact that the edu.umd.cs.findbugs.plugin.eclipse.findbugsPlugins extension point got renamed to com.github.spotbugs.plugin.eclipse (interestingly, while leaving the <findbugsPlugin> element name unchanged).

    I hence wonder what compatibility guarantees towards existing FindBugs plugins are given by SpotBugs? Maybe we can use this issue to discuss/document this.

    opened by sewe 24
  • Reproduce reported problem, and solve it by upgrading BCEL to 6.1

    Reproduce reported problem, and solve it by upgrading BCEL to 6.1

    Reproduce reported problem as #60.

    Java-8 bug 
    opened by KengoTODA 24
  • Regression in 3.1.3: false alarm for

    Regression in 3.1.3: false alarm for "Parameter must be non-null but is marked as nullable"

    For this code:

    import com.google.common.base.Preconditions;
    import javax.annotation.Nullable;
    
    public enum TestClass {
      TEST("one", "two", null);
    
      public final String one;
      public final String two;
      @Nullable public final String three;
    
      private TestClass(String one, String two, @Nullable Object three) {
        this.one = Preconditions.checkNotNull(one);
        this.two = Preconditions.checkNotNull(two);
        this.three = three == null ? null : three.toString();
      }
    }
    

    SpotBugs 3.1.3 outputs this warning:

    Parameter must be non-null but is marked as nullable
    
    In class TestClass
    In method new TestClass(String, int, String, String, Object)
    Parameter one
    At TestClass.java:[lines 11-15]
    one must be non-null but is marked as nullable
    

    SpotBugs 3.1.2 does not show this warning. The code is compiled for Java 8.

    This has to be a bug, because if I remove either parameter two or three, the warning about parameter one goes away.

    bug need info 
    opened by PhilippWendler 23
  • WrappedRuntimeException: Premature end of file.

    WrappedRuntimeException: Premature end of file.

    Hi,

    I'm trying to migrate my project (Android Quality Verifier) from using FindBugs to SpotBugs. But since I changed to SpotBugs I can't run it because of this exception:

    Execution failed for task ':app:androidSpotbugs'. javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Premature end of file.

    The problem is in the XSL template I use for show errors in HTML, but I tried to use one of your examples of XSL and it gives the same error.

    My project uses the ant task version.

    need info 
    opened by Andrer757 23
  • Spotbugs 3.1.6 fails on JDK 11

    Spotbugs 3.1.6 fails on JDK 11

    I have a multi-JDK build configured. https://github.com/eclipse/ebr/blob/master/.travis.yml

    Spotbugs 3.1.5 runs fine on OpenJDK 8 and 10 but fails on 11 https://travis-ci.org/eclipse/ebr/jobs/405750075

    11:00:05:251 [INFO] --- spotbugs-maven-plugin:3.1.5:spotbugs (spotbugs) @ ebr-maven-shared ---
    11:00:05:708 [INFO] Fork Value is true
         [java] Picked up _JAVA_OPTIONS: -Xmx2048m -Xms512m
         [java] The following errors occurred during analysis:
         [java]   Unable to get XClass for java/lang/Integer
         [java]     java.lang.UnsupportedOperationException
         [java]       At org.objectweb.asm.ClassVisitor.visitNestMemberExperimental(ClassVisitor.java:248)
         [java]       At org.objectweb.asm.ClassReader.accept(ClassReader.java:651)
         [java]       At edu.umd.cs.findbugs.asm.FBClassReader.accept(FBClassReader.java:44)
         [java]       At org.objectweb.asm.ClassReader.accept(ClassReader.java:391)
         [java]       At edu.umd.cs.findbugs.classfile.engine.ClassParserUsingASM.parse(ClassParserUsingASM.java:519)
         [java]       At edu.umd.cs.findbugs.classfile.engine.ClassParserUsingASM.parse(ClassParserUsingASM.java:703)
         [java]       At edu.umd.cs.findbugs.classfile.engine.ClassInfoAnalysisEngine.analyze(ClassInfoAnalysisEngine.java:79)
         [java]       At edu.umd.cs.findbugs.classfile.engine.ClassInfoAnalysisEngine.analyze(ClassInfoAnalysisEngine.java:38)
    ...
    
    
    Java-11 
    opened by guw 22
  • [docs] List detectors and don't render hidden elements

    [docs] List detectors and don't render hidden elements

    This is a draft patch for the code that generates the bug list. Changes:

    • Bug patterns are sorted inside Categories
    • All sections have predictable anchors (not translation sensitive) to use with :ref:
    • Hidden categories (like Noise) are omitted - not sure if that's ok
    • Detectors are listed as an extra category with list of links to bugs it reports
    • Detectors which are disabled by default have "(disabled by default)" under their title

    I have trouble translating that last one. Is it ok to add some fake entries to "messages.xml" ?

    If you think this is usefull, I would also like to add information about Rank for each Bug and speed for each detector.


    Make sure these boxes are checked before submitting your PR -- thank you!

    • [X] Added an entry into CHANGELOG.md if you have changed SpotBugs code
    • [X] Added an entry into gradlePlugin/CHANGELOG.md if you have changed Gradle plugin code
    opened by lqc 22
  • Add option to user-defined list of immutable classes

    Add option to user-defined list of immutable classes

    Although our heuristics considers a class as mutable only in the case it has a setter, some users may want to handle some of them as immutable in their code where security is less important than perofrmance. This patch allows them to define a comma-separated list of classes which are considered as immutable. Whole packages may also be whitelisted using an asterix for the class name.


    Make sure these boxes are checked before submitting your PR -- thank you!

    • [ ] Added an entry into CHANGELOG.md if you have changed SpotBugs code
    opened by baloghadamsoftware 1
  • Two False positives SA_LOCAL_SELF_COMPARISON + ES_COMPARING_STRINGS_WITH_EQ  when using instanceof pattern matching (jdk16)

    Two False positives SA_LOCAL_SELF_COMPARISON + ES_COMPARING_STRINGS_WITH_EQ when using instanceof pattern matching (jdk16)

    When I ran SpotBugs (4.3.1/eclipse 2021-06) with JDK 16.0.1 there are two false positives

    SA_LOCAL_SELF_COMPARISON ES_COMPARING_STRINGS_WITH_EQ

    package de.sph.test;
    public class Main {
    
    	public static void main(String[] args) {
    		Object o = new Object();
    		testInstnaceOfString(o);
    	}
    
    	private static boolean testInstnaceOfString(final Object o)
    	{
                   // SpotBugs SA_LOCAL_SELF_COMPARISON + ES_COMPARING_STRINGS_WITH_EQ  message here
    		if (o instanceof final String s) {
    			System.out.println("string:" + s);
    			return true;
    		}		
    		return false;
    	}
    }
    

    Is this only a problem of the eclipse plugin?

    opened by GandalfTheWhite80 1
  • Spotbugs ignores one particular `@SuppressFBWarnings` annotation.

    Spotbugs ignores one particular `@SuppressFBWarnings` annotation.

    Spotbugs ignores a suppress warnings annotation. But just one, other are working as expected.

    Please take a look at my class MainFrame.java line 117:

    @SuppressFBWarnings(value = "DMI_RANDOM_USED_ONLY_ONCE", justification = "we need just ONE random number ONCE")
    private float hue = new Random().nextFloat();
    

    Why is Spotbugs ignoring the suppress warnings annotation? Others in the same project work as expected. I copied the value from the HTML report, so there should not be a typo.

    Steps to reproduce:

    git clone https://github.com/zdila/gpx-animator.git
    cd gpx-animator
    git checkout spotbugs-issue
    ./gradlew assemble
    

    The build fails on Spotbugs problems. An HTML report can now be found in the build directory:

    build/reports/spotbugs/main.html
    

    I use Java 16.0.1 on macOS 11.4 with Spotbugs Gradle Plugin 4.7.1, Spotbugs 4.3.0, and Spotbugs Annotations 4.3.0.

    Is the problem on my side? What have I overlooked?

    opened by McPringle 2
  • if  spotbugs -textui command support to test war file

    if spotbugs -textui command support to test war file

    I run spotbugs (4.2.3) on win10,and the comand below works well spotbugs -textui -jvmArgs "-Xmx2000m" -xml -output d:\report\1.xml test.jar

    but the comand with war,will fail, there is no response in the command window

    spotbugs -textui -jvmArgs "-Xmx2000m" -xml -output d:\report\2.xml hygea.war

    i want to know if i can test the war file with spotbugs -textui

    opened by liwen629 4
  • ResolveAllReferences visitor misses some missing classes

    ResolveAllReferences visitor misses some missing classes

    with -visitors ResolveAllReferences https://github.com/spotbugs/spotbugs/blob/master/spotbugs/src/main/java/edu/umd/cs/findbugs/detect/ResolveAllReferences.java#L183

    In following class https://github.com/googleapis/java-spanner/blob/6e5d54fc71fd939874efc1596105a07d76a7a1bb/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerExceptionFactory.java#L53 reference to ErrorInfo class is not inspected / not reported as missing class in case ErrorInfo is missing from dependencies.

    With default set of visitors the class reference is inspected and reported if it's missing

    opened by dmivankov 1
  • EI_EXPOSE_STATIC_REP2 has code MS rather than EI

    EI_EXPOSE_STATIC_REP2 has code MS rather than EI

    same for EI_EXPOSE_STATIC_BUF2 So naming of bug pattern becomes a little inconsistent - not starts with code Another example is EI_EXPOSE_BUF2 has code EI2, not EI and not called EI2_EXPOSE_BUF2

    Not a big issue, but makes adding by-bug-code ignores a little less intuitive

    opened by dmivankov 2
  • java.lang.AssertionError: Out of bounds mutables setErrorHintText(Ljava/lang/Exception;)V Method Config: com/google/common/base/Optional.or(Ljava/lang/Object;)Ljava/lang/Object;:0,1#2 at com.h3xstream.findsecbugs.taintanalysis.TaintFrameModelingVisitor.transferTaintToMutables(TaintFrameModelingVisitor.java:872)

    java.lang.AssertionError: Out of bounds mutables setErrorHintText(Ljava/lang/Exception;)V Method Config: com/google/common/base/Optional.or(Ljava/lang/Object;)Ljava/lang/Object;:0,1#2 at com.h3xstream.findsecbugs.taintanalysis.TaintFrameModelingVisitor.transferTaintToMutables(TaintFrameModelingVisitor.java:872)

    Product Infos SpotBugs: 4.1.3 IntelliJ SpotBugs plugin: 1.2.4 IDEA: IntelliJ IDEA 2021.1.3 IDEA-Build: IU-211.7628.21, June 29, 2021 JRE: 11.0.11+9-b1341.60 amd64 JVM: OpenJDK 64-Bit Server VM JetBrains s.r.o.

    null edu.umd.cs.findbugs.ba.AnalysisException: Exeption was thrown during analysis at edu.umd.cs.findbugs.FindBugs2.lambda$analyzeApplication$3(FindBugs2.java:1125) at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) at edu.umd.cs.findbugs.FindBugs2.analyzeApplication(FindBugs2.java:1118) at edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:309) at org.jetbrains.plugins.spotbugs.core.FindBugsStarter.executeImpl(FindBugsStarter.java:324) at org.jetbrains.plugins.spotbugs.core.FindBugsStarter.asyncStartImpl(FindBugsStarter.java:214) at org.jetbrains.plugins.spotbugs.core.FindBugsStarter.asyncStart(FindBugsStarter.java:191) at org.jetbrains.plugins.spotbugs.core.FindBugsStarter.access$000(FindBugsStarter.java:54) at org.jetbrains.plugins.spotbugs.core.FindBugsStarter$2.run(FindBugsStarter.java:175) at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:998) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsync$5(CoreProgressManager.java:497) at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:228) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:178) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:688) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:634) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:64) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:165) at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:228) at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.util.concurrent.ExecutionException: java.lang.AssertionError: Out of bounds mutables in com.hd123.jpos.client.swing.WorkingDialog.setErrorHintText(Ljava/lang/Exception;)V Method Config: com/google/common/base/Optional.or(Ljava/lang/Object;)Ljava/lang/Object;:0,1#2 at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) at edu.umd.cs.findbugs.FindBugs2.lambda$analyzeApplication$3(FindBugs2.java:1120) ... 25 more Caused by: java.lang.AssertionError: Out of bounds mutables in com.xxxxxxxxxxxxxxxxxxx.setErrorHintText(Ljava/lang/Exception;)V Method Config: com/google/common/base/Optional.or(Ljava/lang/Object;)Ljava/lang/Object;:0,1#2 at com.h3xstream.findsecbugs.taintanalysis.TaintFrameModelingVisitor.transferTaintToMutables(TaintFrameModelingVisitor.java:872) at com.h3xstream.findsecbugs.taintanalysis.TaintFrameModelingVisitor.visitInvoke(TaintFrameModelingVisitor.java:568) at com.h3xstream.findsecbugs.taintanalysis.TaintFrameModelingVisitor.visitINVOKEVIRTUAL(TaintFrameModelingVisitor.java:390) at org.apache.bcel.generic.INVOKEVIRTUAL.accept(INVOKEVIRTUAL.java:88) at edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor.analyzeInstruction(AbstractFrameModelingVisitor.java:84) at com.h3xstream.findsecbugs.taintanalysis.TaintFrameModelingVisitor.analyzeInstruction(TaintFrameModelingVisitor.java:129) at com.h3xstream.findsecbugs.taintanalysis.TaintAnalysis.transferInstruction(TaintAnalysis.java:90) at com.h3xstream.findsecbugs.taintanalysis.TaintAnalysis.transferInstruction(TaintAnalysis.java:51) at edu.umd.cs.findbugs.ba.AbstractDataflowAnalysis.transfer(AbstractDataflowAnalysis.java:136) at edu.umd.cs.findbugs.ba.Dataflow.execute(Dataflow.java:378) at com.h3xstream.findsecbugs.taintanalysis.TaintDataflowEngine.analyze(TaintDataflowEngine.java:183) at com.h3xstream.findsecbugs.taintanalysis.TaintDataflowEngine.analyze(TaintDataflowEngine.java:56) at edu.umd.cs.findbugs.classfile.impl.AnalysisCache.analyzeMethod(AnalysisCache.java:368) at edu.umd.cs.findbugs.classfile.impl.AnalysisCache.getMethodAnalysis(AnalysisCache.java:321) at com.h3xstream.findsecbugs.injection.AbstractTaintDetector.getTaintDataFlow(AbstractTaintDetector.java:142) at com.h3xstream.findsecbugs.injection.AbstractTaintDetector.analyzeMethod(AbstractTaintDetector.java:109) at com.h3xstream.findsecbugs.injection.AbstractTaintDetector.visitClassContext(AbstractTaintDetector.java:94) at edu.umd.cs.findbugs.DetectorToDetector2Adapter.visitClass(DetectorToDetector2Adapter.java:76) at edu.umd.cs.findbugs.FindBugs2.lambda$analyzeApplication$1(FindBugs2.java:1108) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at edu.umd.cs.findbugs.CurrentThreadExecutorService.execute(CurrentThreadExecutorService.java:86) at java.base/java.util.concurrent.AbstractExecutorService.invokeAll(AbstractExecutorService.java:242) ... 24 more

    opened by wsbhacker 2
  • Fix for the heuristics that recognizes immutable classes

    Fix for the heuristics that recognizes immutable classes

    Class names containting the substring "immutable" are considered now immutable. Fixing issue #1601.


    Make sure these boxes are checked before submitting your PR -- thank you!

    • [X] Added an entry into CHANGELOG.md if you have changed SpotBugs code
    opened by baloghadamsoftware 13
  • Bug Info View is loading incomplete

    Bug Info View is loading incomplete

    With the Spotbugs version (as seen in the attachment) I always get the incomplete view as seen in the attached picture. I tried a fresh install of eclipse 4.19 and 4.20 and also a fresh workspace. Different JDK version also don't seem to make a difference.

    BugInfoView

    opened by coinzz 7
  • EI_EXPOSE_REP and EI_EXPOSE_REP2 occur if using Guava Immutable objects

    EI_EXPOSE_REP and EI_EXPOSE_REP2 occur if using Guava Immutable objects

    We are using Guava Immutable objects in our project, and from SpotBugs 4.3.0 we have SpotBugs failures EI_EXPOSE_REP and EI_EXPOSE_REP2 when directly setting/retrieving class fields as Immutable objects.

    For example:

    private Map<String, String> overrides;
    
    public CLISetup(String commandLine, ImmutableMap<String, String> overrides) {
        this.commandLine = commandLine;
        this.overrides = overrides;
    }
    

    results in an EI_EXPOSE_REP2 failure from this.overrides = overrides.

    This failure is incorrect because the object being passed in and set for the class field is shallowly immutable.

    opened by callum-kilby 27
Releases(4.3.0)
  • 4.3.0(Jul 1, 2021)

    CHANGELOG

    • https://github.com/spotbugs/spotbugs/blob/4.3.0/CHANGELOG.md

    CHECKSUM

    | file | checksum (sha256) | | ---- | ----------------- | | spotbugs-4.3.0-javadoc.jar | 58eeba2dcdcfd6f73c5203a5745ab1a120ded4df484a6d70124a1dcc0573b37f | | spotbugs-4.3.0-sources.jar | ab8847620bd47be9f20cad53462bce1ae49e5495a75796f9ba8d547a703f346e | | spotbugs-4.3.0.tgz | bf9687476cebe0876d9a27679af97705a79b3f0f5629519ca6ec086741b6d884 | | spotbugs-4.3.0.zip | a1c59df789b14a423f24127501db1bd6b0ae642f079f7212ff61343cd387d7f0 | | spotbugs-annotations-4.3.0-javadoc.jar | a49426fbd559394d176c7bc81c8b601b496768048ce29e6f36e05dfcc42f6c19 | | spotbugs-annotations-4.3.0-sources.jar | b338136e3e82d585348cde58a8fe3a678e16f51a35c31c1463e05fefef557aad | | spotbugs-annotations.jar | ae576422c3a090adc372a4542214a38e195f62ada906184e773a8916d83ec386 | | spotbugs-ant-4.3.0-javadoc.jar | 150875811f177a99c60e8e7afdc5c5d3e58393f84de2662bc32d0409254688a0 | | spotbugs-ant-4.3.0-sources.jar | c74dec42c0ed0dd1ae02a7410d8e0f0dbbee23e8e7da4a21910863677fcdbc8e | | spotbugs-ant.jar | 9233e48d37882ae4e7a42e9f42ef4c63d6f802cf8f3b03ba575bee26e5032367 | | spotbugs.jar | c619ef5233ff1115e5b4ceeacd4bed4070a7e5bd95d9c3172b7376cd0cbb1c72 | | test-harness-4.3.0-javadoc.jar | 463ab8a236314d537f3ff78d229ed5a11a56143db18f1e1c87b64c8d93d1eac4 | | test-harness-4.3.0-sources.jar | 2c1f5ef929453f3b682c7eb7c1e22db3082b5f74c5a5be439be5dc31dd7a31aa | | test-harness-4.3.0.jar | 55d3a590b81ffec48293a76c45c0695914b405bf9f02bfb930e3ab99b5867d4f | | test-harness-core-4.3.0-javadoc.jar | b817f0ca2af5fd603ffdf4d95e5071961a2cb2552bbb9403cf1f5390ca0a37c9 | | test-harness-core-4.3.0-sources.jar | f320f5eb4069e9686b760b2a6a0760989753225f9e9ce1226e3258ec64795d8a | | test-harness-core-4.3.0.jar | cbec03867e077079d011e85f9932fb230fae3d909f741cffaa4c8097e91fdf40 | | test-harness-jupiter-4.3.0-javadoc.jar | 4edbdf0a8293458c1356c0bec95ee7c4e4307e62641127593f8443ba8ddee63b | | test-harness-jupiter-4.3.0-sources.jar | 210353a57016e26b1a654d936a15f039613fa1ac532d485c1b1d03902f6c6315 | | test-harness-jupiter-4.3.0.jar | 17e8d78d1868f86e63f3e5e3d878e86f3d7fb1b8cf1a8d5f893333c982bfd3e2 |

    Source code(tar.gz)
    Source code(zip)
    spotbugs-4.3.0-source.zip(3.68 MB)
    spotbugs-4.3.0.tgz(12.44 MB)
    spotbugs-4.3.0.tgz.asc(821 bytes)
    spotbugs-4.3.0.zip(12.46 MB)
    spotbugs-4.3.0.zip.asc(821 bytes)
  • 4.2.3(Apr 16, 2021)

    CHANGELOG

    • https://github.com/spotbugs/spotbugs/blob/4.2.3/CHANGELOG.md

    CHECKSUM

    | file | checksum (sha256) | | ---- | ----------------- | | spotbugs-4.2.3-javadoc.jar | af6c914147a905ab3f005e3d4fc648dee8a43db257add100880fdf5a6df192d4 | | spotbugs-4.2.3-sources.jar | 402c3719be17797cdac702d3fdfd54667242870270dd5593d1ea2b35c9719ebc | | spotbugs-4.2.3.tgz | 58aebdef157dea61a4a92dd872a54725d052f82e8cae057e9714403d5d403291 | | spotbugs-4.2.3.zip | 86a63ca9aeaeb3ed013a48bdb879a052dff35f1f7049dc0607569292b8bf7fb3 | | spotbugs-annotations-4.2.3-javadoc.jar | 2ae44e915d95c92adbda4c982ee97454472ea06e9422cb4f52bb8ab862a7e9c2 | | spotbugs-annotations-4.2.3-sources.jar | b338136e3e82d585348cde58a8fe3a678e16f51a35c31c1463e05fefef557aad | | spotbugs-annotations.jar | 2c84c2e379bfc173720c4e993b648f2b98339c47d17c46850f3c1c227fc17f78 | | spotbugs-ant-4.2.3-javadoc.jar | f1c1d4c5281944c90af104ea0333fee1473a709f7e2cc42eb12615c5bb2659b2 | | spotbugs-ant-4.2.3-sources.jar | c74dec42c0ed0dd1ae02a7410d8e0f0dbbee23e8e7da4a21910863677fcdbc8e | | spotbugs-ant.jar | 9233e48d37882ae4e7a42e9f42ef4c63d6f802cf8f3b03ba575bee26e5032367 | | spotbugs.jar | f13a9d0e8f64d7b0f1aa1252a01de0a1de70f74bfc6972549a8e6a04acde6360 | | test-harness-4.2.3-javadoc.jar | 00fd4a2e5f7d1ecfb3a682477e3e102dca47738d8f8d73eb61be5dbe20471e8a | | test-harness-4.2.3-sources.jar | 2c1f5ef929453f3b682c7eb7c1e22db3082b5f74c5a5be439be5dc31dd7a31aa | | test-harness-4.2.3.jar | 55d3a590b81ffec48293a76c45c0695914b405bf9f02bfb930e3ab99b5867d4f | | test-harness-core-4.2.3-javadoc.jar | 090d963c3c9a130d465958d98d9f2945919d24419194c12a497fb83bc146f15a | | test-harness-core-4.2.3-sources.jar | f320f5eb4069e9686b760b2a6a0760989753225f9e9ce1226e3258ec64795d8a | | test-harness-core-4.2.3.jar | cbec03867e077079d011e85f9932fb230fae3d909f741cffaa4c8097e91fdf40 | | test-harness-jupiter-4.2.3-javadoc.jar | 2473acd3ee25cfbebd4c5d68d022d1d4e8b91f1ba8eb4019d029f2c2a709d03f | | test-harness-jupiter-4.2.3-sources.jar | 210353a57016e26b1a654d936a15f039613fa1ac532d485c1b1d03902f6c6315 | | test-harness-jupiter-4.2.3.jar | 17e8d78d1868f86e63f3e5e3d878e86f3d7fb1b8cf1a8d5f893333c982bfd3e2 |

    Source code(tar.gz)
    Source code(zip)
    spotbugs-4.2.3-source.zip(3.67 MB)
    spotbugs-4.2.3.tgz(12.42 MB)
    spotbugs-4.2.3.tgz.asc(821 bytes)
    spotbugs-4.2.3.zip(12.45 MB)
    spotbugs-4.2.3.zip.asc(821 bytes)
  • 4.2.2(Mar 2, 2021)

    CHANGELOG

    • https://github.com/spotbugs/spotbugs/blob/4.2.2/CHANGELOG.md

    CHECKSUM

    | file | checksum (sha256) | | ---- | ----------------- | | spotbugs-4.2.2-javadoc.jar | eefe6f33309c4a92e3ebb8c18920b78d0e04dea4d93c45a8266f1341d61bf55b | | spotbugs-4.2.2-sources.jar | 046486ae3e1566df35f55d031f0972a35a192e9b7a6833dfd0199099357d4560 | | spotbugs-4.2.2.tgz | 4967c72396e34b86b9458d0c34c5ed185770a009d357df8e63951ee2844f769f | | spotbugs-4.2.2.zip | fbbfca013d11dfecd8b5fb6aa9f3d3f1b6a2689e5a1cd93afe4ffd99de7a8505 | | spotbugs-annotations-4.2.2-javadoc.jar | f8371fc3c7ce0504f4bc7922f27e5d2e1174165fe0ff7714e19e2eaf0a475187 | | spotbugs-annotations-4.2.2-sources.jar | b338136e3e82d585348cde58a8fe3a678e16f51a35c31c1463e05fefef557aad | | spotbugs-annotations.jar | 5657c480a31883cf3fc6d12e6ae522c9fcc9a6303b45939ee42ca2e0ccf4ed04 | | spotbugs-ant-4.2.2-javadoc.jar | 4234f84ceb71fed02c5dfca7b8a8b33163c9f327b106f66e0bf8bf46e03ef0fc |

    Source code(tar.gz)
    Source code(zip)
    spotbugs-4.2.2-source.zip(3.67 MB)
    spotbugs-4.2.2.tgz(12.44 MB)
    spotbugs-4.2.2.tgz.asc(821 bytes)
    spotbugs-4.2.2.zip(12.46 MB)
    spotbugs-4.2.2.zip.asc(821 bytes)
  • 4.2.1(Feb 4, 2021)

    CHANGELOG

    • https://github.com/spotbugs/spotbugs/blob/4.2.1/CHANGELOG.md

    CHECKSUM

    | file | checksum (sha256) | | ---- | ----------------- | | spotbugs-4.2.1-javadoc.jar | 86dbd559ffe5fd5646fe9a91120213579035d9b9232d6949a456f2b5c771bd02 | | spotbugs-4.2.1-sources.jar | 197aa7e54fb82428ea57a08fd71fcb8148d17319d35556a56cb097dd0bfb382c | | spotbugs-4.2.1.tgz | 4d6f5f68da8ddf037bc82f0146b6e6caff4fc5872b9cd511c1e6136c680093a4 | | spotbugs-4.2.1.zip | 799a0cb35ed1463dc8e4432b36691c37e24c340be9ecca3694b57342cb804370 | | spotbugs-annotations-4.2.1-javadoc.jar | bffff554d33b2397d108dbc768d1d16b4f990b192a9c0205a8fd630bd1796cea | | spotbugs-annotations-4.2.1-sources.jar | b338136e3e82d585348cde58a8fe3a678e16f51a35c31c1463e05fefef557aad | | spotbugs-annotations.jar | e4c4696f05b9b8dc9631f993e7dbd19c1758eb1860786e3eebceb591ca0f3d5d | | spotbugs-ant-4.2.1-javadoc.jar | 5a1309c9b156f7e32f993dec59828cc6e2c20d1dbd049a39edb1ca83aae1e92b | | spotbugs-ant-4.2.1-sources.jar | c74dec42c0ed0dd1ae02a7410d8e0f0dbbee23e8e7da4a21910863677fcdbc8e | | spotbugs-ant.jar | 9233e48d37882ae4e7a42e9f42ef4c63d6f802cf8f3b03ba575bee26e5032367 | | spotbugs.jar | cec3251a5e8b3850f9495fdf7069432889bc774fff8ae10e0cb6a464503d6303 | | test-harness-4.2.1-javadoc.jar | 3ade765746b79b8eaf7b4df8e2499a800ca9b1a91f577de53b34a109cec1fff2 | | test-harness-4.2.1-sources.jar | 2c1f5ef929453f3b682c7eb7c1e22db3082b5f74c5a5be439be5dc31dd7a31aa | | test-harness-4.2.1.jar | 55d3a590b81ffec48293a76c45c0695914b405bf9f02bfb930e3ab99b5867d4f | | test-harness-core-4.2.1-javadoc.jar | a867b95c52da44c0471991db890df3a2cba6e05189be22c3ba8a18f70579fc29 | | test-harness-core-4.2.1-sources.jar | f320f5eb4069e9686b760b2a6a0760989753225f9e9ce1226e3258ec64795d8a | | test-harness-core-4.2.1.jar | cbec03867e077079d011e85f9932fb230fae3d909f741cffaa4c8097e91fdf40 | | test-harness-jupiter-4.2.1-javadoc.jar | ad74122b419512c22182d6879482a68303b29b81749ed2d6de15a39bed761dfe | | test-harness-jupiter-4.2.1-sources.jar | 210353a57016e26b1a654d936a15f039613fa1ac532d485c1b1d03902f6c6315 | | test-harness-jupiter-4.2.1.jar | 17e8d78d1868f86e63f3e5e3d878e86f3d7fb1b8cf1a8d5f893333c982bfd3e2 |

    Source code(tar.gz)
    Source code(zip)
    spotbugs-4.2.1-source.zip(3.67 MB)
    spotbugs-4.2.1.tgz(12.28 MB)
    spotbugs-4.2.1.tgz.asc(821 bytes)
    spotbugs-4.2.1.zip(12.30 MB)
    spotbugs-4.2.1.zip.asc(821 bytes)
  • 4.2.0(Nov 28, 2020)

    CHANGELOG

    • https://github.com/spotbugs/spotbugs/blob/4.2.0/CHANGELOG.md

    CHECKSUM

    | file | checksum (sha256) | | ---- | ----------------- | | spotbugs-4.2.0-javadoc.jar | 351df25a8ff5dcce9b14de670e1dbe0c6808d796686978ecee8821dbf305e5d0 | | spotbugs-4.2.0-sources.jar | 95b25a75d6e36f2d3f4d501795db6a7468bfe23ddcc9e7496065d2bee6f36d9d | | spotbugs-4.2.0.tgz | f5e2ad6e94515923a8b9a6db370d3b34a3aad9eda13315146b9bbd03bcbe7e30 | | spotbugs-4.2.0.zip | 4d16c579b8622a72ee57cc5c3e730ad78c8107208528f7de875976a9dd840443 | | spotbugs-annotations-4.2.0-javadoc.jar | c18c4c920acec9cb7b9c204ecc78998c5bccf9150c5a8cecd2fdc25e565be71b | | spotbugs-annotations-4.2.0-sources.jar | b338136e3e82d585348cde58a8fe3a678e16f51a35c31c1463e05fefef557aad | | spotbugs-annotations.jar | 871aee8bb3f7400a0d09e9675dcd7388da584169f4aab3565efc5a3f5bc90eab | | spotbugs-ant-4.2.0-javadoc.jar | a88414de79a0c1cf420058583fe64a746e2ebe6a918f91f4e7d183c06a452810 | | spotbugs-ant-4.2.0-sources.jar | c74dec42c0ed0dd1ae02a7410d8e0f0dbbee23e8e7da4a21910863677fcdbc8e | | spotbugs-ant.jar | 9233e48d37882ae4e7a42e9f42ef4c63d6f802cf8f3b03ba575bee26e5032367 | | spotbugs.jar | 4d48063a6f7b623936b68e150ea73499f6bfeb5d1bc4769214e04a9c8804132e | | test-harness-4.2.0-javadoc.jar | bb4f6fdbc17757577685317cb41557ed2c08822850fdb9e23eb5fd19c07f5b0a | | test-harness-4.2.0-sources.jar | 2c1f5ef929453f3b682c7eb7c1e22db3082b5f74c5a5be439be5dc31dd7a31aa | | test-harness-4.2.0.jar | 55d3a590b81ffec48293a76c45c0695914b405bf9f02bfb930e3ab99b5867d4f | | test-harness-core-4.2.0-javadoc.jar | 3723e59c0430cd555c55c2082d24b93419711de47ce41e49cc5e072b0fe1f452 | | test-harness-core-4.2.0-sources.jar | f320f5eb4069e9686b760b2a6a0760989753225f9e9ce1226e3258ec64795d8a | | test-harness-core-4.2.0.jar | cbec03867e077079d011e85f9932fb230fae3d909f741cffaa4c8097e91fdf40 | | test-harness-jupiter-4.2.0-javadoc.jar | 4a1c523c1d1f0d1095ab1e4185f4e63390ecfde5759e7611a2e41c05ce0c5a4d | | test-harness-jupiter-4.2.0-sources.jar | 210353a57016e26b1a654d936a15f039613fa1ac532d485c1b1d03902f6c6315 | | test-harness-jupiter-4.2.0.jar | 17e8d78d1868f86e63f3e5e3d878e86f3d7fb1b8cf1a8d5f893333c982bfd3e2 |

    Source code(tar.gz)
    Source code(zip)
    spotbugs-4.2.0-source.zip(3.67 MB)
    spotbugs-4.2.0.tgz(12.28 MB)
    spotbugs-4.2.0.tgz.asc(821 bytes)
    spotbugs-4.2.0.zip(12.30 MB)
    spotbugs-4.2.0.zip.asc(821 bytes)
  • 4.1.4(Oct 15, 2020)

    CHANGELOG

    • https://github.com/spotbugs/spotbugs/blob/4.1.4/CHANGELOG.md

    CHECKSUM

    | file | checksum (sha256) | | ---- | ----------------- | | spotbugs-4.1.4-javadoc.jar | 32fd9b5cbc6cca027183d72de3dbef2bf4670b461f42db4eefab2e8cc7fa0e1f | | spotbugs-4.1.4-sources.jar | b36f8138c79be464f270c5fb9a89f53481c7282a857115f45f95e5d462dabeee | | spotbugs-4.1.4.tgz | 2e6ebf87f92887e06d3a5aa29a2c3331c7ed089019aca1529670e156c6b0849e | | spotbugs-4.1.4.zip | 80d37786abecb607937402517a778bd0ef2bf4ae49639994852104807ecd63b4 | | spotbugs-annotations-4.1.4-javadoc.jar | 9fc57182b3293d8834a87e691de7ac2e35824518f80fc480c59e6bf51e141c92 | | spotbugs-annotations-4.1.4-sources.jar | b338136e3e82d585348cde58a8fe3a678e16f51a35c31c1463e05fefef557aad | | spotbugs-annotations.jar | f4d784f99c40cd7240cc36cd9288ff89e03b00681f282ee7cca2348e364ce0a1 | | spotbugs-ant-4.1.4-javadoc.jar | 1ded0d8eb8cb3724f4d2c4e523c3c3254ef1cd2e4a8510a32314f13c2a01d9cc | | spotbugs-ant-4.1.4-sources.jar | c74dec42c0ed0dd1ae02a7410d8e0f0dbbee23e8e7da4a21910863677fcdbc8e | | spotbugs-ant.jar | 9233e48d37882ae4e7a42e9f42ef4c63d6f802cf8f3b03ba575bee26e5032367 | | spotbugs.jar | 9407c27b324ad493479e3c2365e01444ce88db0fa86c835940c0f9ddd746f268 | | test-harness-4.1.4-javadoc.jar | 4459cdd093609a36e00c4fc4444d3bd95baa05ef9c14f3b6c8d21981992b529f | | test-harness-4.1.4-sources.jar | 2c1f5ef929453f3b682c7eb7c1e22db3082b5f74c5a5be439be5dc31dd7a31aa | | test-harness-4.1.4.jar | 55d3a590b81ffec48293a76c45c0695914b405bf9f02bfb930e3ab99b5867d4f | | test-harness-core-4.1.4-javadoc.jar | ad09ce092b138a5b1c0410e67620da269451d5d3f71540382b35017f68312e00 | | test-harness-core-4.1.4-sources.jar | f320f5eb4069e9686b760b2a6a0760989753225f9e9ce1226e3258ec64795d8a | | test-harness-core-4.1.4.jar | cbec03867e077079d011e85f9932fb230fae3d909f741cffaa4c8097e91fdf40 | | test-harness-jupiter-4.1.4-javadoc.jar | 25ce5464579a7d2a5b320351ce2d9fe9f18476485778b63bd810629d705542a4 | | test-harness-jupiter-4.1.4-sources.jar | 210353a57016e26b1a654d936a15f039613fa1ac532d485c1b1d03902f6c6315 | | test-harness-jupiter-4.1.4.jar | 17e8d78d1868f86e63f3e5e3d878e86f3d7fb1b8cf1a8d5f893333c982bfd3e2 |

    Source code(tar.gz)
    Source code(zip)
    spotbugs-4.1.4-source.zip(3.67 MB)
    spotbugs-4.1.4.tgz(12.22 MB)
    spotbugs-4.1.4.tgz.asc(821 bytes)
    spotbugs-4.1.4.zip(12.24 MB)
    spotbugs-4.1.4.zip.asc(821 bytes)
  • 4.1.3(Sep 24, 2020)

    CHANGELOG

    • https://github.com/spotbugs/spotbugs/blob/4.1.3/CHANGELOG.md

    CHECKSUM

    | file | checksum (sha256) | | ---- | ----------------- | | spotbugs-4.1.3-javadoc.jar | 695e24f667c12168782861fa7b8e5403b47be29eb7b018b8311b4167aa87f0b3 | | spotbugs-4.1.3-sources.jar | dc5821a26467927527cc56dc461ef90121afc66343f8dcce525edb2e03f04330 | | spotbugs-4.1.3.tgz | 4c5ad9f3b8e592c07c980c63a4838d1f9169b9f6472ffdbe813c0df6c29522c3 | | spotbugs-4.1.3.zip | b815b43f9eef93c378de89124ba9bb3f9698a873d57ee2140241ea344b75b123 | | spotbugs-annotations-4.1.3-javadoc.jar | e52346ab3fb6d79166b87594599e489f2a1718a096ad9f3caf59c8339e0c8264 | | spotbugs-annotations-4.1.3-sources.jar | b338136e3e82d585348cde58a8fe3a678e16f51a35c31c1463e05fefef557aad | | spotbugs-annotations.jar | d11139edf901fe95d7515f495e617df135d50341ded53ff5956eff899feafb2b | | spotbugs-ant-4.1.3-javadoc.jar | 724245ff73e660a806ca90d9f887375f6a76a81c8bdb32c598bd13b4f99da3a9 | | spotbugs-ant-4.1.3-sources.jar | c74dec42c0ed0dd1ae02a7410d8e0f0dbbee23e8e7da4a21910863677fcdbc8e | | spotbugs-ant.jar | 9233e48d37882ae4e7a42e9f42ef4c63d6f802cf8f3b03ba575bee26e5032367 | | spotbugs.jar | b8e89b98c63563ba449941795b67fd96d00f7da910748a682ecb9425d3a03ca2 | | test-harness-4.1.3-javadoc.jar | 7dc0c73d07dd373796c613ad0db7dd4c13a566834520b7dca5b77d4cbdd3344b | | test-harness-4.1.3-sources.jar | 2c1f5ef929453f3b682c7eb7c1e22db3082b5f74c5a5be439be5dc31dd7a31aa | | test-harness-4.1.3.jar | 55d3a590b81ffec48293a76c45c0695914b405bf9f02bfb930e3ab99b5867d4f | | test-harness-core-4.1.3-javadoc.jar | 70ff5a98891a9ca2f65f6bab0c2e5edc177ab53ad3386c5f8df51ef551cf744d | | test-harness-core-4.1.3-sources.jar | f320f5eb4069e9686b760b2a6a0760989753225f9e9ce1226e3258ec64795d8a | | test-harness-core-4.1.3.jar | cbec03867e077079d011e85f9932fb230fae3d909f741cffaa4c8097e91fdf40 | | test-harness-jupiter-4.1.3-javadoc.jar | 32e1d48fd45c4d586086512e81447fbe5e18cc17a6e6217d125fce8bd625d09b | | test-harness-jupiter-4.1.3-sources.jar | 210353a57016e26b1a654d936a15f039613fa1ac532d485c1b1d03902f6c6315 | | test-harness-jupiter-4.1.3.jar | 17e8d78d1868f86e63f3e5e3d878e86f3d7fb1b8cf1a8d5f893333c982bfd3e2 |

    Source code(tar.gz)
    Source code(zip)
    spotbugs-4.1.3-source.zip(3.66 MB)
    spotbugs-4.1.3.tgz(12.21 MB)
    spotbugs-4.1.3.tgz.asc(821 bytes)
    spotbugs-4.1.3.zip(12.23 MB)
    spotbugs-4.1.3.zip.asc(821 bytes)
  • 4.1.2(Aug 19, 2020)

    CHANGELOG

    • https://github.com/spotbugs/spotbugs/blob/4.1.2/CHANGELOG.md

    CHECKSUM

    | file | checksum (sha256) | | ---- | ----------------- | | spotbugs-4.1.2-javadoc.jar | f21a06ae973f06611a18617c9daae5b238c40bb45e1b1adcf92594a55a5e334c | | spotbugs-4.1.2-sources.jar | 404096315daacd555d4003b062d5098300d961a554b4844b3f57b867c3d970ae | | spotbugs-4.1.2.tgz | 575dd1aa4b25b0a5f9766c35ee6ca1d40a3bec8ad02f9f7bb3037f467c60c76f | | spotbugs-4.1.2.zip | c104f6aaa95d7c5d1bd9040d38b7f80038995e663f8c84ac8b32423362d290eb | | spotbugs-annotations-4.1.2-javadoc.jar | 24767403128c0ecf1f96a6309d243ac471c2ba6686d945d90c7e5a4435244ca5 | | spotbugs-annotations-4.1.2-sources.jar | b338136e3e82d585348cde58a8fe3a678e16f51a35c31c1463e05fefef557aad | | spotbugs-annotations.jar | f5cc685edd99ccae7e9b851613146cf49f2557a4e056dfdd8e7906fe919f826f | | spotbugs-ant-4.1.2-javadoc.jar | c0f510848cb6729531353898c3e3256d2ea68e3b21bcb305a1a2b8db581b7f85 | | spotbugs-ant-4.1.2-sources.jar | c74dec42c0ed0dd1ae02a7410d8e0f0dbbee23e8e7da4a21910863677fcdbc8e | | spotbugs-ant.jar | a9f1c4ea228ce3c4bb11065b26806f5e2d4ffe457a95a012166b11a58164cc19 | | spotbugs.jar | 819963733311a55503e185bee7debed6983aa54ca7a7cb91643e0fe18287bf0e | | test-harness-4.1.2-javadoc.jar | f1f94b227af60404f0b4634aa60bf68ef963d23c46e26b3a704822164fe70002 | | test-harness-4.1.2-sources.jar | 2c1f5ef929453f3b682c7eb7c1e22db3082b5f74c5a5be439be5dc31dd7a31aa | | test-harness-4.1.2.jar | e6d72665dcaed1afd413541f211992924ffc2d4d64dc54f1a8f0bfa494853596 | | test-harness-core-4.1.2-javadoc.jar | cc9dcfee824f7a245f34e9988e432b44784e0ba27712805a67919501d8eb5179 | | test-harness-core-4.1.2-sources.jar | f320f5eb4069e9686b760b2a6a0760989753225f9e9ce1226e3258ec64795d8a | | test-harness-core-4.1.2.jar | de97934146238f9ae23707bd14e3cea3f12bd89f3dde2b6b0648e41f11815418 | | test-harness-jupiter-4.1.2-javadoc.jar | 84e341982a3f3c8020a47fc7879a0ad9036169b3859165b53a9d7990168dcc4b | | test-harness-jupiter-4.1.2-sources.jar | 210353a57016e26b1a654d936a15f039613fa1ac532d485c1b1d03902f6c6315 | | test-harness-jupiter-4.1.2.jar | 17e8d78d1868f86e63f3e5e3d878e86f3d7fb1b8cf1a8d5f893333c982bfd3e2 |

    Source code(tar.gz)
    Source code(zip)
    spotbugs-4.1.2-source.zip(3.66 MB)
    spotbugs-4.1.2.tgz(12.22 MB)
    spotbugs-4.1.2.tgz.asc(821 bytes)
    spotbugs-4.1.2.zip(12.24 MB)
    spotbugs-4.1.2.zip.asc(821 bytes)
  • 4.1.1(Jul 30, 2020)

    CHANGELOG

    • https://github.com/spotbugs/spotbugs/blob/4.1.1/CHANGELOG.md

    CHECKSUM

    | file | checksum (sha256) | | ---- | ----------------- | | spotbugs-4.1.1-javadoc.jar | c32ee94fb3574b1650d46d9cea024c086ac8ec3e018e74bfb5af3a6827ca3806 | | spotbugs-4.1.1-sources.jar | fb6c6887a0665d1178575a22603661cb0e8816a16e302a2f47a9ab56d9f505c4 | | spotbugs-4.1.1.tgz | bc31c8d567067ba646fcd5e2e988b31c6f1ff8c444162b76914388b76b409f27 | | spotbugs-4.1.1.zip | 0d073986bef1016a3feaeadfca97bba46f3eefd98fcfdcba52f8f173eca7c4a7 | | spotbugs-annotations-4.1.1-javadoc.jar | 412920d392c7d433541afb905ffdc7f22998f0c2417c2f697a9c996cef703bc7 | | spotbugs-annotations-4.1.1-sources.jar | b338136e3e82d585348cde58a8fe3a678e16f51a35c31c1463e05fefef557aad | | spotbugs-annotations.jar | 347f4c363db00c0a71da23698bdbb2aa8ede321a56aa41eae2e89ad9731d5288 | | spotbugs-ant-4.1.1-javadoc.jar | 2344c3e5a6d4a19211a4ad2b14ecfd0ba8817299ce0b8c4f670b3490e18e3db2 | | spotbugs-ant-4.1.1-sources.jar | c74dec42c0ed0dd1ae02a7410d8e0f0dbbee23e8e7da4a21910863677fcdbc8e | | spotbugs-ant.jar | a9f1c4ea228ce3c4bb11065b26806f5e2d4ffe457a95a012166b11a58164cc19 | | spotbugs.jar | 8cdf641bc6b46fafc856eeaff436996fb7ac8e746b02521329b0b7d4161cad20 | | test-harness-4.1.1-javadoc.jar | 5fae8ea76f9738067091126b8dbb9ba7acafbc99dc0d1645cb75f4ccd3c47277 | | test-harness-4.1.1-sources.jar | 2c1f5ef929453f3b682c7eb7c1e22db3082b5f74c5a5be439be5dc31dd7a31aa | | test-harness-4.1.1.jar | e6d72665dcaed1afd413541f211992924ffc2d4d64dc54f1a8f0bfa494853596 | | test-harness-core-4.1.1-javadoc.jar | 25a086a7b45bd89d0ada1ab352b0f2f5b476a901559c503eb3524a9db0bbc81a | | test-harness-core-4.1.1-sources.jar | f320f5eb4069e9686b760b2a6a0760989753225f9e9ce1226e3258ec64795d8a | | test-harness-core-4.1.1.jar | de97934146238f9ae23707bd14e3cea3f12bd89f3dde2b6b0648e41f11815418 | | test-harness-jupiter-4.1.1-javadoc.jar | 852c7886d989042dbb07971052fb875b92e2e8fd946699869a973b1684d58248 | | test-harness-jupiter-4.1.1-sources.jar | 210353a57016e26b1a654d936a15f039613fa1ac532d485c1b1d03902f6c6315 | | test-harness-jupiter-4.1.1.jar | 17e8d78d1868f86e63f3e5e3d878e86f3d7fb1b8cf1a8d5f893333c982bfd3e2 |

    Source code(tar.gz)
    Source code(zip)
    spotbugs-4.1.1-source.zip(3.66 MB)
    spotbugs-4.1.1.tgz(12.22 MB)
    spotbugs-4.1.1.tgz.asc(821 bytes)
    spotbugs-4.1.1.zip(12.24 MB)
    spotbugs-4.1.1.zip.asc(821 bytes)
  • 4.1.0(Jul 29, 2020)

    CHANGELOG

    • https://github.com/spotbugs/spotbugs/blob/4.1.0/CHANGELOG.md

    CHECKSUM

    | file | checksum (sha256) | | ---- | ----------------- | | spotbugs-4.1.0-javadoc.jar | 25abcf49578fc2ebab7afec54609fd3cb6697bea7141841817d1159a161a5bed | | spotbugs-4.1.0-sources.jar | fb6c6887a0665d1178575a22603661cb0e8816a16e302a2f47a9ab56d9f505c4 | | spotbugs-4.1.0.tgz | a55e5de1bfc402adf69d94560d4cc05a558564d3dc695e306c4d8d177725c69a | | spotbugs-4.1.0.zip | 4408822136647d26f02d6e5ab9b47a2b66c5156694a626822bc55544c5a69985 | | spotbugs-annotations-4.1.0-javadoc.jar | 761b305fa3f7af5ce9769324ffc7b51e0b5be6305f9980e23a7aa30f0d128e20 | | spotbugs-annotations-4.1.0-sources.jar | b338136e3e82d585348cde58a8fe3a678e16f51a35c31c1463e05fefef557aad | | spotbugs-annotations.jar | d646d273fb78ba3b15d6ae6e74a91249ca1c807c6082fd4e30b47185dd584714 | | spotbugs-ant-4.1.0-javadoc.jar | 6edac0cceafab35e8bde0b3620dd09914a1b2511e2e98557e9fde38894a6dd7a | | spotbugs-ant-4.1.0-sources.jar | c74dec42c0ed0dd1ae02a7410d8e0f0dbbee23e8e7da4a21910863677fcdbc8e | | spotbugs-ant.jar | a9f1c4ea228ce3c4bb11065b26806f5e2d4ffe457a95a012166b11a58164cc19 | | spotbugs.jar | b9c5841a82040ecaffb81a796d1927397ad2a67dc22d5d7df85c160e42ba5d39 | | test-harness-4.1.0-javadoc.jar | 6fee1b2b61c50631d4349ddf089124e71f80c1df857b309e126c51861a20b678 | | test-harness-4.1.0-sources.jar | 2c1f5ef929453f3b682c7eb7c1e22db3082b5f74c5a5be439be5dc31dd7a31aa | | test-harness-4.1.0.jar | e6d72665dcaed1afd413541f211992924ffc2d4d64dc54f1a8f0bfa494853596 | | test-harness-core-4.1.0-javadoc.jar | 6d1d45b6124cb75ff038304fc034c2b52fec003a9a96e3aeaae0a65d69ddfc89 | | test-harness-core-4.1.0-sources.jar | f320f5eb4069e9686b760b2a6a0760989753225f9e9ce1226e3258ec64795d8a | | test-harness-core-4.1.0.jar | de97934146238f9ae23707bd14e3cea3f12bd89f3dde2b6b0648e41f11815418 | | test-harness-jupiter-4.1.0-javadoc.jar | ec78a4196fa9adf9190b2a5346b2afbb31f4832b076c75b5be5117411dbd4741 | | test-harness-jupiter-4.1.0-sources.jar | 210353a57016e26b1a654d936a15f039613fa1ac532d485c1b1d03902f6c6315 | | test-harness-jupiter-4.1.0.jar | 17e8d78d1868f86e63f3e5e3d878e86f3d7fb1b8cf1a8d5f893333c982bfd3e2 |

    Source code(tar.gz)
    Source code(zip)
    spotbugs-4.1.0-source.zip(3.66 MB)
    spotbugs-4.1.0.tgz(12.22 MB)
    spotbugs-4.1.0.tgz.asc(821 bytes)
    spotbugs-4.1.0.zip(12.24 MB)
    spotbugs-4.1.0.zip.asc(821 bytes)
  • 4.0.6(Jun 23, 2020)

    CHANGELOG

    • https://github.com/spotbugs/spotbugs/blob/4.0.6/CHANGELOG.md

    CHECKSUM

    | file | checksum (sha256) | | ---- | ----------------- | | spotbugs-4.0.6-javadoc.jar | 97c237438f7fd2a72a24c1ac71e663d59638b4fc3a1ffd982bf2a8c060528fc6 | | spotbugs-4.0.6-sources.jar | 7a98d7b31bad531c2fd86fb6bbefcd20572906fa0147e525847052ba2d10d821 | | spotbugs-4.0.6.tgz | 9fa5d77421a34c44a647bf1e03f75e9767c69aea35d626f41330ead7f84bd45e | | spotbugs-4.0.6.zip | e7cf2cfc55cfef74e9259dc71fc21186be8968833ec96f3e2d2bd7781890c3e0 | | spotbugs-annotations-4.0.6-javadoc.jar | c59eedd60d5e4a2a73fea02b8104e7648a10c5b8cd2cb282e48042543863cc72 | | spotbugs-annotations-4.0.6-sources.jar | b338136e3e82d585348cde58a8fe3a678e16f51a35c31c1463e05fefef557aad | | spotbugs-annotations.jar | 7b42ae56ce79dce6fa02d2f8422547c79b9e4f984320db967361400322bc3fd3 | | spotbugs-ant-4.0.6-javadoc.jar | bf0866c165ace734f40c8898e1fc7c5480fc84d3390f4fb68822635cf4b3c611 | | spotbugs-ant-4.0.6-sources.jar | c74dec42c0ed0dd1ae02a7410d8e0f0dbbee23e8e7da4a21910863677fcdbc8e | | spotbugs-ant.jar | a9f1c4ea228ce3c4bb11065b26806f5e2d4ffe457a95a012166b11a58164cc19 | | spotbugs.jar | d4568b95e6af0f4e5eb1ed9ebda50c6b69a9263c47c92872fa25dcdea8dc7089 | | test-harness-4.0.6-javadoc.jar | 4ff3feabf689a72e1f3906b2897e68c9112182e307d6e4f8f6ea2e7ecaae9089 | | test-harness-4.0.6-sources.jar | 2c1f5ef929453f3b682c7eb7c1e22db3082b5f74c5a5be439be5dc31dd7a31aa | | test-harness-4.0.6.jar | e6d72665dcaed1afd413541f211992924ffc2d4d64dc54f1a8f0bfa494853596 | | test-harness-core-4.0.6-javadoc.jar | 34f39cfcc80b56908f778977a9170e7e8d3a684abb784babdee8a6988389f661 | | test-harness-core-4.0.6-sources.jar | f320f5eb4069e9686b760b2a6a0760989753225f9e9ce1226e3258ec64795d8a | | test-harness-core-4.0.6.jar | de97934146238f9ae23707bd14e3cea3f12bd89f3dde2b6b0648e41f11815418 | | test-harness-jupiter-4.0.6-javadoc.jar | 5958fe8d67f31b6d24781df01bbb8253a326d95733138538342d46be87deb5a5 | | test-harness-jupiter-4.0.6-sources.jar | 210353a57016e26b1a654d936a15f039613fa1ac532d485c1b1d03902f6c6315 | | test-harness-jupiter-4.0.6.jar | 17e8d78d1868f86e63f3e5e3d878e86f3d7fb1b8cf1a8d5f893333c982bfd3e2 |

    Source code(tar.gz)
    Source code(zip)
    spotbugs-4.0.6-source.zip(3.64 MB)
    spotbugs-4.0.6.tgz(23.11 MB)
    spotbugs-4.0.6.tgz.asc(821 bytes)
    spotbugs-4.0.6.zip(23.13 MB)
    spotbugs-4.0.6.zip.asc(821 bytes)
  • 4.0.5(Jun 20, 2020)

    CHANGELOG

    • https://github.com/spotbugs/spotbugs/blob/4.0.5/CHANGELOG.md

    CHECKSUM

    | file | checksum (sha256) | | ---- | ----------------- | | spotbugs-4.0.5-javadoc.jar | caad8841d0eba0daf27584b5fcfe00b50d005b5dc76052797c182c58dcbffb65 | | spotbugs-4.0.5-sources.jar | 6e96c6bb9c09de3e527ab8bf77de8bd3a4eb6071d8420febe3b20fba04d37200 | | spotbugs-4.0.5.tgz | c04eec3d0a144236802dd78ad4d4e7893568d6a066b5e3e5c3ae996082e36d18 | | spotbugs-4.0.5.zip | fc1f769834aee627896d4a06ddba4e8f136bb6d94a91012b4f9f39fccf7eea42 | | spotbugs-annotations-4.0.5-javadoc.jar | 0d4105d55089033b09e32381b99eb46731e0ce2e2471a26dc9b6879682cf539f | | spotbugs-annotations-4.0.5-sources.jar | b338136e3e82d585348cde58a8fe3a678e16f51a35c31c1463e05fefef557aad | | spotbugs-annotations.jar | 3b86a42dc462c7a468a938ce9ea2bd55bfb919441e0b1893d813687b2fac4273 | | spotbugs-ant-4.0.5-javadoc.jar | 951ee6595e4d96b59e8435e613f1755951dc4469147c5d98765669ad3b0f3e9d | | spotbugs-ant-4.0.5-sources.jar | c74dec42c0ed0dd1ae02a7410d8e0f0dbbee23e8e7da4a21910863677fcdbc8e | | spotbugs-ant.jar | a9f1c4ea228ce3c4bb11065b26806f5e2d4ffe457a95a012166b11a58164cc19 | | spotbugs.jar | 2534ef33850b988431e1686ebee7625eb194e7bf3c70476f1213c2c00e0ea7c1 | | test-harness-4.0.5-javadoc.jar | 6ae7845c988495fb3205eb58c08ba2f337ad37033b4430396440f268b0c5d457 | | test-harness-4.0.5-sources.jar | 2c1f5ef929453f3b682c7eb7c1e22db3082b5f74c5a5be439be5dc31dd7a31aa | | test-harness-4.0.5.jar | e6d72665dcaed1afd413541f211992924ffc2d4d64dc54f1a8f0bfa494853596 | | test-harness-core-4.0.5-javadoc.jar | 094749e39b2af25c841f5e2d445705ca4eb5bd8d24b14d46afb58fefe7a9fd99 | | test-harness-core-4.0.5-sources.jar | f320f5eb4069e9686b760b2a6a0760989753225f9e9ce1226e3258ec64795d8a | | test-harness-core-4.0.5.jar | de97934146238f9ae23707bd14e3cea3f12bd89f3dde2b6b0648e41f11815418 | | test-harness-jupiter-4.0.5-javadoc.jar | baa0ed8199f29624e696d9797dc8ea32ef0c62047d777049c36e89fa904f7969 | | test-harness-jupiter-4.0.5-sources.jar | 210353a57016e26b1a654d936a15f039613fa1ac532d485c1b1d03902f6c6315 | | test-harness-jupiter-4.0.5.jar | 17e8d78d1868f86e63f3e5e3d878e86f3d7fb1b8cf1a8d5f893333c982bfd3e2 |

    Source code(tar.gz)
    Source code(zip)
    spotbugs-4.0.5-source.zip(3.64 MB)
    spotbugs-4.0.5.tgz(23.11 MB)
    spotbugs-4.0.5.tgz.asc(821 bytes)
    spotbugs-4.0.5.zip(23.13 MB)
    spotbugs-4.0.5.zip.asc(821 bytes)
  • 4.0.4(Jun 8, 2020)

    CHANGELOG

    • https://github.com/spotbugs/spotbugs/blob/4.0.4/CHANGELOG.md

    CHECKSUM

    | file | checksum (sha256) | | ---- | ----------------- | | spotbugs-4.0.4-javadoc.jar | 1662005c2ba2e8c9b4eff2e9c8554d61575271ec273dfccad66bcf115e4f4bea | | spotbugs-4.0.4-sources.jar | ae6f7109565e4c5a5b204569b41954bcd2f8d9badca2fc3e5cfdffe53576336f | | spotbugs-4.0.4.tgz | eff36aff1ce8d3326d317919aa0d7e92361d535b823befc26b7cf8e598ca660d | | spotbugs-4.0.4.zip | 204adbdaa0fa51fedf738b405a1fda65c693f39c66f754e8c4f93323a2c77a8d | | spotbugs-annotations-4.0.4-javadoc.jar | 9eea9f952c3e23e53479c4249318f219d188533eb43457a62d47f1c6c367a0cc | | spotbugs-annotations-4.0.4-sources.jar | b338136e3e82d585348cde58a8fe3a678e16f51a35c31c1463e05fefef557aad | | spotbugs-annotations.jar | 460da898f7696e40b109687a0099240ab36e8b442987df222454b0e5595f3c9d | | spotbugs-ant-4.0.4-javadoc.jar | 6b8b2d738e38fb0744e53b5480d7077b5076723f8c0fd08e9cff4a57bb0997f3 | | spotbugs-ant-4.0.4-sources.jar | c74dec42c0ed0dd1ae02a7410d8e0f0dbbee23e8e7da4a21910863677fcdbc8e | | spotbugs-ant.jar | a9f1c4ea228ce3c4bb11065b26806f5e2d4ffe457a95a012166b11a58164cc19 | | spotbugs.jar | 1388a164d1129508e780c9ba76f58c3ce8e36fa65d6824c4bbcbafe8e60dbf51 | | test-harness-4.0.4-javadoc.jar | dacb076e59e912be320cc269bb8a8411de8ccb156fb7017663bb748dc84cc559 | | test-harness-4.0.4-sources.jar | 2c1f5ef929453f3b682c7eb7c1e22db3082b5f74c5a5be439be5dc31dd7a31aa | | test-harness-4.0.4.jar | e6d72665dcaed1afd413541f211992924ffc2d4d64dc54f1a8f0bfa494853596 | | test-harness-core-4.0.4-javadoc.jar | 205a3a90820f4c4f6fb78ea061b56dd077eb7b9097dfe2c34e30bc7cc4b62b47 | | test-harness-core-4.0.4-sources.jar | f320f5eb4069e9686b760b2a6a0760989753225f9e9ce1226e3258ec64795d8a | | test-harness-core-4.0.4.jar | de97934146238f9ae23707bd14e3cea3f12bd89f3dde2b6b0648e41f11815418 | | test-harness-jupiter-4.0.4-javadoc.jar | 2cc61d478c2683a78f32323221b56b0154da5f46a66309a7dc953acd9592f6f4 | | test-harness-jupiter-4.0.4-sources.jar | 210353a57016e26b1a654d936a15f039613fa1ac532d485c1b1d03902f6c6315 | | test-harness-jupiter-4.0.4.jar | 17e8d78d1868f86e63f3e5e3d878e86f3d7fb1b8cf1a8d5f893333c982bfd3e2 |

    Source code(tar.gz)
    Source code(zip)
    spotbugs-4.0.4-source.zip(3.64 MB)
    spotbugs-4.0.4.tgz(23.12 MB)
    spotbugs-4.0.4.tgz.asc(821 bytes)
    spotbugs-4.0.4.zip(23.14 MB)
    spotbugs-4.0.4.zip.asc(821 bytes)
  • 4.0.3(May 12, 2020)

  • 4.0.2(Apr 15, 2020)

  • 4.0.1(Mar 18, 2020)

  • 4.0.0(Feb 16, 2020)

  • 4.0.0_rc3(Feb 7, 2020)

  • 4.0.0_rc1(Jan 19, 2020)

  • 4.0.0_beta5(Jan 14, 2020)

  • 4.0.0_beta4(Sep 17, 2019)

  • 4.0.0_beta3(Jun 23, 2019)

  • 4.0.0_beta2(May 21, 2019)

  • 4.0.0_beta1(Apr 1, 2019)

  • 3.1.12(Mar 1, 2019)

  • 3.1.11(Jan 21, 2019)

  • 3.1.10(Dec 17, 2018)

  • 3.1.9(Nov 22, 2018)

  • 3.1.8(Oct 16, 2018)

The new home of the FindBugs project

FindBugs is now SpotBugs Old FindBugs site. New SpotBugs site. Project development continues here: https://github.com/spotbugs/spotbugs Please read th

The FindBugs project 669 Jul 25, 2021
:coffee: SonarSource Static Analyzer for Java Code Quality and Security

Code Quality and Security for Java This SonarSource project is a code analyzer for Java projects. Information about the analysis of Java features is a

SonarSource 801 Jul 27, 2021
A tool to help eliminate NullPointerExceptions (NPEs) in your Java code with low build-time overhead

NullAway: Fast Annotation-Based Null Checking for Java NullAway is a tool to help eliminate NullPointerExceptions (NPEs) in your Java code. To use Nul

Uber Open Source 3k Jul 26, 2021
Tackle Data-intensive Validity Analyzer

Tackle-DiVA (Data-intensive Validity Analyzer) Tackle-DiVA is a command-line tool for data-centric application analysis. It imports a set of target ap

Konveyor 7 Jul 13, 2021
Inria 1.2k Jul 27, 2021
A static analyzer for Java, C, C++, and Objective-C

Infer Infer is a static analysis tool for Java, C++, Objective-C, and C. Infer is written in OCaml. Installation Read our Getting Started page for det

Facebook 12.4k Jul 27, 2021
An extensible multilanguage static code analyzer.

PMD About PMD is a source code analyzer. It finds common programming flaws like unused variables, empty catch blocks, unnecessary object creation, and

PMD 3.5k Jul 20, 2021
Catch common Java mistakes as compile-time errors

Error Prone Error Prone is a static analysis tool for Java that catches common programming mistakes at compile-time. public class ShortSet { public

Google 5.7k Jul 27, 2021
Your Software. Your Structures. Your Rules.

jQAssistant Master Repository We splitted jQAssistant in multiple single repositories to be able to build a better and more flexible build an release

null 160 Jul 2, 2021
Continuous Inspection

SonarQube Continuous Inspection SonarQube provides the capability to not only show health of an application but also to highlight issues newly introdu

SonarSource 5.9k Jul 24, 2021
Astra: a Java tool for analysing and refactoring Java source code

What is Astra? Astra is a Java tool for analysing and refactoring Java source code. For example: "References to type A should instead reference type B

Alfa 33 Jul 23, 2021
Sourcetrail - free and open-source interactive source explorer

Sourcetrail Sourcetrail is a free and open-source cross-platform source explorer that helps you get productive on unfamiliar source code. Windows: Lin

Coati Software 11.7k Jul 28, 2021
Burp plugin for the 1Password session protocol for use by security researchers. https://bugcrowd.com/agilebits

1Password session analyzer plugin for Burp Suite This repository contains a Burp plugin that adds a special message editor view to Burp to analyze and

1Password 12 Jul 3, 2021