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 |
107 |
18 |
0 |
0 |
it.tidalwave.role.impl.AsDelegate
it.tidalwave.role.impl.DefaultContextManager
Bug |
Category |
Details |
Line |
Priority |
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 |
187 |
Low |
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 |
it.tidalwave.util.impl.finder.MappingFinder
Bug |
Category |
Details |
Line |
Priority |
Class it.tidalwave.util.impl.finder.MappingFinder defines non-transient non-serializable instance field decorator |
BAD_PRACTICE |
SE_BAD_FIELD |
Not available |
Medium |
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 |
Not available |
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 |
Not available |
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 |
464 |
Low |
Found reliance on default encoding in it.tidalwave.util.spi.DefaultProcessExecutor.start(): new java.io.PrintWriter(OutputStream, boolean) |
I18N |
DM_DEFAULT_ENCODING |
417 |
High |
Useless control flow in it.tidalwave.util.spi.DefaultProcessExecutor.waitForCompletion() |
STYLE |
UCF_USELESS_CONTROL_FLOW |
440 |
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 |
276 |
High |
Naked notify in it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.read() |
MT_CORRECTNESS |
NN_NAKED_NOTIFY |
316 |
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 |
154 |
Low |
Unconditional wait in it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.waitFor(String) |
MT_CORRECTNESS |
UW_UNCOND_WAIT |
249 |
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 |
124 |
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 |
111 |
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 |
49 |
Low |