SpotBugs Bug Detector Report
The following document contains the results of SpotBugs
SpotBugs Version is 4.8.6
Threshold is low
Effort is max
Summary
| Classes |
Bugs |
Errors |
Missing Classes |
| 111 |
24 |
0 |
0 |
it.tidalwave.role.impl.AsDelegate
it.tidalwave.role.impl.DefaultContextManager
| Bug |
Category |
Details |
Line |
Priority |
it.tidalwave.role.impl.ServiceLoaderLocator
| Bug |
Category |
Details |
Line |
Priority |
| Format string should use %n rather than \n in it.tidalwave.role.impl.ServiceLoaderLocator.findService(Class) |
BAD_PRACTICE |
VA_FORMAT_STRING_USES_NEWLINE |
95 |
Medium |
it.tidalwave.util.ReflectionUtils
| Bug |
Category |
Details |
Line |
Priority |
| Invocation of reflect.Field.setAccessible(boolean), which should be invoked from within a doPrivileged block, in it.tidalwave.util.ReflectionUtils.injectDependencies(Object, Map) |
MALICIOUS_CODE |
DP_DO_INSIDE_DO_PRIVILEGED |
183 |
Low |
it.tidalwave.util.ShortNames
| Bug |
Category |
Details |
Line |
Priority |
| Exception is caught when Exception is not thrown in it.tidalwave.util.ShortNames.shortId(Object) |
STYLE |
REC_CATCH_EXCEPTION |
155 |
Medium |
it.tidalwave.util.impl.DefaultPreferencesHandler
| Bug |
Category |
Details |
Line |
Priority |
| Exception thrown in class it.tidalwave.util.impl.DefaultPreferencesHandler at new it.tidalwave.util.impl.DefaultPreferencesHandler() will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
85 |
Medium |
| Use of non-localized String.toUpperCase() or String.toLowerCase() in new it.tidalwave.util.impl.DefaultPreferencesHandler() |
I18N |
DM_CONVERT_CASE |
67 |
Low |
| Format string should use %n rather than \n in new it.tidalwave.util.impl.DefaultPreferencesHandler() |
BAD_PRACTICE |
VA_FORMAT_STRING_USES_NEWLINE |
95 |
Medium |
| Format string should use %n rather than \n in new it.tidalwave.util.impl.DefaultPreferencesHandler() |
BAD_PRACTICE |
VA_FORMAT_STRING_USES_NEWLINE |
96 |
Medium |
it.tidalwave.util.impl.finder.MappingFinder
| Bug |
Category |
Details |
Line |
Priority |
| The field it.tidalwave.util.impl.finder.MappingFinder.delegate is transient but isn't set by deserialization |
BAD_PRACTICE |
SE_TRANSIENT_FIELD_NOT_RESTORED |
|
Medium |
| The field it.tidalwave.util.impl.finder.MappingFinder.decorator is transient but isn't set by deserialization |
BAD_PRACTICE |
SE_TRANSIENT_FIELD_NOT_RESTORED |
|
Low |
it.tidalwave.util.impl.finder.ProviderFinder
| Bug |
Category |
Details |
Line |
Priority |
| Class it.tidalwave.util.impl.finder.ProviderFinder defines non-transient non-serializable instance field supplier |
BAD_PRACTICE |
SE_BAD_FIELD |
|
Medium |
it.tidalwave.util.impl.finder.SupplierFinder
| Bug |
Category |
Details |
Line |
Priority |
| Class it.tidalwave.util.impl.finder.SupplierFinder defines non-transient non-serializable instance field supplier |
BAD_PRACTICE |
SE_BAD_FIELD |
|
Medium |
it.tidalwave.util.spi.DefaultProcessExecutor
| Bug |
Category |
Details |
Line |
Priority |
| Use of non-localized String.toUpperCase() or String.toLowerCase() in it.tidalwave.util.spi.DefaultProcessExecutor.isWindows() |
I18N |
DM_CONVERT_CASE |
483 |
Low |
| Found reliance on default encoding in it.tidalwave.util.spi.DefaultProcessExecutor.start(): new java.io.PrintWriter(OutputStream, boolean) |
I18N |
DM_DEFAULT_ENCODING |
428 |
High |
| Useless control flow in it.tidalwave.util.spi.DefaultProcessExecutor.waitForCompletion() |
STYLE |
UCF_USELESS_CONTROL_FLOW |
455 |
Low |
it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput
| Bug |
Category |
Details |
Line |
Priority |
| Found reliance on default encoding in it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.read(): new java.io.InputStreamReader(InputStream) |
I18N |
DM_DEFAULT_ENCODING |
279 |
High |
| Naked notify in it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.read() |
MT_CORRECTNESS |
NN_NAKED_NOTIFY |
319 |
Medium |
| Exceptional return value of java.util.concurrent.ExecutorService.submit(Runnable) ignored in it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.start() |
BAD_PRACTICE |
RV_RETURN_VALUE_IGNORED_BAD_PRACTICE |
157 |
Low |
| Unconditional wait in it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.waitFor(String) |
MT_CORRECTNESS |
UW_UNCOND_WAIT |
252 |
Low |
it.tidalwave.util.spi.HierarchicFinderSupport
| Bug |
Category |
Details |
Line |
Priority |
| Exception thrown in class it.tidalwave.util.spi.HierarchicFinderSupport at new it.tidalwave.util.spi.HierarchicFinderSupport() will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
129 |
Medium |
| Exception thrown in class it.tidalwave.util.spi.HierarchicFinderSupport at new it.tidalwave.util.spi.HierarchicFinderSupport(String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
114 |
Medium |
it.tidalwave.util.thread.ThreadAssertions
| Bug |
Category |
Details |
Line |
Priority |
| Assertion validates method argument at it.tidalwave.util.thread.ThreadAssertions.assertThread(ThreadType). If assertions are disabled, there won't be any argument validation. |
BAD_PRACTICE |
AA_ASSERTION_OF_ARGUMENTS |
52 |
Low |