Skip to content

Conversation

renovate[bot]
Copy link

@renovate renovate bot commented Aug 14, 2021

This PR contains the following updates:

Package Change Age Confidence
com.github.spotbugs:spotbugs (source) 4.2.3 -> 4.9.4 age confidence

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

spotbugs/spotbugs (com.github.spotbugs:spotbugs)

v4.9.4

Compare Source

Changed
  • AnnotationMatcher can now ignore bugs if annotation is also applied on methods or fields. Previously only annotations on classes were considered.
  • Add relevant CWE ids to bugs and refer the CWEs in the bug messages (#​3354).
  • Replace LOCAL_VARIABLE_UNKNOWN with exact method name for NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE (#​3485)
Fixed
  • Widen main method recognition according to JEP 445. (#​3371)
  • Do not report US_USELESS_SUPPRESSION_ON_* on methods, fields, parameters, packages or classes with an *.Generated annotation with retention >= class (#​3350)(#​3409)
  • Rewrite some member in ResourceValueFrame.java to Enum (#​2061)
  • Ignore non-interpreted text when looking for FS_BAD_DATE_FORMAT_FLAG_COMBO (#​3387)
  • Fix IllegalArgumentException thrown from FindNoSideEffectMethods detector (#​3320)
  • Do not report RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT when part of a Mockito doAnswer(), doCallRealMethod(), doNothing(), doThrow() or doReturn() call (#​3334)
  • Fix CT_CONSTRUCTOR_THROW false positive with public and private constructors in specific order of methods (#​3417)
  • Fix AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE, AT_NONATOMIC_64BIT_PRIMITIVE and AT_STALE_THREAD_WRITE_OF_PRIMITIVE FP when the relevant code is in private method, which is only called with proper synchronization (#​3428)
  • Do not report RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT when part of a BDDMockito call (#​3441)
  • Fix AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE when field of a local variable is set. (#​3459)
  • Fix AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE FP when there was no compound operation (#​3363)
  • Fix NM_FIELD_NAMING_CONVENTION crash in the TestASM detector (#​3489)
  • Do not report UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR for fields initialized in JUnit 3/4 setUp() method. (#​3169)
  • Fix US_USELESS_SUPPRESSION_ON_FIELD/UUF_UNUSED_FIELD false positive (#​3496)
  • Make the osgi manifest of the annotations jar Java 8 compatible (#​3498) (#​3500)
  • TextUICommandLine supports all options encoded in Eclipse preferences file (#​3520)
  • Unnecessary suppressions fix for records headers (#​3471)
  • Dead store fix when switch case contains loops (#​3530) (#​3449)
  • Consider PUTFIELD and PUTSTATIC when looking for assertions with side effects (#​3463)
  • Detect cases when equals() unconditionally returns true or false (#​3528)
  • Do not report that an Iterator does not throw NoSuchElementException when hasNext() returns true (#​3501)
  • Detect random value cast to int when stored in temporary variable (#​3461)
  • Look for interfaces default methods when searching uncalled private methods (#​1988)
  • Fixed field self assignment false positive (#​2258)
  • Fixed DMI_INVOKING_TOSTRING_ON_ARRAY on newer JDK (#​1147)
  • Fix NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE false positive with Objects.requireNonNull (#​2965) (#​3573)
  • Track inner classes access methods to correctly report the bugs (#​2029)
  • SF_SWITCH_NO_DEFAULT false positive fix (#​1148) (#​3572)
Added
  • Added the unnecessary annotation to the US_USELESS_SUPPRESSION_ON_* messages (#​3395)
  • Multi-threaded code checks can be skipped with @NotThreadSafe (#​3390)
  • New bug type CWO_CLOSED_WITHOUT_OPENED for locks that might be released without even being acquired. (See SEI CERT rule LCK08-J) (#​2055)
    • Breaking change: changed values and new items in ResourceValueFrame.
  • Inline access method for method. (#​3481)
  • Added DMI_MISLEADING_SUBSTRING for calling subString(0) on a StringBuffer/StringBuilder (#​1928)
Signing
  • Signing for Eclipse plugin has been removed at the current time due to signing keys being expired. The expired key produced a warning during install, the same is true without signing.

v4.9.3

Compare Source

Added
  • Introduced UselessSuppressionDetector to report the useless annotations instead of NoteSuppressedWarnings (#​3348)
Fixed
  • Do not report US_USELESS_SUPPRESSION_ON_METHOD on synthetic methods (#​3351)

v4.9.2

Compare Source

Added
  • Reporting useless @SuppressFBWarnings annotations (#​641)
Fixed
  • Fixed html bug descriptions for AT_STALE_THREAD_WRITE_OF_PRIMITIVE and AT_NONATOMIC_64BIT_PRIMITIVE (#​3303)
  • Fixed an HSM_HIDING_METHOD false positive when ECJ generates a synthetic method for an enum switch (#​3305)
  • Fix AT_UNSAFE_RESOURCE_ACCESS_IN_THREAD false negatives, detector depending on method order.
  • Fix THROWS_METHOD_THROWS_CLAUSE_THROWABLE reported in a method calling MethodHandle.invokeExact due to its polymorphic signature (#​3309)
  • Fix AT_STALE_THREAD_WRITE_OF_PRIMITIVE false positive in inner class (#​3310).
  • Fix AT_STALE_THREAD_WRITE_OF_PRIMITIVE false positive for ECJ compiled enum switches (#​3316)
  • Fix RC_REF_COMPARISON false positive with Lombok With annotation (#​3319)
  • Avoid calling File.getCanonicalPath twice to improve performance (#​3325)
  • Fix MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR and MC_OVERRIDABLE_METHOD_CALL_IN_CLONE false positive when the overridable method is outside the class (#​3328).
  • Fix NullPointerException thrown from ThrowingExceptions detector (#​3337).
Removed
  • Removed the TLW_TWO_LOCK_NOTIFY, LI_LAZY_INIT_INSTANCE, BRSA_BAD_RESULTSET_ACCESS, BC_NULL_INSTANCEOF, NP_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR and RCN_REDUNDANT_CHECKED_NULL_COMPARISON deprecated bug patterns.

v4.9.1

Compare Source

Added
  • New detector SharedVariableAtomicityDetector for new bug types AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE, AT_NONATOMIC_64BIT_PRIMITIVE and AT_STALE_THREAD_WRITE_OF_PRIMITIVE (See SEI CERT rules VNA00-J, VNA02-J and VNA05-J).
  • New detector FindHiddenMethod for bug type HSM_HIDING_METHOD. This bug is reported whenever a subclass method hides the static method of super class. (See SEI CERT MET07-J).
Fixed
  • Fixed the parsing of generics methods in ThrowingExceptions (#​3267)
  • Accept the 1st parameter of java.util.concurrent.CompletableFuture's completeOnTimeout(), getNow() and obtrudeValue() functions as nullable (#​1001).
  • Fixed the analysis error when FindReturnRef was checking instructions corresponding to a CFG branch that was optimized away (#​3266)
  • Added execute file permission to files in the distribution archive (#​3274)
  • Fixed a stack overflow in MultipleInstantiationsOfSingletons when a singleton initializer makes recursive calls (#​3280)
  • Fixed NPE in FindReturnRef on inner class fields (#​3283)
  • Fixed NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE false positive when add edu.umd.cs.findbugs.annotations.Nullable (#​3243)

v4.9.0

Compare Source

Added
  • Updated the SuppressFBWarnings annotation to support finer grained bug suppressions (#​3102)
  • SimpleDateFormat, DateTimeFormatter, FastDateFormat string check for bad combinations of flag formatting (#​637)
  • New detector ResourceInMultipleThreadsDetector and introduced new bug type:
    • AT_UNSAFE_RESOURCE_ACCESS_IN_THREAD is reported in case of unsafe resource access in multiple threads.
Fixed
  • Do not consider Records as Singletons (#​2981)
  • Keep a maximum of 10000 cached analysis entries for plugin's analysis engines (#​3025)
  • Only report MC_OVERRIDABLE_METHOD_CALL_IN_READ_OBJECT when calling own methods (#​2957)
  • Check the actual caught exceptions (instead of their common type) when analyzing multi-catch blocks (#​2968)
  • System property findbugs.refcomp.reportAll is now being used. For some new conditions, it will emit an experimental warning (#​2988)
  • -version flag prints the version to the standard output (#​2797)
  • Revert the changes from (#​2894) to get HTML stylesheets to work again (#​2969)
  • Fix FP SING_SINGLETON_GETTER_NOT_SYNCHRONIZED report when the synchronization is in a called method (#​3045)
  • Let BetterCFGBuilder2.isPEI handle dup2 bytecode used by Spring AOT (#​3059)
  • Detect failure to close RocksDB's ReadOptions (#​3069)
  • Fix FP EI_EXPOSE_REP when there are multiple immutable assignments (#​3023)
  • Fixed false positive NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR for Kotlin, handle Kotlin's Intrinsics.checkNotNullParameter() (#​3094)
  • Fixed some CWE mappings (#​3124)
  • Recognize some classes as immutable, fixing EI_EXPOSE and MS_EXPOSE FPs (#​3137)
  • Do not report UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR for fields initialized in method annotated with TestNG's @​BeforeClass. (#​3152)
  • Fixed detector FindReturnRef not finding references exposed from nested and inner classes (#​2042)
  • Fix call graph, include non-parametric void methods (#​3160)
  • Fix multiple reporting of identical bugs messing up statistics (#​3185)
  • Added missing comma between line number and confidence when describing matching and mismatching bugs for tests (#​3187)
  • Fixed method matchers with array types (#​3203)
  • Fix SARIF report's message property in Exception to meet the standard (#​3197)
  • Fixed FI_FINALIZER_NULLS_FIELDS FPs for functions called finalize() but not with the correct signature. (#​3207)
  • Fixed an error in the detection of bridge methods causing analysis crashes (#​3208)
  • Fixed detector ThrowingExceptions by removing false positive reports, such as synthetic methods (lambdas), methods which inherited their exception specifications and methods which call throwing methods (#​2040)
  • Do not report DP_DO_INSIDE_DO_PRIVILEGED, DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED and USC_POTENTIAL_SECURITY_CHECK_BASED_ON_UNTRUSTED_SOURCE in code targeting Java 17 and above, since it advises the usage of deprecated method (#​1515).
  • Fixed a RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT false positive for a builder delegating to another builder (#​3235)
Cleanup
  • Cleanup thread issue and regex issue in test-harness (#​3130)
  • Remove extra blank lines and remove public from interface objects as inherently already public (#​3131)
  • Fix order of modifiers on properties/methods and ensure correct location in file (#​3132, #​3177)
  • Return objects directly instead of creating more garbage collection by defining them (#​3133, #​3175)
  • Restrict the constructor of abstract classes visibility to protected (#​3178)
  • Cleanup double initialization and fix comments referring to findbugs instead of spotbugs(#​3134)
  • Use diamond operator in constructor calls of Collections (#​3176)
  • Use Collection.isEmpty() or String.isEmpty() to test for emptiness (#​3180, #​3219)
  • Use method references instead of lambdas where possible (#​3179)
  • Move default clauses to the end of switches (#​3222)
  • Remove unnecessary throws declarations (#​3220)
  • Use Boolean.parseBoolean() for string-to-boolean conversion. (#​3217)
  • Rename shadowing fields (#​3221)
  • Combine catch blocks with the same body (#​3223)
  • Merge conditions of nested ifs (#​3231)
  • Use non deprecated 'getDottedClassName' instead of 'toDottedClassName'(#​3251)
  • Use try with resources where possible (#​3253)
Changed
  • Bump up Java version to 11

v4.8.6

Compare Source

Fixed
  • Do not report BC_UNCONFIRMED_CAST for Java 21's type switches when the switch instruction is TABLESWITCH (#​2782)
  • Do not throw exception when inspecting empty switch statements (#​2995)
  • Adjust priority since relaxed mode reports even IGNORED_PRIORITY (#​2994)
  • Fix duplicated log4j2 jar in distribution (#​3001)

v4.8.5

Compare Source

Fixed
  • Fix FP SING_SINGLETON_GETTER_NOT_SYNCHRONIZED with eager instances (#​2932)
  • Fix FPs when looking for multiple initialization of Singletons (#​2934)
  • Do not report DLS_DEAD_LOCAL_STORE for Java 21's type switches when switch instruction is TABLESWITCH(#​2736)
  • Fix FP SE_BAD_FIELD for record fields (#​2935)

v4.8.4

Compare Source

Fixed
  • Fix FP in SE_PREVENT_EXT_OBJ_OVERWRITE when the if statement checking for null value, checking multiple variables or the method exiting in the if branch with an exception. (#​2750)
  • Fix possible null value in taxonomies of SARIF output (#​2744)
  • Fix executionSuccessful flag in SARIF report being set to false when bugs were found (#​2116)
  • Move information contained in the SARIF property exitSignalName to exitCodeDescription (#​2739)
  • Do not report SE_NO_SERIALVERSIONID or other serialization issues for records (#​2793)
  • Added support for CONSTANT_Dynamic (#​2759)
  • Ignore generic variable types when looking for BC_UNCONFIRMED_CAST_OF_RETURN_VALUE (#​1219)
  • Do not report BC_UNCONFIRMED_CAST for Java 21's type switches (#​2813)
  • Remove AppleExtension library (note: menus slightly changed) (#​2823)
  • Fix false positive NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE even if Objects.requireNonNull is used. (#​651, #​456)
  • Fixed error preventing SpotBugs from reporting FE_FLOATING_POINT_EQUALITY (#​2843)
  • Fixed NP_LOAD_OF_KNOWN_NULL_VALUE and RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE false positives in try-with-resources generated finally blocks (#​2844)
  • Do not report DLS_DEAD_LOCAL_STORE for Java 21's type switches (#​2828)
  • Update UnreadFields detector to ignore warnings for fields with certain annotations (#​574)
  • Do not report UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR for fields initialized in method annotated with @​PostConstruct, @​BeforeEach, etc. (#​2872 #​2870 #​453)
  • Do not report DLS_DEAD_LOCAL_STORE for Hibernate bytecode enhancements (#​2865)
  • Fixed NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE false positives due to source code formatting (#​2874)
  • Added more nullability annotations in TypeQualifierResolver (#​2558 #​2694)
  • Improved the bug description for VA_FORMAT_STRING_USES_NEWLINE when using text blocks, check the usage of String.formatted() (#​2881)
  • Fixed crash in ValueRangeAnalysisFactory when looking for redundant conditions used in assertions (#​2887)
  • Revert again commons-text from 1.11.0 to 1.10.0 to resolve a version conflict (#​2686)
  • Fixed false positive MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR when referencing but not calling an overridable method (#​2837)
  • Update the filter XSD namespace and location for the upcoming 4.8.4 release (#​2909)
Added
  • New detector MultipleInstantiationsOfSingletons and introduced new bug types:
    • SING_SINGLETON_HAS_NONPRIVATE_CONSTRUCTOR is reported in case of a non-private constructor,
    • SING_SINGLETON_IMPLEMENTS_CLONEABLE is reported in case of a class directly implementing the Cloneable interface,
    • SING_SINGLETON_INDIRECTLY_IMPLEMENTS_CLONEABLE is reported when a class indirectly implements the Cloneable interface,
    • SING_SINGLETON_IMPLEMENTS_CLONE_METHOD is reported when a class does not implement the Cloneable interface, but has a clone() method,
    • SING_SINGLETON_IMPLEMENTS_SERIALIZABLE is reported when a class directly or indirectly implements the Serializable interface and
    • SING_SINGLETON_GETTER_NOT_SYNCHRONIZED is reported when the instance-getter method of the singleton class is not synchronized.
      (See SEI CERT MSC07-J)
  • Extend FindOverridableMethodCall detector with new bug type: MC_OVERRIDABLE_METHOD_CALL_IN_READ_OBJECT. It's reported when an overridable method is called from readObject(), according to SEI CERT rule SER09-J. Do not invoke overridable methods from the readObject() method.
Changed
  • Minor cleanup in connection with slashed and dotted names (#​2805)
Build
  • Fix sonar coverage for project (#​2796)
  • Upgraded the build to compile bug samples using Java 21 language features (#​2813)
  • Add 'configurations.checkstyle resolution starategy' to control bug in gradle on exclusions not being excluded properly as seen in checkstyle usage. See https://github.com/checkstyle/checkstyle/issues/14211 for more information. (#​2798)
  • Allow our builds to work with jdk 11 with drop back on Eclipse to 4.24 and spring to 5.3.31. (#​2604)

v4.8.3

Compare Source

Fixed
  • Fix FP in CT_CONSTRUCTOR_THROW when the finalizer does not run, since the exception is thrown before java.lang.Object's constructor exits for checked exceptions (#​2710)
  • Applied changes for bcel 6.8.0 with adjustments to constant pool (#​2756)
    • More information bcel changes can be found on (#​2757)
  • Fix FN in CT_CONSTRUCTOR_THROW when the return value of the called method is not void or primitive type.
  • Fix FP in CT_CONSTRUCTOR_THROW when exception throwing lambda is created, but not called in constructor (#​2695)
Changed
  • Improved Matcher checks for empty strings (#​2755)
  • Allow 'onlyAnalyze' option to specify negative matches, such that this facility can be used to prevent a subset of classes to be excluded from analysis (#​2754)
  • Strictly require logback 1.2.13 due to CVE-2023-6481 and CVE-23-6378 (#​2760)
  • Prefer log4j2 at 2.22.0 and logback at 1.4.14 (#​2760)

v4.8.2

Compare Source

Fixed
  • Fixed false positive UPM_UNCALLED_PRIVATE_METHOD for method used in JUnit's MethodSource (#​2379)
  • Use java.nio to load filter files (#​2684)
  • Eclipse: Do not export javax.annotation packages (#​2699)
  • Fixed not thread safe FindOverridableMethodCall detector (#​2701)
  • Fix the weird messages of PI_DO_NOT_REUSE_PUBLIC_IDENTIFIERS bugs. (#​2646)
  • Revert commons-text from 1.11.0 to 1.10.0 to resolve a version conflict (#​2686)
  • Fix FP in CT_CONSTRUCTOR_THROW when the finalizer does not run, since the exception is thrown before java.lang.Object's constructor exits (#​2710)
Added
  • New detector finding System.getenv() calls, where the corresponding Java property could be used (See ENV02-J).
Build
  • Run build using jdk 17 and 21 without usage of toolchains so we do not defeat the purpose of building on both. (#​2722)

v4.8.1

Compare Source

Fixed
  • Fixed schema location for findbugsfilter.xsd (#​1416)
  • Fixed missing null checks (#​2629)
  • Disabled DontReusePublicIdentifiers due to the high false positives rate (#​2627)
  • Removed signature of methods using UTF-8 in DefaultEncodingDetector (#​2634)
  • Fix exception escapes when calling functions of JUnit Assert or Assertions (#​2640)
  • Fixed an error in the SARIF export when a bug annotation is missing (#​2632)
  • Fixed false positive RV_EXCEPTION_NOT_THROWN when asserting to exception throws (#​2628)
  • Fix false positive CT_CONSTRUCTOR_THROW when supertype has final finalize (#​2665)
  • Lowered the priority of PA_PUBLIC_MUTABLE_OBJECT_ATTRIBUTE bug (#​2652)
  • Eclipse: fixed startup overhead (on computing classpath) for PDE projects (#​2671)
Build
  • Fix deprecated GHA on '::set-output' by using GITHUB_OUTPUT (#​2651)

v4.8.0

Compare Source

Changed
  • Bump up Apache Commons BCEL to the version 6.6.1 (#​2223)
  • Bump up slf4j-api to 2.0.3 (#​2220)
  • Bump up gson to 2.10 (#​2235)
  • Allowed for large command line through writing arguments to file (UnionResults/UnionBugs2)
  • Use com.github.stephenc.jcip for jcip-annotations fixing (#​887)
  • Bump ObjectWeb ASM from 9.4 to 9.6, supporting JDK 21 (#​2578)
Fixed
  • Fixed missing classes not in report if using IErrorLogger.reportMissingClass(ClassDescriptor) (#​219)
  • Stop exposing junit-bom to consumers (#​2255)
  • Fixed AbstractBugReporter emits wrong non-sensical debug output during filtering (#​184)
  • Added support for jakarta namespace (#​2289)
  • Report a low priority bug for an unread field in reflective classes (#​2325)
  • Fixed "Unhandled event loop exception" opening Bug Filter Configuration dialog in Eclipse (#​2327)
  • Fixed detector RandomOnceSubDetector to not report when doubles, ints, or longs are called on a new Random or SecureRandom (#​2370)
  • Fixed detector TestASM throwing error during analysis, because it doesn't note that it reports bugs.
  • Eclipse annotation classpath initializer is hard-coded to jsr305 version 3.0.1, fix to 3.0.2 per #​2470
  • Fixed annotation on generic or array incorrectly considered for the nullability of a method parameter or return type (#​2502)
  • Added support for CONSTANT_Dynamic in constant class pool (#​2506)
  • Recognise enums and records as immutable (#​2356)
  • Added detections of reliance on default encoding in java.nio.file.Files (#​2114)
  • Fixed a regression in the Value Number Analysis (#​2465)
  • Fix XML Output incorrectly escaped in Eclipse Bug Info view (#​2520)
  • Updated the MS_EXPOSE_REP description to mention mutable objects, not just arrays (#​1669)
  • Described Configuration option frc.suspicious for bug RC_REF_COMPARISON in bug description (#​2297)
  • Fixed FindHEMismatch not reporting HE_SIGNATURE_DECLARES_HASHING_OF_UNHASHABLE_CLASS for some classes (#​2402)
  • Added execute file permission to files in the distribution zip (#​2540)
  • Do not report RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT when part of a Mockito.verify() call check (#​872)
  • Do not report SIC_INNER_SHOULD_BE_STATIC for classes annotated with JUnit Nested (#​560)
  • Detect created, but not-thrown exceptions, which are created by not the constructor (#​2547)
  • Fixed eclipse plugin Effort.values pass to effortViewer as required cast to varargs (#​2579)
Added
  • New simple name-based AnnotationMatcher for exclude files (now bug annotations store the class java annotations in an attribute called classAnnotationNames). For example, use like in an excludeFilter.xml to ignore classes generated by the Immutable framework. This ignores all class, method or field bugs in classes with that annotation.
  • Added the Common Weakness Enumeration (CWE) taxonomy to the Static Analysis Results Interchange Format (SARIF) report. The short and long description for the CWEs are retrived from a JSON file which is a slimmed down version of the official comprehensive CWE XML from MITRE. The JSON contains information about all CWEs. (#​2410).
  • New detector FindAssertionsWithSideEffects detecting bug ASSERTION_WITH_SIDE_EFFECT and ASSERTION_WITH_SIDE_EFFECT_METHOD in case of assertions which may have side effects (See EXP06-J. Expressions used in assertions must not produce side effects)
  • New rule set PA_PUBLIC_PRIMITIVE_ATTRIBUTE, PA_PUBLIC_ARRAY_ATTRIBUTE and PA_PUBLIC_MUTABLE_OBJECT_ATTRIBUTE to warn for public attributes which are written by the methods of the class. This rule is loosely based on the SEI CERT rule OBJ01-J Limit accessibility of fields. (#OBJ01-J)
  • Extend SerializableIdiom detector with new bug type: SE_PREVENT_EXT_OBJ_OVERWRITE. It's reported in case of the readExternal() method allows any caller to reset any value of an object
  • New Detector FindVulnerableSecurityCheckMethods for new bug type VSC_VULNERABLE_SECURITY_CHECK_METHODS. This bug is reported whenever a non-final and non-private method of a non-final class performs a security check using the java.lang.SecurityManager. (See [SEI CERT MET03-J] (https://wiki.sei.cmu.edu/confluence/display/java/MET03-J.+Methods+that+perform+a+security+check+must+be+declared+private+or+final))
  • New function added to detector SynchronizationOnSharedBuiltinConstantto detect DL_SYNCHRONIZATION_ON_INTERNED_STRING (#​2266)
  • Make TypeQualifierResolver recognize org.apache.avro.reflect.Nullable (#​2066)
  • New detector FindArgumentAssertions detecting bug ASSERTION_OF_ARGUMENTS in case of validation of arguments of public functions using assertions (See MET01-J. Never use assertions to validate method arguments)
  • Add new detector CT_CONSTRUCTOR_THROW for detecting constructors that throw exceptions.
  • New detector DontReusePublicIdentifiers for new bug type PI_DO_NOT_REUSE_PUBLIC_IDENTIFIERS. This bug is reported whenever a new class, interface, field, method or variable is created reusing an identifier from the Java Standard Library . (See SEI CERT rule DCL01-J)
Security
  • Disable access to external entities when processing XML (#​2217)
Build
  • Bump Eclipse from 4.6.3 to 4.14 (#​2314)
  • Use jakarta annotation 1.3.5 instead of legacy javax annotation 1.3.2 (#​2315)
  • Change hamcrest-all to hamcrest-core as that is what was actually used and then update to 2.2 (#​2316)
  • Only run release action on 'spotbugs' and use Eclipse 4.14 (#​2317)
  • Prefer log4j2 2.20.0 (#​2480)
  • Prefer logback 1.4.8 (#​2480)
  • Prefer logback 1.4.11 (#​2580)
  • Switch junit 4 for junit 5 vintage engine (#​2483)
  • LineEndings and Spotless (#​2343)
    • Cleanup gitattributes switching text to auto. For developers using windows, run 'git add . --renormalize' and see https://docs.github.com/en/get-started/getting-started-with-git/configuring-git-to-handle-line-endings if needed.
    • Rework spotless setup from plugin to build file plugin matching that of gradle plugin and thus allowing spotless to be updated to 6.22.0
    • Remove customized line endings for spotless so it uses git attributes as suggested by spotless
    • Add trimTrailingWhitespace for spotless
    • Fix deprecated usage of eclipse version from 4.13.0 to 4.13 per spotless requirements
  • Bump spotbugs gradle plugin to 6.0.0-beta.3 demonstrating breaking changes for 6.0.0 in gradle/java.gradle build file (#​2582)
  • Delete checked in j2ee jar and instead use servlet/ejb apis from jakarta (javax standard) (#​2585)
  • Bump Eclipse from 4.14 to 4.29 (latest) (#​2589)
  • Cleanup hamcrest imports / used library (#​2600)
  • Migrate entirely to junit 5 (#​2605)
    • Some parts of codebase were junit 3
    • Delete the SpotbugsRule
    • Replace custom java determination on build with Junit 5 usage
    • Various 'public' methods in tests fixed to 'private'
    • Junit 5 styling applied throughout
    • Add missing code to the SpotBugsRunner and now use the Extension as replacement of SpotbugsRule

v4.7.3

Compare Source

Fixed
  • Fixed detector DontUseFloatsAsLoopCounters to prevent false positives. (#​2126)
  • Fixed regression in 4.7.2 caused by (#​2141)
  • improve compatibility with later version of jdk (>= 13). (#​2188)
  • Fixed detector UncallableMethodOfAnonymousClass to not report unused methods of method-local enumerations and records (#​2120)
  • Fixed detector FindSqlInjection to detect bug SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE SQL with high priority in case of unsafe appends also in Java 11 and above (#​2183)
  • Fixed detector StringConcatenation to detect bug SBSC_USE_STRINGBUFFER_CONCATENATION also in Java 11 and above (#​2182)
  • Fixed OpcodeStackDetector to handle propagation of taints properly in case of string concatenation in Java 9 and above (#​2195)
  • Bump up log4j2 binding to 2.19.0
  • Bump ObjectWeb ASM from 9.3 to 9.4 supporting JDK 20 (#​2200)
  • Bump up commons-text to 1.10.0 (#​2197)
  • Fixed debug detector ViewCFG to generate file names that are also valid on Windows (#​2209)

v4.7.2

Compare Source

Fixed
  • Bumped gson from 2.9.0 to 2.9.1 (#​2136)
  • Bump up SLF4J API to 2.0.0
  • Bump up logback to 1.4.0
  • Bump up log4j2 binding to 2.18.0
  • Bump up Saxon-HE to 11.4 (#​2160)
  • Fixed InvalidInputException in Eclipse while bug reporting (#​2134)
  • Bug SA_FIELD_SELF_ASSIGNMENT is now reported from nested classes as well (#​2142)
  • Avoid warning on use of security manager on Java 17 and newer. (#​1579)
  • Fixed false positives EI_EXPOSE_REP thrown in case of fields initialized by the of or copyOf method of a List, Map or Set (#​1771)
  • Fixed CFGBuilderException thrown when dup_x2 is used to swap the reference and wide-value (double, long) in the stack (#​2146)

v4.7.1

Compare Source

Fixed
  • Fixed False positives for RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE on try-with-resources with interface references (#​1931)
  • Fixed NullPointerException thrown by detector FindPotentialSecurityCheckBasedOnUntrustedSource on Kotlin files. (#​2041)
  • Disabled detector ThrowingExceptions by default to avoid many false positives (#​2040)
  • Fixed False positives for THROWS_METHOD_THROWS_CLAUSE_BASIC_EXCEPTION and THROWS_METHOD_THROWS_CLAUSE_THROWABLE on evaluating synthetic classes (#​2040)
  • Fixed False positive for SSD_DO_NOT_USE_INSTANCE_LOCK_ON_SHARED_STATIC_DATA on proper protection by using static lock for synchronized block, but inside an unsecured (synchronized and not static) method (#​2089)

v4.7.0

Compare Source

Changed
  • Updated documentation by adding parenthesis () to the negative odd check message (#​1995)
  • Let the Plugin class implement AutoCloseable so we can release the .jar file (#​2024)
Fixed
  • Fixed reports to truncate existing files before writing new content (#​1950)
  • Bumped Saxon-HE from 10.6 to 11.3 (#​1955, #​1999)
  • Fixed traversal of nested archives governed by -nested:true (#​1930)
  • Warnings of deprecated System::setSecurityManager calls on Java 17 (#​1983)
  • Fixed false positive SSD bug for locking on java.lang.Class objects (#​1978)
  • FindReturnRef throws an IllegalArgumentException unexpectedly (#​2019)
  • Bump ObjectWeb ASM from 9.2 to 9.3 supporting JDK 19 (#​2004)
Added
  • New detector ThrowingExceptions and introduced new bug types:
    • THROWS_METHOD_THROWS_RUNTIMEEXCEPTION is reported in case of a method throwing RuntimeException,
    • THROWS_METHOD_THROWS_CLAUSE_BASIC_EXCEPTION is reported when a method has Exception in its throws clause and
    • THROWS_METHOD_THROWS_CLAUSE_THROWABLE is reported when a method has Throwable in its throws clause (See SEI CERT ERR07-J)
  • New rule PERM_SUPER_NOT_CALLED_IN_GETPERMISSIONS to warn for custom class loaders who do not call their superclasses' getPermissions() in their getPermissions() method. This rule based on the SEI CERT rule SEC07-J Call the superclass's getPermissions() method when writing a custom class loader. (#SEC07-J)
  • New rule USC_POTENTIAL_SECURITY_CHECK_BASED_ON_UNTRUSTED_SOURCE to detect cases where a non-final method of a non-final class is called from public methods of public classes and then the same method is called on the same object inside a doPrivileged block. Since the called method may have been overridden to behave differently on the first and second invocations this is a possible security check based on an unreliable source. This rule is based on SEC02-J. Do not base security checks on untrusted sources. (#SEC02-J)
  • New detector DontUseFloatsAsLoopCounters to detect usage of floating-point variables as loop counters (FL_FLOATS_AS_LOOP_COUNTERS), according to SEI CERT rules NUM09-J. Do not use floating-point variables as loop counters
  • New test detector ViewCFG to visualize the control-flow graph for SpotBugs developers

v4.6.0

Compare Source

Fixed
  • Fixed spotbugs build with ecj compiler (#​1903)
  • Moved tests from spotbugs project to spotbugs-tests project (#​1914)
  • Fixed UI freezes in Eclipse on bug count decorations update (#​285)
  • Bumped log4j from 2.17.1 to 2.17.2 (#​1960)
  • Bumped gson from 2.8.9 to 2.9.0 (#​1960)
Added
  • New detector FindInstanceLockOnSharedStaticData for new bug type SSD_DO_NOT_USE_INSTANCE_LOCK_ON_SHARED_STATIC_DATA. This detector reports a bug if an instance level lock is used to modify a shared static data. (See SEI CERT rule LCK06-J)

v4.5.3

Compare Source

Security
Fixed
  • Remove duplicated logging frameworks from the Eclipse plugin distribution (#​1868)
  • Corrected class name validation to no longer fail for Kotlin classes on class path containing special characters. (#​1883)

v4.5.2

Compare Source

Security
Fixed

v4.5.1

Compare Source

Fixed
  • Ant task does not produce XML anymore (#​1827)
  • Do not emit false positives of MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR and MC_OVERRIDABLE_METHOD_CALL_IN_CLONE for final classes (#​1812).
  • Reports cannot be created on Windows platform (#​1842)

v4.5.0

Compare Source

Changed
  • Replace "分析" with "解析" in Japanese document (#​1573)
  • Add a section to document how to integrate find-sec-bugs into spotbugs-maven-plugin (#​540)
  • Bump gson from 2.8.8 to 2.8.9 (#​1784)
  • Changes related to dominators analysis in package edu.umd.cs.findbugs.classfile.engine.bcel ([#​1741](https://redirect.github.com/spotbugs/spotb

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from 32efa59 to e4390c3 Compare September 10, 2021 07:50
@renovate renovate bot changed the title Update dependency com.github.spotbugs:spotbugs to v4.4.0 Update dependency com.github.spotbugs:spotbugs to v4.4.1 Sep 10, 2021
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from e4390c3 to 3be5edd Compare October 12, 2021 01:08
@renovate renovate bot changed the title Update dependency com.github.spotbugs:spotbugs to v4.4.1 Update dependency com.github.spotbugs:spotbugs to v4.4.2 Oct 12, 2021
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from 3be5edd to acbb527 Compare October 14, 2021 11:40
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch 2 times, most recently from f58efb6 to 1cd1d53 Compare October 23, 2021 04:44
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from 1cd1d53 to 81ba7e5 Compare November 11, 2021 11:25
@renovate renovate bot changed the title Update dependency com.github.spotbugs:spotbugs to v4.4.2 Update dependency com.github.spotbugs:spotbugs to v4.5.0 Nov 11, 2021
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from 81ba7e5 to d5470a0 Compare December 8, 2021 03:59
@renovate renovate bot changed the title Update dependency com.github.spotbugs:spotbugs to v4.5.0 Update dependency com.github.spotbugs:spotbugs to v4.5.1 Dec 8, 2021
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from d5470a0 to 6c9a59c Compare December 14, 2021 00:31
@renovate renovate bot changed the title Update dependency com.github.spotbugs:spotbugs to v4.5.1 Update dependency com.github.spotbugs:spotbugs to v4.5.2 Dec 14, 2021
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from 6c9a59c to 5e6d47b Compare January 5, 2022 08:31
@renovate renovate bot changed the title Update dependency com.github.spotbugs:spotbugs to v4.5.2 Update dependency com.github.spotbugs:spotbugs to v4.5.3 Jan 5, 2022
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from 5e6d47b to bd6ec39 Compare January 8, 2022 21:42
@renovate renovate bot changed the title Update dependency com.github.spotbugs:spotbugs to v4.5.3 Update dependency com.github.spotbugs:spotbugs to v4.6.0 Mar 8, 2022
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from bd6ec39 to b925496 Compare March 8, 2022 03:22
@renovate renovate bot changed the title Update dependency com.github.spotbugs:spotbugs to v4.6.0 chore(deps): update dependency com.github.spotbugs:spotbugs to v4.6.0 Mar 12, 2022
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from b925496 to b354637 Compare May 5, 2022 00:02
@renovate renovate bot changed the title chore(deps): update dependency com.github.spotbugs:spotbugs to v4.6.0 chore(deps): update dependency com.github.spotbugs:spotbugs to v4.7.0 May 5, 2022
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from b354637 to 186755c Compare September 25, 2022 18:39
@renovate renovate bot changed the title chore(deps): update dependency com.github.spotbugs:spotbugs to v4.7.0 chore(deps): update dependency com.github.spotbugs:spotbugs to v4.7.2 Sep 25, 2022
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from 186755c to 66a9208 Compare November 20, 2022 12:04
@renovate renovate bot changed the title chore(deps): update dependency com.github.spotbugs:spotbugs to v4.7.2 chore(deps): update dependency com.github.spotbugs:spotbugs to v4.7.3 Nov 20, 2022
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from 66a9208 to 2569a8a Compare October 12, 2023 03:53
@renovate renovate bot changed the title chore(deps): update dependency com.github.spotbugs:spotbugs to v4.7.3 chore(deps): update dependency com.github.spotbugs:spotbugs to v4.8.0 Oct 12, 2023
@renovate renovate bot changed the title chore(deps): update dependency com.github.spotbugs:spotbugs to v4.8.0 chore(deps): update dependency com.github.spotbugs:spotbugs to v4.8.1 Nov 7, 2023
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from 2569a8a to fe1db3d Compare November 7, 2023 04:59
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from fe1db3d to 9f5cfda Compare November 29, 2023 16:34
@renovate renovate bot changed the title chore(deps): update dependency com.github.spotbugs:spotbugs to v4.8.1 chore(deps): update dependency com.github.spotbugs:spotbugs to v4.8.2 Nov 29, 2023
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from 9f5cfda to cc91731 Compare December 13, 2023 09:28
@renovate renovate bot changed the title chore(deps): update dependency com.github.spotbugs:spotbugs to v4.8.2 chore(deps): update dependency com.github.spotbugs:spotbugs to v4.8.3 Dec 13, 2023
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from cc91731 to c03d860 Compare April 8, 2024 03:19
@renovate renovate bot changed the title chore(deps): update dependency com.github.spotbugs:spotbugs to v4.8.3 chore(deps): update dependency com.github.spotbugs:spotbugs to v4.8.4 Apr 8, 2024
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from c03d860 to a834580 Compare May 4, 2024 03:09
@renovate renovate bot changed the title chore(deps): update dependency com.github.spotbugs:spotbugs to v4.8.4 chore(deps): update dependency com.github.spotbugs:spotbugs to v4.8.5 May 4, 2024
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from a834580 to ec968f4 Compare June 18, 2024 03:53
@renovate renovate bot changed the title chore(deps): update dependency com.github.spotbugs:spotbugs to v4.8.5 chore(deps): update dependency com.github.spotbugs:spotbugs to v4.8.6 Jun 18, 2024
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from ec968f4 to 7fe5a8c Compare January 16, 2025 05:35
@renovate renovate bot changed the title chore(deps): update dependency com.github.spotbugs:spotbugs to v4.8.6 chore(deps): update dependency com.github.spotbugs:spotbugs to v4.9.0 Jan 16, 2025
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from 7fe5a8c to adfbe33 Compare February 9, 2025 09:55
@renovate renovate bot changed the title chore(deps): update dependency com.github.spotbugs:spotbugs to v4.9.0 chore(deps): update dependency com.github.spotbugs:spotbugs to v4.9.1 Feb 9, 2025
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from adfbe33 to 341c8de Compare March 1, 2025 21:15
@renovate renovate bot changed the title chore(deps): update dependency com.github.spotbugs:spotbugs to v4.9.1 chore(deps): update dependency com.github.spotbugs:spotbugs to v4.9.2 Mar 1, 2025
@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from 341c8de to 194c5c5 Compare March 15, 2025 05:57
@renovate renovate bot changed the title chore(deps): update dependency com.github.spotbugs:spotbugs to v4.9.2 chore(deps): update dependency com.github.spotbugs:spotbugs to v4.9.3 Mar 15, 2025
Copy link

Code Climate has analyzed commit 194c5c5 and detected 0 issues on this pull request.

View more on Code Climate.

@renovate renovate bot force-pushed the renovate/com.github.spotbugs-spotbugs-4.x branch from 194c5c5 to 0948aa5 Compare August 10, 2025 01:25
@renovate renovate bot changed the title chore(deps): update dependency com.github.spotbugs:spotbugs to v4.9.3 chore(deps): update dependency com.github.spotbugs:spotbugs to v4.9.4 Aug 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants