fix(deps): update dependency com.github.spotbugs:spotbugs-annotations to v4 #727
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Note
Mend has cancelled the proposed renaming of the Renovate GitHub app being renamed to
mend[bot].This notice will be removed on 2025-10-07.
This PR contains the following updates:
3.1.12->4.9.6Release Notes
spotbugs/spotbugs (com.github.spotbugs:spotbugs-annotations)
v4.9.6Compare Source
Fixed
jakarta.servlet.http.HttpServletRequestmethod calls (#3711)v4.9.5Compare Source
Fixed
@SuppressFBWarningsannotation (#3622)SF_SWITCH_FALLTHROUGHfalse positive when continuing a loop (#3617)CWO_CLOSED_WITHOUT_OPENEDfalse positive (#3616)SF_SWITCH_NO_DEFAULTfalse positive fix for switch-arrow (#3645)Duplicating value: ...(#3621)Added
Cleanup
v4.9.4Compare Source
Changed
AnnotationMatchercan now ignore bugs if annotation is also applied on methods or fields. Previously only annotations on classes were considered.LOCAL_VARIABLE_UNKNOWNwith exact method name forNP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE(#3485)Fixed
US_USELESS_SUPPRESSION_ON_*on methods, fields, parameters, packages or classes with an*.Generatedannotation with retention >= class (#3350)(#3409)ResourceValueFrame.javato Enum (#2061)FS_BAD_DATE_FORMAT_FLAG_COMBO(#3387)FindNoSideEffectMethodsdetector (#3320)RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECTwhen part of a MockitodoAnswer(),doCallRealMethod(),doNothing(),doThrow()ordoReturn()call (#3334)CT_CONSTRUCTOR_THROWfalse positive with public and private constructors in specific order of methods (#3417)AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE,AT_NONATOMIC_64BIT_PRIMITIVEandAT_STALE_THREAD_WRITE_OF_PRIMITIVEFP when the relevant code is in private method, which is only called with proper synchronization (#3428)RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECTwhen part of a BDDMockito call (#3441)AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLEwhen field of a local variable is set. (#3459)AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLEFP when there was no compound operation (#3363)NM_FIELD_NAMING_CONVENTIONcrash in the TestASM detector (#3489)UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTORfor fields initialized in JUnit 3/4setUp()method. (#3169)US_USELESS_SUPPRESSION_ON_FIELD/UUF_UNUSED_FIELDfalse positive (#3496)TextUICommandLinesupports all options encoded in Eclipse preferences file (#3520)NoSuchElementExceptionwhenhasNext()returns true (#3501)DMI_INVOKING_TOSTRING_ON_ARRAYon newer JDK (#1147)NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUEfalse positive withObjects.requireNonNull(#2965) (#3573)SF_SWITCH_NO_DEFAULTfalse positive fix (#1148) (#3572)Added
US_USELESS_SUPPRESSION_ON_*messages (#3395)@NotThreadSafe(#3390)CWO_CLOSED_WITHOUT_OPENEDfor locks that might be released without even being acquired. (See SEI CERT rule LCK08-J) (#2055)ResourceValueFrame.DMI_MISLEADING_SUBSTRINGfor callingsubString(0)on a StringBuffer/StringBuilder (#1928)Signing
v4.9.3Compare Source
Added
UselessSuppressionDetectorto report the useless annotations instead ofNoteSuppressedWarnings(#3348)Fixed
US_USELESS_SUPPRESSION_ON_METHODon synthetic methods (#3351)v4.9.2Compare Source
Added
@SuppressFBWarningsannotations (#641)Fixed
HSM_HIDING_METHODfalse positive when ECJ generates a synthetic method for an enum switch (#3305)AT_UNSAFE_RESOURCE_ACCESS_IN_THREADfalse negatives, detector depending on method order.THROWS_METHOD_THROWS_CLAUSE_THROWABLEreported in a method callingMethodHandle.invokeExactdue to its polymorphic signature (#3309)AT_STALE_THREAD_WRITE_OF_PRIMITIVEfalse positive in inner class (#3310).AT_STALE_THREAD_WRITE_OF_PRIMITIVEfalse positive for ECJ compiled enum switches (#3316)RC_REF_COMPARISONfalse positive with Lombok With annotation (#3319)MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTORandMC_OVERRIDABLE_METHOD_CALL_IN_CLONEfalse positive when the overridable method is outside the class (#3328).ThrowingExceptionsdetector (#3337).Removed
TLW_TWO_LOCK_NOTIFY,LI_LAZY_INIT_INSTANCE,BRSA_BAD_RESULTSET_ACCESS,BC_NULL_INSTANCEOF,NP_FIELD_NOT_INITIALIZED_IN_CONSTRUCTORandRCN_REDUNDANT_CHECKED_NULL_COMPARISONdeprecated bug patterns.v4.9.1Compare Source
Added
SharedVariableAtomicityDetectorfor new bug typesAT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE,AT_NONATOMIC_64BIT_PRIMITIVEandAT_STALE_THREAD_WRITE_OF_PRIMITIVE(See SEI CERT rules VNA00-J, VNA02-J and VNA05-J).FindHiddenMethodfor bug typeHSM_HIDING_METHOD. This bug is reported whenever a subclass method hides the static method of super class. (See SEI CERT MET07-J).Fixed
ThrowingExceptions(#3267)java.util.concurrent.CompletableFuture'scompleteOnTimeout(),getNow()andobtrudeValue()functions as nullable (#1001).FindReturnRefwas checking instructions corresponding to a CFG branch that was optimized away (#3266)MultipleInstantiationsOfSingletonswhen a singleton initializer makes recursive calls (#3280)FindReturnRefon inner class fields (#3283)v4.9.0Compare Source
Added
SuppressFBWarningsannotation to support finer grained bug suppressions (#3102)ResourceInMultipleThreadsDetectorand introduced new bug type:AT_UNSAFE_RESOURCE_ACCESS_IN_THREADis reported in case of unsafe resource access in multiple threads.Fixed
MC_OVERRIDABLE_METHOD_CALL_IN_READ_OBJECTwhen calling own methods (#2957)findbugs.refcomp.reportAllis now being used. For some new conditions, it will emit an experimental warning (#2988)-versionflag prints the version to the standard output (#2797)SING_SINGLETON_GETTER_NOT_SYNCHRONIZEDreport when the synchronization is in a called method (#3045)BetterCFGBuilder2.isPEIhandledup2bytecode used by Spring AOT (#3059)EI_EXPOSE_REPwhen there are multiple immutable assignments (#3023)NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTORfor Kotlin, handle Kotlin'sIntrinsics.checkNotNullParameter()(#3094)FindReturnRefnot finding references exposed from nested and inner classes (#2042)FI_FINALIZER_NULLS_FIELDSFPs for functions called finalize() but not with the correct signature. (#3207)ThrowingExceptionsby removing false positive reports, such as synthetic methods (lambdas), methods which inherited their exception specifications and methods which call throwing methods (#2040)DP_DO_INSIDE_DO_PRIVILEGED,DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGEDandUSC_POTENTIAL_SECURITY_CHECK_BASED_ON_UNTRUSTED_SOURCEin code targeting Java 17 and above, since it advises the usage of deprecated method (#1515).RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECTfalse positive for a builder delegating to another builder (#3235)Cleanup
Collection.isEmpty()orString.isEmpty()to test for emptiness (#3180, #3219)Boolean.parseBoolean()for string-to-boolean conversion. (#3217)Changed
v4.8.6Compare Source
Fixed
IGNORED_PRIORITY(#2994)v4.8.5Compare Source
Fixed
SING_SINGLETON_GETTER_NOT_SYNCHRONIZEDwith eager instances (#2932)SE_BAD_FIELDfor record fields (#2935)v4.8.4Compare Source
Fixed
executionSuccessfulflag in SARIF report being set to false when bugs were found (#2116)exitSignalNametoexitCodeDescription(#2739)Added
MultipleInstantiationsOfSingletonsand introduced new bug types:SING_SINGLETON_HAS_NONPRIVATE_CONSTRUCTORis reported in case of a non-private constructor,SING_SINGLETON_IMPLEMENTS_CLONEABLEis reported in case of a class directly implementing theCloneableinterface,SING_SINGLETON_INDIRECTLY_IMPLEMENTS_CLONEABLEis reported when a class indirectly implements theCloneableinterface,SING_SINGLETON_IMPLEMENTS_CLONE_METHODis reported when a class does not implement theCloneableinterface, but has aclone()method,SING_SINGLETON_IMPLEMENTS_SERIALIZABLEis reported when a class directly or indirectly implements theSerializableinterface andSING_SINGLETON_GETTER_NOT_SYNCHRONIZEDis reported when the instance-getter method of the singleton class is not synchronized.(See SEI CERT MSC07-J)
FindOverridableMethodCalldetector with new bug type:MC_OVERRIDABLE_METHOD_CALL_IN_READ_OBJECT. It's reported when an overridable method is called fromreadObject(), according to SEI CERT rule SER09-J. Do not invoke overridable methods from the readObject() method.Changed
Build
v4.8.3Compare Source
Fixed
Changed
v4.8.2Compare Source
Fixed
Added
System.getenv()calls, where the corresponding Java property could be used (See ENV02-J).Build
v4.8.1Compare Source
Fixed
PA_PUBLIC_MUTABLE_OBJECT_ATTRIBUTEbug (#2652)Build
v4.8.0Compare Source
Changed
Fixed
RandomOnceSubDetectorto not report whendoubles,ints, orlongsare called on a newRandomorSecureRandom(#2370)TestASMthrowing error during analysis, because it doesn't note that it reports bugs.Added
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.FindAssertionsWithSideEffectsdetecting bugASSERTION_WITH_SIDE_EFFECTandASSERTION_WITH_SIDE_EFFECT_METHODin case of assertions which may have side effects (See EXP06-J. Expressions used in assertions must not produce side effects)PA_PUBLIC_PRIMITIVE_ATTRIBUTE,PA_PUBLIC_ARRAY_ATTRIBUTEandPA_PUBLIC_MUTABLE_OBJECT_ATTRIBUTEto 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)SerializableIdiomdetector with new bug type:SE_PREVENT_EXT_OBJ_OVERWRITE. It's reported in case of thereadExternal()method allows any caller to reset any value of an objectFindVulnerableSecurityCheckMethodsfor new bug typeVSC_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 thejava.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))SynchronizationOnSharedBuiltinConstantto detectDL_SYNCHRONIZATION_ON_INTERNED_STRING(#2266)FindArgumentAssertionsdetecting bugASSERTION_OF_ARGUMENTSin case of validation of arguments of public functions using assertions (See MET01-J. Never use assertions to validate method arguments)CT_CONSTRUCTOR_THROWfor detecting constructors that throw exceptions.DontReusePublicIdentifiersfor new bug typePI_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
Build
v4.7.3Compare Source
Fixed
DontUseFloatsAsLoopCountersto prevent false positives. (#2126)4.7.2caused by (#2141)UncallableMethodOfAnonymousClassto not report unused methods of method-local enumerations and records (#2120)FindSqlInjectionto detect bugSQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE SQLwith high priority in case of unsafe appends also in Java 11 and above (#2183)StringConcatenationto detect bugSBSC_USE_STRINGBUFFER_CONCATENATIONalso in Java 11 and above (#2182)OpcodeStackDetectorto handle propagation of taints properly in case of string concatenation in Java 9 and above (#2195)2.19.0ViewCFGto generate file names that are also valid on Windows (#2209)v4.7.2Compare Source
Fixed
2.0.01.4.02.18.011.4(#2160)SA_FIELD_SELF_ASSIGNMENTis now reported from nested classes as well (#2142)EI_EXPOSE_REPthrown in case of fields initialized by theoforcopyOfmethod of aList,MaporSet(#1771)dup_x2is used to swap the reference and wide-value (double, long) in the stack (#2146)v4.7.1Compare Source
Fixed
RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUEon try-with-resources with interface references (#1931)FindPotentialSecurityCheckBasedOnUntrustedSourceon Kotlin files. (#2041)ThrowingExceptionsby default to avoid many false positives (#2040)THROWS_METHOD_THROWS_CLAUSE_BASIC_EXCEPTIONandTHROWS_METHOD_THROWS_CLAUSE_THROWABLEon evaluating synthetic classes (#2040)SSD_DO_NOT_USE_INSTANCE_LOCK_ON_SHARED_STATIC_DATAon proper protection by using static lock for synchronized block, but inside an unsecured (synchronized and not static) method (#2089)v4.7.0Compare Source
Changed
()to the negative odd check message (#1995)Fixed
-nested:true(#1930)Added
ThrowingExceptionsand introduced new bug types:THROWS_METHOD_THROWS_RUNTIMEEXCEPTIONis reported in case of a method throwing RuntimeException,THROWS_METHOD_THROWS_CLAUSE_BASIC_EXCEPTIONis reported when a method has Exception in its throws clause andTHROWS_METHOD_THROWS_CLAUSE_THROWABLEis reported when a method has Throwable in its throws clause (See SEI CERT ERR07-J)PERM_SUPER_NOT_CALLED_IN_GETPERMISSIONSto warn for custom class loaders who do not call their superclasses'getPermissions()in theirgetPermissions()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)USC_POTENTIAL_SECURITY_CHECK_BASED_ON_UNTRUSTED_SOURCEto 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)DontUseFloatsAsLoopCountersto 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 countersViewCFGto visualize the control-flow graph forSpotBugsdevelopersv4.6.0Compare Source
Fixed
Added
FindInstanceLockOnSharedStaticDatafor new bug typeSSD_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.3Compare Source
Security
Fixed
v4.5.2[Compare Source](https://red
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 is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.