SpotBugs Bug Detector Report
The following document contains the results of SpotBugs
SpotBugs Version is 4.9.4
Threshold is medium
Effort is max
Summary
Classes |
Bugs |
Errors |
Missing Classes |
119 |
43 |
0 |
0 |
org.forgerock.audit.AuditServiceBuilder
Bug |
Category |
Details |
Line |
Priority |
org.forgerock.audit.AuditServiceBuilder.withConfiguration(AuditServiceConfiguration) may expose internal representation by storing an externally mutable object into AuditServiceBuilder.auditServiceConfiguration |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
77 |
Medium |
org.forgerock.audit.AuditServiceConfiguration
Bug |
Category |
Details |
Line |
Priority |
org.forgerock.audit.AuditServiceConfiguration.getAvailableAuditEventHandlers() may expose internal representation by returning AuditServiceConfiguration.availableAuditEventHandlers |
MALICIOUS_CODE |
EI_EXPOSE_REP |
113 |
Medium |
org.forgerock.audit.AuditServiceConfiguration.getFilterPolicies() may expose internal representation by returning AuditServiceConfiguration.filterPolicies |
MALICIOUS_CODE |
EI_EXPOSE_REP |
131 |
Medium |
org.forgerock.audit.AuditServiceConfiguration.setAvailableAuditEventHandlers(List) may expose internal representation by storing an externally mutable object into AuditServiceConfiguration.availableAuditEventHandlers |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
123 |
Medium |
org.forgerock.audit.AuditServiceImpl$NullQueryHandler
Bug |
Category |
Details |
Line |
Priority |
Should org.forgerock.audit.AuditServiceImpl$NullQueryHandler be a _static_ inner class? |
PERFORMANCE |
SIC_INNER_SHOULD_BE_STATIC |
485-540 |
Medium |
org.forgerock.audit.events.AuditEvent
Bug |
Category |
Details |
Line |
Priority |
org.forgerock.audit.events.AuditEvent.getValue() may expose internal representation by returning AuditEvent.value |
MALICIOUS_CODE |
EI_EXPOSE_REP |
44 |
Medium |
org.forgerock.audit.events.AuditEventHelper
Bug |
Category |
Details |
Line |
Priority |
Redundant nullcheck of newPath, which is known to be non-null in org.forgerock.audit.events.AuditEventHelper.jsonPointerToDotNotation(String) |
STYLE |
RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE |
130 |
Medium |
org.forgerock.audit.events.EventTopicsMetaData
Bug |
Category |
Details |
Line |
Priority |
new org.forgerock.audit.events.EventTopicsMetaData(Map) may expose internal representation by storing an externally mutable object into EventTopicsMetaData.eventTopicsMetaData |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
41 |
Medium |
org.forgerock.audit.events.handlers.AuditEventTopicState
Bug |
Category |
Details |
Line |
Priority |
org.forgerock.audit.events.handlers.AuditEventTopicState.getEvent() may expose internal representation by returning AuditEventTopicState.event |
MALICIOUS_CODE |
EI_EXPOSE_REP |
64 |
Medium |
new org.forgerock.audit.events.handlers.AuditEventTopicState(Context, String, JsonValue) may expose internal representation by storing an externally mutable object into AuditEventTopicState.event |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
46 |
Medium |
org.forgerock.audit.events.handlers.EventHandlerConfiguration
Bug |
Category |
Details |
Line |
Priority |
org.forgerock.audit.events.handlers.EventHandlerConfiguration.getTopics() may expose internal representation by returning EventHandlerConfiguration.topics |
MALICIOUS_CODE |
EI_EXPOSE_REP |
86 |
Medium |
org.forgerock.audit.events.handlers.EventHandlerConfiguration.setTopics(Set) may expose internal representation by storing an externally mutable object into EventHandlerConfiguration.topics |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
96 |
Medium |
org.forgerock.audit.events.handlers.FileBasedEventHandlerConfiguration
Bug |
Category |
Details |
Line |
Priority |
org.forgerock.audit.events.handlers.FileBasedEventHandlerConfiguration.getFileRetention() may expose internal representation by returning FileBasedEventHandlerConfiguration.fileRetention |
MALICIOUS_CODE |
EI_EXPOSE_REP |
80 |
Medium |
org.forgerock.audit.events.handlers.FileBasedEventHandlerConfiguration.getFileRotation() may expose internal representation by returning FileBasedEventHandlerConfiguration.fileRotation |
MALICIOUS_CODE |
EI_EXPOSE_REP |
62 |
Medium |
org.forgerock.audit.events.handlers.FileBasedEventHandlerConfiguration.setFileRetention(FileBasedEventHandlerConfiguration$FileRetention) may expose internal representation by storing an externally mutable object into FileBasedEventHandlerConfiguration.fileRetention |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
90 |
Medium |
org.forgerock.audit.events.handlers.FileBasedEventHandlerConfiguration.setFileRotation(FileBasedEventHandlerConfiguration$FileRotation) may expose internal representation by storing an externally mutable object into FileBasedEventHandlerConfiguration.fileRotation |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
72 |
Medium |
org.forgerock.audit.events.handlers.FileBasedEventHandlerConfiguration$FileRotation
Bug |
Category |
Details |
Line |
Priority |
org.forgerock.audit.events.handlers.FileBasedEventHandlerConfiguration$FileRotation.getRotationTimes() may expose internal representation by returning FileBasedEventHandlerConfiguration$FileRotation.rotationTimes |
MALICIOUS_CODE |
EI_EXPOSE_REP |
278 |
Medium |
org.forgerock.audit.events.handlers.writers.AsynchronousTextWriter
Bug |
Category |
Details |
Line |
Priority |
org.forgerock.audit.events.handlers.writers.AsynchronousTextWriter.getWrappedWriter() may expose internal representation by returning AsynchronousTextWriter.writer |
MALICIOUS_CODE |
EI_EXPOSE_REP |
191 |
Medium |
new org.forgerock.audit.events.handlers.writers.AsynchronousTextWriter(String, boolean, TextWriter) may expose internal representation by storing an externally mutable object into AsynchronousTextWriter.writer |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
74 |
Medium |
org.forgerock.audit.events.handlers.writers.MeteredStream
Bug |
Category |
Details |
Line |
Priority |
new org.forgerock.audit.events.handlers.writers.MeteredStream(OutputStream, long) may expose internal representation by storing an externally mutable object into MeteredStream.out |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
40 |
Medium |
org.forgerock.audit.events.handlers.writers.RotatableWriter
Bug |
Category |
Details |
Line |
Priority |
Exception thrown in class org.forgerock.audit.events.handlers.writers.RotatableWriter at new org.forgerock.audit.events.handlers.writers.RotatableWriter(File, FileBasedEventHandlerConfiguration, boolean, RotatableWriter$RolloverLifecycleHook) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
100 |
Medium |
Exception thrown in class org.forgerock.audit.events.handlers.writers.RotatableWriter at new org.forgerock.audit.events.handlers.writers.RotatableWriter(File, FileBasedEventHandlerConfiguration, boolean, FileNamingPolicy) 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 |
Exception thrown in class org.forgerock.audit.events.handlers.writers.RotatableWriter at new org.forgerock.audit.events.handlers.writers.RotatableWriter(File, FileBasedEventHandlerConfiguration, boolean, FileNamingPolicy, RotatableWriter$RolloverLifecycleHook) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
126 |
Medium |
org.forgerock.audit.events.handlers.writers.RotatableWriter.getLastRotationTime() may expose internal representation by returning RotatableWriter.lastRotationTime |
MALICIOUS_CODE |
EI_EXPOSE_REP |
246 |
Medium |
org.forgerock.audit.events.handlers.writers.RotatableWriter.forceRotation() does not release lock on all exception paths |
MT_CORRECTNESS |
UL_UNRELEASED_LOCK_EXCEPTION_PATH |
311 |
Medium |
org.forgerock.audit.events.handlers.writers.TextWriter$Stream
Bug |
Category |
Details |
Line |
Priority |
Found reliance on default encoding in new org.forgerock.audit.events.handlers.writers.TextWriter$Stream(OutputStream): new java.io.PrintWriter(OutputStream, boolean) |
I18N |
DM_DEFAULT_ENCODING |
71 |
High |
org.forgerock.audit.events.handlers.writers.TextWriterAdapter
Bug |
Category |
Details |
Line |
Priority |
new org.forgerock.audit.events.handlers.writers.TextWriterAdapter(TextWriter) may expose internal representation by storing an externally mutable object into TextWriterAdapter.delegate |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
35 |
Medium |
org.forgerock.audit.providers.DefaultKeyStoreHandlerProvider
Bug |
Category |
Details |
Line |
Priority |
new org.forgerock.audit.providers.DefaultKeyStoreHandlerProvider(Map) may expose internal representation by storing an externally mutable object into DefaultKeyStoreHandlerProvider.keyStoreHandlers |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
46 |
Medium |
org.forgerock.audit.providers.DefaultSecureStorageProvider
Bug |
Category |
Details |
Line |
Priority |
new org.forgerock.audit.providers.DefaultSecureStorageProvider(Map) may expose internal representation by storing an externally mutable object into DefaultSecureStorageProvider.secureStorages |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
46 |
Medium |
org.forgerock.audit.rotation.FixedTimeRotationPolicy
Bug |
Category |
Details |
Line |
Priority |
org.forgerock.audit.rotation.FixedTimeRotationPolicy.getDailyRotationTimes() may expose internal representation by returning FixedTimeRotationPolicy.dailyRotationTimes |
MALICIOUS_CODE |
EI_EXPOSE_REP |
65 |
Medium |
new org.forgerock.audit.rotation.FixedTimeRotationPolicy(List) may expose internal representation by storing an externally mutable object into FixedTimeRotationPolicy.dailyRotationTimes |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
41 |
Medium |
org.forgerock.audit.rotation.RotationContext
Bug |
Category |
Details |
Line |
Priority |
org.forgerock.audit.rotation.RotationContext.getWriter() may expose internal representation by returning RotationContext.writer |
MALICIOUS_CODE |
EI_EXPOSE_REP |
68 |
Medium |
org.forgerock.audit.rotation.RotationContext.setWriter(Writer) may expose internal representation by storing an externally mutable object into RotationContext.writer |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
76 |
Medium |
org.forgerock.audit.secure.JcaKeyStoreHandler
Bug |
Category |
Details |
Line |
Priority |
Exception thrown in class org.forgerock.audit.secure.JcaKeyStoreHandler at new org.forgerock.audit.secure.JcaKeyStoreHandler(String, String, String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
59 |
Medium |
org.forgerock.audit.secure.JcaKeyStoreHandler.getStore() may expose internal representation by returning JcaKeyStoreHandler.store |
MALICIOUS_CODE |
EI_EXPOSE_REP |
80 |
Medium |
org.forgerock.audit.secure.JcaKeyStoreHandler.setStore(KeyStore) may expose internal representation by storing an externally mutable object into JcaKeyStoreHandler.store |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
85 |
Medium |
org.forgerock.audit.secure.KeyStoreHandlerDecorator
Bug |
Category |
Details |
Line |
Priority |
new org.forgerock.audit.secure.KeyStoreHandlerDecorator(KeyStoreHandler) may expose internal representation by storing an externally mutable object into KeyStoreHandlerDecorator.delegate |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
40 |
Medium |
org.forgerock.audit.secure.KeyStoreSecureStorage
Bug |
Category |
Details |
Line |
Priority |
Exception thrown in class org.forgerock.audit.secure.KeyStoreSecureStorage at new org.forgerock.audit.secure.KeyStoreSecureStorage(KeyStoreHandler, PrivateKey) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
65 |
Medium |
Exception thrown in class org.forgerock.audit.secure.KeyStoreSecureStorage at new org.forgerock.audit.secure.KeyStoreSecureStorage(KeyStoreHandler, PublicKey) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
77 |
Medium |
Exception thrown in class org.forgerock.audit.secure.KeyStoreSecureStorage at new org.forgerock.audit.secure.KeyStoreSecureStorage(KeyStoreHandler, PublicKey, PrivateKey) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
98 |
Medium |
org.forgerock.audit.util.DateUtil
Bug |
Category |
Details |
Line |
Priority |
Possible null pointer dereference of result in org.forgerock.audit.util.DateUtil.getDateDifferenceInDays(Date, Date, Boolean) |
CORRECTNESS |
NP_NULL_ON_SOME_PATH |
214 |
Medium |
org.forgerock.audit.util.JsonValueUtils
Bug |
Category |
Details |
Line |
Priority |
org.forgerock.audit.util.JsonValueUtils.findObjectsThatMatchPrefix(JsonPointer, Map) makes inefficient use of keySet iterator instead of entrySet iterator |
PERFORMANCE |
WMI_WRONG_MAP_ITERATOR |
229 |
Medium |
org.forgerock.audit.util.LastModifiedTimeFileComparator