FindBugs Bug Detector Report

The following document contains the results of FindBugs Report

FindBugs Version is 1.3.9

Threshold is medium

Effort is min

Summary

ClassesBugsErrorsMissing Classes
31410300

Files

ClassBugs
org.apache.jcs.admin.JCSAdminBean1
org.apache.jcs.auxiliary.disk.AbstractDiskCache1
org.apache.jcs.auxiliary.disk.block.BlockDiskCache3
org.apache.jcs.auxiliary.disk.block.BlockDiskElementDescriptor2
org.apache.jcs.auxiliary.disk.block.BlockDiskKeyStore2
org.apache.jcs.auxiliary.disk.file.FileDiskCache1
org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache9
org.apache.jcs.auxiliary.disk.indexed.IndexedDiskElementDescriptor1
org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCache7
org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCacheManagerAbstractTemplate3
org.apache.jcs.auxiliary.disk.jdbc.hsql.HSQLDiskCacheFactory2
org.apache.jcs.auxiliary.disk.jdbc.mysql.MySQLDiskCacheManager1
org.apache.jcs.auxiliary.disk.jdbc.mysql.MySQLTableOptimizer2
org.apache.jcs.auxiliary.lateral.LateralCache3
org.apache.jcs.auxiliary.lateral.LateralCacheInfo2
org.apache.jcs.auxiliary.lateral.LateralCacheMonitor1
org.apache.jcs.auxiliary.lateral.LateralCacheNoWait1
org.apache.jcs.auxiliary.lateral.LateralCacheNoWaitFacade1
org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPCacheManager5
org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPListener2
org.apache.jcs.auxiliary.remote.AbstractRemoteCacheNoWaitFacade1
org.apache.jcs.auxiliary.remote.RemoteCacheAttributes2
org.apache.jcs.auxiliary.remote.RemoteCacheFailoverRunner2
org.apache.jcs.auxiliary.remote.RemoteCacheManager4
org.apache.jcs.auxiliary.remote.RemoteCacheManager$Location1
org.apache.jcs.auxiliary.remote.RemoteCacheMonitor1
org.apache.jcs.auxiliary.remote.RemoteCacheNoWait1
org.apache.jcs.auxiliary.remote.RemoteCacheRestore1
org.apache.jcs.auxiliary.remote.http.client.RemoteHttpCacheManager2
org.apache.jcs.auxiliary.remote.http.server.RemoteHttpCacheServlet2
org.apache.jcs.auxiliary.remote.server.RemoteCacheServerFactory1
org.apache.jcs.auxiliary.remote.server.RemoteCacheServerInfo1
org.apache.jcs.engine.AbstractCacheEventQueue$AbstractCacheEvent1
org.apache.jcs.engine.CacheElementSerialized2
org.apache.jcs.engine.CacheInfo2
org.apache.jcs.engine.ElementAttributes1
org.apache.jcs.engine.control.CompositeCache1
org.apache.jcs.engine.control.CompositeCacheConfigurator1
org.apache.jcs.engine.control.CompositeCacheManager1
org.apache.jcs.engine.control.event.ElementEventQueue5
org.apache.jcs.engine.stats.CacheStats5
org.apache.jcs.engine.stats.Stats3
org.apache.jcs.utils.access.JCSWorker1
org.apache.jcs.utils.discovery.UDPDiscoveryAttributes1
org.apache.jcs.utils.discovery.UDPDiscoveryInfo2
org.apache.jcs.utils.discovery.UDPDiscoveryService2
org.apache.jcs.utils.key.KeyGeneratorUtil2
org.apache.jcs.utils.threadpool.PoolConfiguration1
org.apache.jcs.utils.threadpool.ThreadPoolManager3

org.apache.jcs.admin.JCSAdminBean

BugCategoryDetailsLinePriority
Exception is caught when Exception is not thrown in org.apache.jcs.admin.JCSAdminBean.getByteCount(CompositeCache)STYLEREC_CATCH_EXCEPTION218Medium

org.apache.jcs.auxiliary.disk.AbstractDiskCache

BugCategoryDetailsLinePriority
Synchronization on AbstractDiskCache.purgatory in futile attempt to guard itMT_CORRECTNESSML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD158High

org.apache.jcs.auxiliary.disk.block.BlockDiskCache

BugCategoryDetailsLinePriority
new org.apache.jcs.auxiliary.disk.block.BlockDiskCache(BlockDiskCacheAttributes, IElementSerializer) ignores exceptional return value of java.io.File.mkdirs()BAD_PRACTICERV_RETURN_VALUE_IGNORED_BAD_PRACTICE119Medium
Class org.apache.jcs.auxiliary.disk.block.BlockDiskCache defines non-transient non-serializable instance field dataFileBAD_PRACTICESE_BAD_FIELDNot availableMedium
Class org.apache.jcs.auxiliary.disk.block.BlockDiskCache defines non-transient non-serializable instance field keyStoreBAD_PRACTICESE_BAD_FIELDNot availableMedium

org.apache.jcs.auxiliary.disk.block.BlockDiskElementDescriptor

BugCategoryDetailsLinePriority
org.apache.jcs.auxiliary.disk.block.BlockDiskElementDescriptor.getBlocks() may expose internal representation by returning BlockDiskElementDescriptor.blocksMALICIOUS_CODEEI_EXPOSE_REP78Medium
org.apache.jcs.auxiliary.disk.block.BlockDiskElementDescriptor.setBlocks(int[]) may expose internal representation by storing an externally mutable object into BlockDiskElementDescriptor.blocksMALICIOUS_CODEEI_EXPOSE_REP268Medium

org.apache.jcs.auxiliary.disk.block.BlockDiskKeyStore

BugCategoryDetailsLinePriority
Incorrect lazy initialization of static field org.apache.jcs.auxiliary.disk.block.BlockDiskKeyStore.persistenceDaemon in new org.apache.jcs.auxiliary.disk.block.BlockDiskKeyStore(BlockDiskCacheAttributes, BlockDiskCache)MT_CORRECTNESSLI_LAZY_INIT_STATIC125-127Medium
new org.apache.jcs.auxiliary.disk.block.BlockDiskKeyStore(BlockDiskCacheAttributes, BlockDiskCache) ignores exceptional return value of java.io.File.mkdirs()BAD_PRACTICERV_RETURN_VALUE_IGNORED_BAD_PRACTICE97Medium

org.apache.jcs.auxiliary.disk.file.FileDiskCache

BugCategoryDetailsLinePriority
org.apache.jcs.auxiliary.disk.file.FileDiskCache.processUpdate(ICacheElement) ignores exceptional return value of java.io.File.renameTo(File)BAD_PRACTICERV_RETURN_VALUE_IGNORED_BAD_PRACTICE378Medium

org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache

BugCategoryDetailsLinePriority
Inconsistent synchronization of org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache.bytesFree; locked 66% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC1291Medium
Inconsistent synchronization of org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache.startupSize; locked 50% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC302Medium
org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache.reset() ignores exceptional return value of java.io.File.delete()BAD_PRACTICERV_RETURN_VALUE_IGNORED_BAD_PRACTICE975Medium
Class org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache defines non-transient non-serializable instance field currentOptimizationThreadBAD_PRACTICESE_BAD_FIELDNot availableMedium
Class org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache defines non-transient non-serializable instance field dataFileBAD_PRACTICESE_BAD_FIELDNot availableMedium
Class org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache defines non-transient non-serializable instance field keyFileBAD_PRACTICESE_BAD_FIELDNot availableMedium
Class org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache defines non-transient non-serializable instance field recycleBAD_PRACTICESE_BAD_FIELDNot availableMedium
org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache$LRUMap stored into non-transient field IndexedDiskCache.keyHashBAD_PRACTICESE_BAD_FIELD_STORE1024Medium
org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache.optimizeFile() does not release lock on all exception pathsMT_CORRECTNESSUL_UNRELEASED_LOCK_EXCEPTION_PATH1268Medium

org.apache.jcs.auxiliary.disk.indexed.IndexedDiskElementDescriptor

BugCategoryDetailsLinePriority
org.apache.jcs.auxiliary.disk.indexed.IndexedDiskElementDescriptor defines compareTo(IndexedDiskElementDescriptor) and uses Object.equals()BAD_PRACTICEEQ_COMPARETO_USE_OBJECT_EQUALS74-92Medium

org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCache

BugCategoryDetailsLinePriority
Method org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCache.doesElementExist(ICacheElement) may fail to clean up java.sql.ResultSetEXPERIMENTALOBL_UNSATISFIED_OBLIGATION457Medium
Method org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCache.insertRow(ICacheElement, Connection, byte[]) may fail to clean up java.sql.StatementEXPERIMENTALOBL_UNSATISFIED_OBLIGATION334Medium
Method org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCache.updateRow(ICacheElement, Connection, byte[]) may fail to clean up java.sql.StatementEXPERIMENTALOBL_UNSATISFIED_OBLIGATION397Medium
Class org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCache defines non-transient non-serializable instance field elementSerializerBAD_PRACTICESE_BAD_FIELDNot availableMedium
Class org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCache defines non-transient non-serializable instance field poolAccessBAD_PRACTICESE_BAD_FIELDNot availableMedium
org.apache.jcs.utils.serialization.StandardSerializer stored into non-transient field JDBCDiskCache.elementSerializerBAD_PRACTICESE_BAD_FIELD_STORE92Medium
A prepared statement is generated from a nonconstant String at org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCache.updateRow(ICacheElement, Connection, byte[]) SECURITYSQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING397Medium

org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCacheManagerAbstractTemplate

BugCategoryDetailsLinePriority
org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCacheManagerAbstractTemplate.clients should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot availableMedium
org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCacheManagerAbstractTemplate.caches isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL55High
org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCacheManagerAbstractTemplate.tableStates isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL61High

org.apache.jcs.auxiliary.disk.jdbc.hsql.HSQLDiskCacheFactory

BugCategoryDetailsLinePriority
Possible null pointer dereference of sStatement in org.apache.jcs.auxiliary.disk.jdbc.hsql.HSQLDiskCacheFactory.setupTABLE(Connection, String) on exception pathCORRECTNESSNP_NULL_ON_SOME_PATH_EXCEPTION201Medium
Method org.apache.jcs.auxiliary.disk.jdbc.hsql.HSQLDiskCacheFactory.setupTABLE(Connection, String) passes a nonconstant String to an execute method on an SQL statementSECURITYSQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE201Medium

org.apache.jcs.auxiliary.disk.jdbc.mysql.MySQLDiskCacheManager

BugCategoryDetailsLinePriority
Class org.apache.jcs.auxiliary.disk.jdbc.mysql.MySQLDiskCacheManager defines non-transient non-serializable instance field daemonBAD_PRACTICESE_BAD_FIELDNot availableMedium

org.apache.jcs.auxiliary.disk.jdbc.mysql.MySQLTableOptimizer

BugCategoryDetailsLinePriority
Method org.apache.jcs.auxiliary.disk.jdbc.mysql.MySQLTableOptimizer.getTableStatus(Statement) may fail to clean up java.sql.ResultSetEXPERIMENTALOBL_UNSATISFIED_OBLIGATION247Medium
Method org.apache.jcs.auxiliary.disk.jdbc.mysql.MySQLTableOptimizer.repairTable(Statement) may fail to clean up java.sql.ResultSetEXPERIMENTALOBL_UNSATISFIED_OBLIGATION278Medium

org.apache.jcs.auxiliary.lateral.LateralCache

BugCategoryDetailsLinePriority
Class org.apache.jcs.auxiliary.lateral.LateralCache defines non-transient non-serializable instance field lateralCacheServiceBAD_PRACTICESE_BAD_FIELDNot availableMedium
Class org.apache.jcs.auxiliary.lateral.LateralCache defines non-transient non-serializable instance field monitorBAD_PRACTICESE_BAD_FIELDNot availableMedium
org.apache.jcs.auxiliary.lateral.ZombieLateralCacheService stored into non-transient field LateralCache.lateralCacheServiceBAD_PRACTICESE_BAD_FIELD_STORE355Medium

org.apache.jcs.auxiliary.lateral.LateralCacheInfo

BugCategoryDetailsLinePriority
org.apache.jcs.auxiliary.lateral.LateralCacheInfo.vmid isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL44High
org.apache.jcs.auxiliary.lateral.LateralCacheInfo.listenerId isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL47Medium

org.apache.jcs.auxiliary.lateral.LateralCacheMonitor

BugCategoryDetailsLinePriority
Naked notify in org.apache.jcs.auxiliary.lateral.LateralCacheMonitor.notifyError()MT_CORRECTNESSNN_NAKED_NOTIFY105Medium

org.apache.jcs.auxiliary.lateral.LateralCacheNoWait

BugCategoryDetailsLinePriority
Class org.apache.jcs.auxiliary.lateral.LateralCacheNoWait defines non-transient non-serializable instance field eventQueueBAD_PRACTICESE_BAD_FIELDNot availableMedium

org.apache.jcs.auxiliary.lateral.LateralCacheNoWaitFacade

BugCategoryDetailsLinePriority
new org.apache.jcs.auxiliary.lateral.LateralCacheNoWaitFacade(LateralCacheNoWait[], ILateralCacheAttributes) may expose internal representation by storing an externally mutable object into LateralCacheNoWaitFacade.noWaitsMALICIOUS_CODEEI_EXPOSE_REP281Medium

org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPCacheManager

BugCategoryDetailsLinePriority
org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPCacheManager.instances isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL70High
Class org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPCacheManager defines non-transient non-serializable instance field lateralServiceBAD_PRACTICESE_BAD_FIELDNot availableMedium
Class org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPCacheManager defines non-transient non-serializable instance field lateralWatchBAD_PRACTICESE_BAD_FIELDNot availableMedium
org.apache.jcs.auxiliary.lateral.ZombieLateralCacheService stored into non-transient field LateralTCPCacheManager.lateralServiceBAD_PRACTICESE_BAD_FIELD_STORE199Medium
org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPService stored into non-transient field LateralTCPCacheManager.lateralServiceBAD_PRACTICESE_BAD_FIELD_STORE181Medium

org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPListener

BugCategoryDetailsLinePriority
Class org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPListener defines non-transient non-serializable instance field receiverBAD_PRACTICESE_BAD_FIELDNot availableHigh
Class org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPListener defines non-transient non-serializable instance field pooledExecutorBAD_PRACTICESE_BAD_FIELDNot availableMedium

org.apache.jcs.auxiliary.remote.AbstractRemoteCacheNoWaitFacade

BugCategoryDetailsLinePriority
new org.apache.jcs.auxiliary.remote.AbstractRemoteCacheNoWaitFacade(RemoteCacheNoWait[], RemoteCacheAttributes, ICompositeCacheManager, ICacheEventLogger, IElementSerializer) may expose internal representation by storing an externally mutable object into AbstractRemoteCacheNoWaitFacade.noWaitsMALICIOUS_CODEEI_EXPOSE_REP288Medium

org.apache.jcs.auxiliary.remote.RemoteCacheAttributes

BugCategoryDetailsLinePriority
org.apache.jcs.auxiliary.remote.RemoteCacheAttributes.getFailovers() may expose internal representation by returning RemoteCacheAttributes.failoversMALICIOUS_CODEEI_EXPOSE_REP163Medium
org.apache.jcs.auxiliary.remote.RemoteCacheAttributes.setFailovers(String[]) may expose internal representation by storing an externally mutable object into RemoteCacheAttributes.failoversMALICIOUS_CODEEI_EXPOSE_REP2173Medium

org.apache.jcs.auxiliary.remote.RemoteCacheFailoverRunner

BugCategoryDetailsLinePriority
Naked notify in org.apache.jcs.auxiliary.remote.RemoteCacheFailoverRunner.notifyError()MT_CORRECTNESSNN_NAKED_NOTIFY103Medium
Exception is caught when Exception is not thrown in org.apache.jcs.auxiliary.remote.RemoteCacheFailoverRunner.connectAndRestore()STYLEREC_CATCH_EXCEPTION259Medium

org.apache.jcs.auxiliary.remote.RemoteCacheManager

BugCategoryDetailsLinePriority
Class org.apache.jcs.auxiliary.remote.RemoteCacheManager defines non-transient non-serializable instance field cacheEventLoggerBAD_PRACTICESE_BAD_FIELDNot availableMedium
Class org.apache.jcs.auxiliary.remote.RemoteCacheManager defines non-transient non-serializable instance field elementSerializerBAD_PRACTICESE_BAD_FIELDNot availableMedium
Class org.apache.jcs.auxiliary.remote.RemoteCacheManager defines non-transient non-serializable instance field remoteWatchBAD_PRACTICESE_BAD_FIELDNot availableMedium
org.apache.jcs.auxiliary.remote.ZombieRemoteCacheService stored into non-transient field RemoteCacheManager.remoteServiceBAD_PRACTICESE_BAD_FIELD_STORE164Medium

org.apache.jcs.auxiliary.remote.RemoteCacheManager$Location

BugCategoryDetailsLinePriority
Possible null pointer dereference of RemoteCacheManager$Location.host in org.apache.jcs.auxiliary.remote.RemoteCacheManager$Location.equals(Object)CORRECTNESSNP_NULL_ON_SOME_PATH581Medium

org.apache.jcs.auxiliary.remote.RemoteCacheMonitor

BugCategoryDetailsLinePriority
Naked notify in org.apache.jcs.auxiliary.remote.RemoteCacheMonitor.notifyError()MT_CORRECTNESSNN_NAKED_NOTIFY108Medium

org.apache.jcs.auxiliary.remote.RemoteCacheNoWait

BugCategoryDetailsLinePriority
Class org.apache.jcs.auxiliary.remote.RemoteCacheNoWait defines non-transient non-serializable instance field cacheEventQueueBAD_PRACTICESE_BAD_FIELDNot availableMedium

org.apache.jcs.auxiliary.remote.RemoteCacheRestore

BugCategoryDetailsLinePriority
Exception is caught when Exception is not thrown in org.apache.jcs.auxiliary.remote.RemoteCacheRestore.canFix()STYLEREC_CATCH_EXCEPTION91Medium

org.apache.jcs.auxiliary.remote.http.client.RemoteHttpCacheManager

BugCategoryDetailsLinePriority
Class org.apache.jcs.auxiliary.remote.http.client.RemoteHttpCacheManager defines non-transient non-serializable instance field cacheEventLoggerBAD_PRACTICESE_BAD_FIELDNot availableMedium
Class org.apache.jcs.auxiliary.remote.http.client.RemoteHttpCacheManager defines non-transient non-serializable instance field elementSerializerBAD_PRACTICESE_BAD_FIELDNot availableMedium

org.apache.jcs.auxiliary.remote.http.server.RemoteHttpCacheServlet

BugCategoryDetailsLinePriority
Class org.apache.jcs.auxiliary.remote.http.server.RemoteHttpCacheServlet defines non-transient non-serializable instance field remoteHttpCacheServiceAdaptorBAD_PRACTICESE_BAD_FIELDNot availableMedium
Class org.apache.jcs.auxiliary.remote.http.server.RemoteHttpCacheServlet defines non-transient non-serializable instance field serializerBAD_PRACTICESE_BAD_FIELDNot availableMedium

org.apache.jcs.auxiliary.remote.server.RemoteCacheServerFactory

BugCategoryDetailsLinePriority
org.apache.jcs.auxiliary.remote.server.RemoteCacheServerFactory.shutdownImpl(String, int) calls Thread.sleep() with a lock heldMT_CORRECTNESSSWL_SLEEP_WITH_LOCK_HELD412Medium

org.apache.jcs.auxiliary.remote.server.RemoteCacheServerInfo

BugCategoryDetailsLinePriority
org.apache.jcs.auxiliary.remote.server.RemoteCacheServerInfo.vmid isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL39High

org.apache.jcs.engine.AbstractCacheEventQueue$AbstractCacheEvent

BugCategoryDetailsLinePriority
Unread field: org.apache.jcs.engine.AbstractCacheEventQueue$AbstractCacheEvent.donePERFORMANCEURF_UNREAD_FIELD255Medium

org.apache.jcs.engine.CacheElementSerialized

BugCategoryDetailsLinePriority
org.apache.jcs.engine.CacheElementSerialized.getSerializedValue() may expose internal representation by returning CacheElementSerialized.serializedValueMALICIOUS_CODEEI_EXPOSE_REP85Medium
new org.apache.jcs.engine.CacheElementSerialized(String, Serializable, byte[], IElementAttributes) may expose internal representation by storing an externally mutable object into CacheElementSerialized.serializedValueMALICIOUS_CODEEI_EXPOSE_REP262Medium

org.apache.jcs.engine.CacheInfo

BugCategoryDetailsLinePriority
org.apache.jcs.engine.CacheInfo.vmid isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL43High
org.apache.jcs.engine.CacheInfo.listenerId isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL46Medium

org.apache.jcs.engine.ElementAttributes

BugCategoryDetailsLinePriority
Class org.apache.jcs.engine.ElementAttributes implements Cloneable but does not define or use clone methodBAD_PRACTICECN_IDIOM52-462Medium

org.apache.jcs.engine.control.CompositeCache

BugCategoryDetailsLinePriority
org.apache.jcs.engine.control.CompositeCache.setAuxCaches(AuxiliaryCache[]) may expose internal representation by storing an externally mutable object into CompositeCache.auxCachesMALICIOUS_CODEEI_EXPOSE_REP2156Medium

org.apache.jcs.engine.control.CompositeCacheConfigurator

BugCategoryDetailsLinePriority
Method org.apache.jcs.engine.control.CompositeCacheConfigurator.doConfigure(String) may fail to clean up java.io.InputStreamEXPERIMENTALOBL_UNSATISFIED_OBLIGATION112Medium

org.apache.jcs.engine.control.CompositeCacheManager

BugCategoryDetailsLinePriority
org.apache.jcs.engine.control.CompositeCacheManager.instance should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot availableMedium

org.apache.jcs.engine.control.event.ElementEventQueue

BugCategoryDetailsLinePriority
new org.apache.jcs.engine.control.event.ElementEventQueue(String) invokes Thread.start()MT_CORRECTNESSSC_START_IN_CTOR79Medium
Class org.apache.jcs.engine.control.event.ElementEventQueue defines non-transient non-serializable instance field headBAD_PRACTICESE_BAD_FIELDNot availableMedium
Class org.apache.jcs.engine.control.event.ElementEventQueue defines non-transient non-serializable instance field processorThreadBAD_PRACTICESE_BAD_FIELDNot availableMedium
Class org.apache.jcs.engine.control.event.ElementEventQueue defines non-transient non-serializable instance field tailBAD_PRACTICESE_BAD_FIELDNot availableMedium
org.apache.jcs.engine.control.event.ElementEventQueue$QProcessor stored into non-transient field ElementEventQueue.processorThreadBAD_PRACTICESE_BAD_FIELD_STORE78Medium

org.apache.jcs.engine.stats.CacheStats

BugCategoryDetailsLinePriority
org.apache.jcs.engine.stats.CacheStats.getAuxiliaryCacheStats() may expose internal representation by returning CacheStats.auxStatsMALICIOUS_CODEEI_EXPOSE_REP72Medium
org.apache.jcs.engine.stats.CacheStats.getStatElements() may expose internal representation by returning CacheStats.statsMALICIOUS_CODEEI_EXPOSE_REP91Medium
org.apache.jcs.engine.stats.CacheStats.setAuxiliaryCacheStats(IStats[]) may expose internal representation by storing an externally mutable object into CacheStats.auxStatsMALICIOUS_CODEEI_EXPOSE_REP280Medium
org.apache.jcs.engine.stats.CacheStats.setStatElements(IStatElement[]) may expose internal representation by storing an externally mutable object into CacheStats.statsMALICIOUS_CODEEI_EXPOSE_REP299Medium
Class org.apache.jcs.engine.stats.CacheStats defines non-transient non-serializable instance field statsBAD_PRACTICESE_BAD_FIELDNot availableMedium

org.apache.jcs.engine.stats.Stats

BugCategoryDetailsLinePriority
org.apache.jcs.engine.stats.Stats.getStatElements() may expose internal representation by returning Stats.statsMALICIOUS_CODEEI_EXPOSE_REP45Medium
org.apache.jcs.engine.stats.Stats.setStatElements(IStatElement[]) may expose internal representation by storing an externally mutable object into Stats.statsMALICIOUS_CODEEI_EXPOSE_REP253Medium
Class org.apache.jcs.engine.stats.Stats defines non-transient non-serializable instance field statsBAD_PRACTICESE_BAD_FIELDNot availableMedium

org.apache.jcs.utils.access.JCSWorker

BugCategoryDetailsLinePriority
Wait not in loop in org.apache.jcs.utils.access.JCSWorker.run(Serializable, String, JCSWorkerHelper)MT_CORRECTNESSWA_NOT_IN_LOOP229Medium

org.apache.jcs.utils.discovery.UDPDiscoveryAttributes

BugCategoryDetailsLinePriority
org.apache.jcs.utils.discovery.UDPDiscoveryAttributes.clone() does not call super.clone()BAD_PRACTICECN_IDIOM_NO_SUPER_CALL201-209Medium

org.apache.jcs.utils.discovery.UDPDiscoveryInfo

BugCategoryDetailsLinePriority
org.apache.jcs.utils.discovery.UDPDiscoveryInfo.vmid isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL34High
org.apache.jcs.utils.discovery.UDPDiscoveryInfo.listenerId isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL39Medium

org.apache.jcs.utils.discovery.UDPDiscoveryService

BugCategoryDetailsLinePriority
Incorrect lazy initialization of static field org.apache.jcs.utils.discovery.UDPDiscoveryService.senderDaemon in new org.apache.jcs.utils.discovery.UDPDiscoveryService(UDPDiscoveryAttributes, ICacheEventLogger)MT_CORRECTNESSLI_LAZY_INIT_STATIC119-121Medium
new org.apache.jcs.utils.discovery.UDPDiscoveryService(UDPDiscoveryAttributes, ICacheEventLogger) invokes Thread.start()MT_CORRECTNESSSC_START_IN_CTOR110Medium

org.apache.jcs.utils.key.KeyGeneratorUtil

BugCategoryDetailsLinePriority
org.apache.jcs.utils.key.KeyGeneratorUtil.leadNumber should be package protectedMALICIOUS_CODEMS_PKGPROTECT47Medium
org.apache.jcs.utils.key.KeyGeneratorUtil.counterResetIntervalMillis isn't final but should beMALICIOUS_CODEMS_SHOULD_BE_FINAL32Medium

org.apache.jcs.utils.threadpool.PoolConfiguration

BugCategoryDetailsLinePriority
org.apache.jcs.utils.threadpool.PoolConfiguration.clone() does not call super.clone()BAD_PRACTICECN_IDIOM_NO_SUPER_CALL257Medium

org.apache.jcs.utils.threadpool.ThreadPoolManager

BugCategoryDetailsLinePriority
Incorrect lazy initialization of static field org.apache.jcs.utils.threadpool.ThreadPoolManager.props in org.apache.jcs.utils.threadpool.ThreadPoolManager.configure()MT_CORRECTNESSLI_LAZY_INIT_STATIC310-330Medium
Incorrect lazy initialization of static field org.apache.jcs.utils.threadpool.ThreadPoolManager.props in org.apache.jcs.utils.threadpool.ThreadPoolManager.configure()MT_CORRECTNESSLI_LAZY_INIT_STATIC327-330Medium
Write to static field org.apache.jcs.utils.threadpool.ThreadPoolManager.defaultConfig from instance method org.apache.jcs.utils.threadpool.ThreadPoolManager.configure()STYLEST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD335Medium