| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| eclipsePlugin.zip | 2026-06-08 | 10.8 MB | |
| spotbugs-4.10.0-SNAPSHOT-source.zip | 2026-06-08 | 4.1 MB | |
| spotbugs-4.10.0-SNAPSHOT.tgz | 2026-06-08 | 16.3 MB | |
| spotbugs-4.10.0-SNAPSHOT.zip | 2026-06-08 | 16.3 MB | |
| 4.10.0 source code.tar.gz | 2026-06-08 | 4.7 MB | |
| 4.10.0 source code.zip | 2026-06-08 | 7.3 MB | |
| README.md | 2026-06-08 | 17.3 kB | |
| Totals: 7 Items | 59.5 MB | 0 | |
SpotBugs 4.10.0-SNAPSHOT
CHANGELOG
Refactor
- Move internal usage of 'javax.annotation.Nonnull' to 'jakarta.annotation.NonNull'. (#3858)
- Move internal usage of 'javax.annotation.Nullable' to 'jakarta.annotation.Nullable'. (#3861)
- Renamed methods from
edu.umd.cs.findbugs.SwitchHandlerto reflect that they return a PC, not an offset (#3869) - Make the progress bar more visually appealing by adding some borders (#3896)
- Reuse DismantleBytecode.isIf introduced in (#3869)
Added
- Add partial support for
org.jspecify.annotations.Nullable,org.jspecify.annotations.NonNull,org.jspecify.annotations.NullUnmarkedandorg.jspecify.annotations.NullMarkedannotations. These are aliased to the closest existing SpotBugs nullness annotations. This is not a complete implementation of the JSpecify spec; scope-level semantics of@NullMarkedand@NullUnmarkedare not yet supported. (#3996) - Recognize
jakarta.annotation.Nonnullandjakarta.annotation.Nullable(#3780) - Detect use of
sun.misc.Unsafeandjdk.internal.misc.Unsafe(#3804) - New bug type is introduced:
NCR_NOT_PROPERLY_CHECKED_READ. Improper validation of the return value from the read() method in InputStream and Reader classes may result in an array not being fully filled. (#3766) - New detector
FindImproperSynchronizationand introduced new bug types:USO_UNSAFE_METHOD_SYNCHRONIZATIONis reported when using synchronized methods with the class' accessible intrinsic lock,USO_UNSAFE_STATIC_METHOD_SYNCHRONIZATIONis reported when using static synchronized methods with the class' exposed intrinsic lock,USO_UNSAFE_OBJECT_SYNCHRONIZATIONis reported when the lock used for synchronization is visible from the outside,USO_UNSAFE_ACCESSIBLE_OBJECT_SYNCHRONIZATIONis reported when the lock used for synchronization is made accessible, with methods that update or return the lock, to the outside,USO_UNSAFE_INHERITABLE_OBJECT_SYNCHRONIZATIONis reported when the lock used for synchronization is can be altered by subclasses,USO_UNSAFE_EXPOSED_OBJECT_SYNCHRONIZATIONis reported when the lock used for synchronization is later exposed in the subclasses.USBC_UNSAFE_SYNCHRONIZATION_WITH_BACKING_COLLECTIONis reported when the backing collection of a lock is visible from the outside,USBC_UNSAFE_SYNCHRONIZATION_WITH_ACCESSIBLE_BACKING_COLLECTIONis reported when the backing collection of a lock is made accessible, with methods that update or return the lock, to the outside,USBC_UNSAFE_SYNCHRONIZATION_WITH_INHERITABLE_BACKING_COLLECTIONis reported when the backing collection of a lock can be altered by subclasses. (See SEI CERT rule LCK00-J and SEI CERT rule LCK04-J)
- New detector
FindIncreasedAccessibilityOfMethodsfor new bug typeIAOM_DO_NOT_INCREASE_METHOD_ACCESSIBILITY. This detector reports a bug if a class increases the accessibility of overridden or hidden methods. (See SEI CERT rule MET04-J)
Fixed
- Fix
DM_STRING_TOSTRINGfalse negative whentoString()is chained before a method call (e.g.,s.toString().toLowerCase()); multiple occurrences in the same method are now all reported (#3966) - Stop exposing JUnit BOM as a transitive dependency to consumers (#3908)
- Fix incorrect bug counts and sizes when unioning reports (#3721)
- Classes containing only methods throwing
UnsupportedOperationExceptionwith setter-like names are no longer considered as mutable (#1601) - Enhanced SARIF output with full description sections - adding markdown is still an open issue (#2339)
- Added missing null check to
MultipleInstantiationsOfSingletonsdetector (#3823) - Fix invalid syntax in findbugsfilter.xsd (#3832)
- Fix
CT_CONSTRUCTOR_THROWFP with public and private constructors (#3822) - Fix tool name in usage info, (#3847)
- Fix the building of relative chains of ./././ in filenames in fbp files (#3852)
- Fix IllegalArgumentException initializing spotbugs when inside a fat jar on Java 25 (#3875)
- Do not report
DM_DEFAULT_ENCODINGfor classes compiled with target >= 18 (#3866) - Fix
FS_BAD_DATE_FORMAT_FLAG_COMBOnot suppressed by field-level annotation (#3838) - Fix
SF_SWITCH_FALLTHROUGHfalse positives (#3767) - Recognize well-known exception-throwing utility methods when looking for exceptions thrown from constructors (#3821)
- Fix
RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUEfalse negative when non-null value is on the left side of null comparison (#3920) - Fix
IM_BAD_CHECK_FOR_ODDfalse negative when using Yoda-style comparison (1 == i % 2) (#3886) - Fix
PluginLoader.close()to continue closing allURLClassLoaders when one close operation fails, suppressing subsequentIOExceptions. (#3958) - Fix broken
bugDescriptions.html#TYPElinks by restoring legacy bug type anchors in generated docs (#2113) - Fix
EI_EXPOSE_REPfalse negative in package-private classes that expose mutable state through methods overriding a public super-type (#4027) - Fix errors in the 4.40 Eclipse in SpotBugs plugin project (#4052)
Removed
- Removed old deprecated methods:
assertPresentBugPattern(String, IMarker[])protected method fromde.tobject.findbugs.test.AbstractQuickfixTestdeprecated since 2014,setFontSizeHelper(Component[], float)protected method fromedu.umd.cs.findbugs.gui2.FBFramedeprecated since 2010,matchedPrefixes(String[], String)method fromedu.umd.cs.findbugs.gui2.ViewFilterdeprecated since 2010,lookupFromUniqueId(String)method fromedu.umd.cs.findbugs.BugCollectionandedu.umd.cs.findbugs.SortedBugCollectiondeprecated since 2006,create(BugReporter)method fromedu.umd.cs.findbugs.DetectorFactorydeprecated since 2008,instantiateDetectorsInPass(BugReporter)method fromedu.umd.cs.findbugs.plan.AnalysisPassdeprecated since 2008,getMessage(String)method fromedu.umd.cs.findbugs.I18Ndeprecated since 2019,getElementSignature()method fromedu.umd.cs.findbugs.OpcodeStack.Itemdeprecated since 2008,getFieldAnnotation()method fromedu.umd.cs.findbugs.OpcodeStack.Itemdeprecated since 2006,PluginLoader(URL)andPluginLoader(URL, ClassLoader)constructors fromedu.umd.cs.findbugs.PluginLoaderdeprecated since 2010,addSourceDir(String)method fromedu.umd.cs.findbugs.Projectdeprecated since 2017,getImplicitClasspathEntryList()method fromedu.umd.cs.findbugs.Projectdeprecated since 2008,write(String, boolean, String)method fromedu.umd.cs.findbugs.Projectdeprecated since 2007,getInteger(String, int)method fromedu.umd.cs.findbugs.SystemPropertiesdeprecated since 2010,getId()method fromedu.umd.cs.findbugs.ba.BasicBlockdeprecated since 2010,getArgument(InvokeInstruction, ConstantPoolGen, int, int)method fromedu.umd.cs.findbugs.ba.Framedeprecated since 2010,findDeclaredExceptions(InvokeInstruction, ConstantPoolGen)method fromedu.umd.cs.findbugs.ba.Hierarchydeprecated since 2008,findConcreteMethod(JavaClass, String, String)method fromedu.umd.cs.findbugs.ba.Hierarchydeprecated since 2007,findXMethod(JavaClass, String, String, JavaClassAndMethodChooser)method fromedu.umd.cs.findbugs.ba.Hierarchydeprecated since 2007,findXMethod(JavaClass[], String, String)method fromedu.umd.cs.findbugs.ba.Hierarchydeprecated since 2007,findXMethod(JavaClass[], String, String, JavaClassAndMethodChooser)method fromedu.umd.cs.findbugs.ba.Hierarchydeprecated since 2007,findMethod(JavaClass[], String, String)method fromedu.umd.cs.findbugs.ba.Hierarchydeprecated since 2007,isConcrete(XMethod)method fromedu.umd.cs.findbugs.ba.Hierarchydeprecated since 2007,doesMethodUnconditionallyThrowException(XMethod, JavaClass, Method)method fromedu.umd.cs.findbugs.ba.PruneUnconditionalExceptionThrowerEdgesdeprecated since 2008,nameAndSignatureIsCalled(XMethod)method fromedu.umd.cs.findbugs.ba.XFactorydeprecated since 2020,isInterned(XMethod)method fromedu.umd.cs.findbugs.ba.XFactorydeprecated since 2007,canonicalizeString(String)method fromedu.umd.cs.findbugs.ba.XFactorydeprecated since 2017,findXFieldFromValueNumber(Method, Location, ValueNumber, ValueNumberFrame)method fromedu.umd.cs.findbugs.ba.npe.NullDerefAndRedundantComparisonFinderdeprecated since 2008,findFieldAnnotationFromValueNumber(Method, Location, ValueNumber, ValueNumberFrame)method fromedu.umd.cs.findbugs.ba.npe.NullDerefAndRedundantComparisonFinderdeprecated since 2008,findLocalAnnotationFromValueNumber(Method, Location, ValueNumber, ValueNumberFrame)method fromedu.umd.cs.findbugs.ba.npe.NullDerefAndRedundantComparisonFinderdeprecated since 2008,findAnnotationFromValueNumber(Method, Location, ValueNumber, ValueNumberFrame)method fromedu.umd.cs.findbugs.ba.npe.NullDerefAndRedundantComparisonFinderdeprecated since 2008,compact(int[], int)method fromedu.umd.cs.findbugs.ba.vna.ValueNumberFactorydeprecated since 2008,fromResourceName(String)method fromedu.umd.cs.findbugs.classfile.ClassDescriptordeprecated since 2008,fromFieldSignature(String)method fromedu.umd.cs.findbugs.classfile.ClassDescriptordeprecated since 2008,isClassResource(String)method fromedu.umd.cs.findbugs.classfile.ClassDescriptordeprecated since 2008,createClassDescriptorFromSignature(String)method fromedu.umd.cs.findbugs.classfile.ClassDescriptordeprecated since 2008,createClassDescriptor(String)method fromedu.umd.cs.findbugs.classfile.ClassDescriptordeprecated since 2008,createClassDescriptor(String[])method fromedu.umd.cs.findbugs.classfile.ClassDescriptordeprecated since 2008,createClassDescriptorFromDottedClassName(String)method fromedu.umd.cs.findbugs.classfile.ClassDescriptordeprecated since 2008,createClassDescriptor(JavaClass)method fromedu.umd.cs.findbugs.classfile.ClassDescriptordeprecated since 2008,canonicalizeString(String)method fromedu.umd.cs.findbugs.classfile.DescriptorFactorydeprecated since 2017,isContainerField(XField)method fromedu.umd.cs.findbugs.detect.UnreadFieldsdeprecated since 2011,getReadFields()method fromedu.umd.cs.findbugs.detect.UnreadFieldsdeprecated since 2011,getWrittenFields()method fromedu.umd.cs.findbugs.detect.UnreadFieldsdeprecated since 2011,isWrittenOutsideOfInitialization(XField)method fromedu.umd.cs.findbugs.detect.UnreadFieldsdeprecated since 2011,isWrittenDuringInitialization(XField)method fromedu.umd.cs.findbugs.detect.UnreadFieldsdeprecated since 2011,isWrittenInConstructor(XField)method fromedu.umd.cs.findbugs.detect.UnreadFieldsdeprecated since 2011,strongEvidenceForIntendedSerialization(ClassDescriptor)method fromedu.umd.cs.findbugs.detect.UnreadFieldsdeprecated since 2011,existsStrongEvidenceForIntendedSerialization(ClassDescriptor)method fromedu.umd.cs.findbugs.detect.UnreadFieldsdeprecated since 2011,isReflexive(XField)method fromedu.umd.cs.findbugs.detect.UnreadFieldsdeprecated since 2011,RelationalOp(String)private constructor fromedu.umd.cs.findbugs.filter.RelationalOpdeprecated since 2008,isLibraryFileName(String)method fromedu.umd.cs.findbugs.util.Archivedeprecated since 2022,replace(String, String, String)method fromedu.umd.cs.findbugs.util.Stringsdeprecated since 2010,toString(Object[])method fromedu.umd.cs.findbugs.util.Stringsdeprecated since 2010,closeSilently(OutputStream)method fromedu.umd.cs.findbugs.util.Utildeprecated since 2018,closeSilently(Closeable)method fromedu.umd.cs.findbugs.util.Utildeprecated since 2018,closeSilently(ZipFile)method fromedu.umd.cs.findbugs.util.Utildeprecated since 2018,getRefConstantOperand()method fromedu.umd.cs.findbugs.visitclass.DismantleBytecodedeprecated since 2010,getDottedFieldSig()method fromedu.umd.cs.findbugs.visitclass.PreorderVisitordeprecated since 2006,compactValueNumbers(Dataflow<ValueNumberFrame, ValueNumberAnalysis>)method fromedu.umd.cs.findbugs.ba.vna.ValueNumberAnalysisdeprecated since 2009.- Removed old deprecated fields:
- String
RELEASEfromedu.umd.cs.findbugs.Versiondeprecated since 2018. - Removed old deprecated classes:
edu.umd.cs.findbugs.NewResultsclass deprecated since 2009,edu.umd.cs.findbugs.classfile.engine.ClassParserUsingBCELclass deprecated since 2007.- Remove deprecated 'Priority' annotation originally deprecated in 2011. Switch to 'Confidence' for same behaviour. (#3746)
Cleanup
- Removed usages of some deprecated methods. (#3842)
CHECKSUM
| file | checksum (sha256) |
|---|---|
| spotbugs-4.10.0-SNAPSHOT-javadoc.jar | 3edd41461d5aea65df6fc429332db45cf80c2541fee3219935c539335aae4efb |
| spotbugs-4.10.0-SNAPSHOT-sources.jar | 76476f61ce6dc0eb0c38801e21da44e77043ba21226aef6c1b9d21df06d2395a |
| spotbugs-4.10.0-SNAPSHOT.tgz | a19419f5625238c1104ed0f0810801e601b39195f817f15beb762ebce91584ec |
| spotbugs-4.10.0-SNAPSHOT.zip | 876d39cdc59c25158287c61e27a7e30887ff597f3e6f3601cdcad4c372284ceb |
| spotbugs-annotations-4.10.0-SNAPSHOT-javadoc.jar | 6b4deda1c6d0de4c9fa55b53a00aedfabdfd5697b610883c50b008375267e3ee |
| spotbugs-annotations-4.10.0-SNAPSHOT-sources.jar | 87974d23caffbc8c6e66c567747627267b5ed06573cee966d7af6d236b8d65bd |
| spotbugs-annotations.jar | a86d49f3f6ab9805c1af4362656b3a2b19738fa216cfa125ab3f2138087d4aef |
| spotbugs-ant-4.10.0-SNAPSHOT-javadoc.jar | b8891065563621ba23288358279b506a67d868d167b2d9001d14121ad99dc944 |
| spotbugs-ant-4.10.0-SNAPSHOT-sources.jar | 91477d93b1fd1bebae35d318427b5238fb458e726478dc1a8ac41ce74838a1e6 |
| spotbugs-ant.jar | 22f2fa397e86663adcd4828cc1c91e63aa6cc2bfc56832885b749a86fac5c784 |
| spotbugs.jar | 521bef4c29a7fb4e9b2a859314c9787cb266d548f499e43d79743663ddb4a37f |
| test-harness-4.10.0-SNAPSHOT-javadoc.jar | 871cb72038d60dceb3fb2e928d4486dcb67592791cede88bc4f05f68a1c3221a |
| test-harness-4.10.0-SNAPSHOT-sources.jar | 805d2d124b0d4ea513ee9262d4ad6027c3471d45defd80fd7d20e23425d17df7 |
| test-harness-4.10.0-SNAPSHOT.jar | bd10d1f11a1b93e4ca4db4d27772f611bd3407f9452dbbd2d1ba62584ddc171f |
| test-harness-core-4.10.0-SNAPSHOT-javadoc.jar | d7e63844711f62edcfcb834abbb2d7f45a81667bbb3c982e1de62c18b0d9e68b |
| test-harness-core-4.10.0-SNAPSHOT-sources.jar | 043a55d99a517c0d9cf702b0c183b4afd3f03af9eff4a86d59bb37df1b35b532 |
| test-harness-core-4.10.0-SNAPSHOT.jar | 1f9a0ee8f150dd71f960ca4f59dcf7912a45d0e9e6aefc4585fd44b975454bc0 |
| test-harness-jupiter-4.10.0-SNAPSHOT-javadoc.jar | daa20b7d625e52a95a72cfe02c78c20fba66e97932ca0f008332348cedb9bf41 |
| test-harness-jupiter-4.10.0-SNAPSHOT-sources.jar | 17144f315686bfd01c02fa4ae7c916060c41de8eed58d5b8470416fa08f46ced |
| test-harness-jupiter-4.10.0-SNAPSHOT.jar | a91146da3e993479cfefd2690781cbd102c6360ecc63a96d88995be3bd60fcbb |