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
3157000

Files

ClassBugs
org.apache.jcs.auxiliary.disk.block.BlockDiskCache1
org.apache.jcs.auxiliary.disk.block.BlockDiskElementDescriptor2
org.apache.jcs.auxiliary.disk.block.BlockDiskKeyStore1
org.apache.jcs.auxiliary.disk.file.FileDiskCache1
org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache1
org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCache4
org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCacheManagerAbstractTemplate3
org.apache.jcs.auxiliary.disk.jdbc.hsql.HSQLDiskCacheFactory1
org.apache.jcs.auxiliary.disk.jdbc.mysql.MySQLTableOptimizer3
org.apache.jcs.auxiliary.lateral.LateralCacheInfo2
org.apache.jcs.auxiliary.lateral.LateralCacheMonitor1
org.apache.jcs.auxiliary.lateral.LateralCacheNoWaitFacade1
org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPCacheManager1
org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPListener3
org.apache.jcs.auxiliary.remote.AbstractRemoteCacheNoWaitFacade1
org.apache.jcs.auxiliary.remote.RemoteCacheAttributes2
org.apache.jcs.auxiliary.remote.RemoteCacheFailoverRunner2
org.apache.jcs.auxiliary.remote.RemoteCacheMonitor1
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.CacheElementSerialized2
org.apache.jcs.engine.CacheInfo2
org.apache.jcs.engine.ElementAttributes1
org.apache.jcs.engine.control.CompositeCache3
org.apache.jcs.engine.control.CompositeCacheConfigurator1
org.apache.jcs.engine.control.CompositeCacheManager2
org.apache.jcs.engine.control.event.ElementEventQueue6
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.UDPDiscoveryService1
org.apache.jcs.utils.key.KeyGeneratorUtil2
org.apache.jcs.utils.threadpool.PoolConfiguration1
org.apache.jcs.utils.threadpool.ThreadPoolManager2

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_PRACTICE123Medium

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
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_PRACTICE89Medium

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_PRACTICE404Medium

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

BugCategoryDetailsLinePriority
org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache.reset() ignores exceptional return value of java.io.File.delete()BAD_PRACTICERV_RETURN_VALUE_IGNORED_BAD_PRACTICE1009Medium

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
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_FINAL62High

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

BugCategoryDetailsLinePriority
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_EXECUTE194Medium

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_OBLIGATION250Medium
Method org.apache.jcs.auxiliary.disk.jdbc.mysql.MySQLTableOptimizer.optimizeTable() may fail to clean up java.sql.ResultSetEXPERIMENTALOBL_UNSATISFIED_OBLIGATION156Medium
Method org.apache.jcs.auxiliary.disk.jdbc.mysql.MySQLTableOptimizer.repairTable(Statement) may fail to clean up java.sql.ResultSetEXPERIMENTALOBL_UNSATISFIED_OBLIGATION281Medium

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.LateralCacheNoWaitFacade

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

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

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

BugCategoryDetailsLinePriority
Inconsistent synchronization of org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPListener.terminated; locked 50% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC513Medium
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_REP287Medium

org.apache.jcs.auxiliary.remote.RemoteCacheAttributes

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

org.apache.jcs.auxiliary.remote.RemoteCacheFailoverRunner

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

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.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_HELD427Medium

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.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.getAuxCaches() may expose internal representation by returning CompositeCache.auxCachesMALICIOUS_CODEEI_EXPOSE_REP172Medium
org.apache.jcs.engine.control.CompositeCache.setAuxCaches(AuxiliaryCache[]) may expose internal representation by storing an externally mutable object into CompositeCache.auxCachesMALICIOUS_CODEEI_EXPOSE_REP2157Medium
Class org.apache.jcs.engine.control.CompositeCache defines non-transient non-serializable instance field auxCachesBAD_PRACTICESE_BAD_FIELDNot availableMedium

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_OBLIGATION114Medium

org.apache.jcs.engine.control.CompositeCacheManager

BugCategoryDetailsLinePriority
org.apache.jcs.engine.control.CompositeCacheManager.instance should be package protectedMALICIOUS_CODEMS_PKGPROTECTNot availableMedium
Class org.apache.jcs.engine.control.CompositeCacheManager defines non-transient non-serializable instance field scheduledExecutorBAD_PRACTICESE_BAD_FIELDNot 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_CTOR82Medium
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_STORE81Medium
org.apache.jcs.engine.control.event.ElementEventQueue$QProcessor stored into non-transient field ElementEventQueue.processorThreadBAD_PRACTICESE_BAD_FIELD_STORE220Medium

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_REP92Medium
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_REP2101Medium
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_CALL202-210Medium

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
new org.apache.jcs.utils.discovery.UDPDiscoveryService(UDPDiscoveryAttributes, ICacheEventLogger) invokes Thread.start()MT_CORRECTNESSSC_START_IN_CTOR103Medium

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_CALL266Medium

org.apache.jcs.utils.threadpool.ThreadPoolManager

BugCategoryDetailsLinePriority
Incorrect lazy initialization and update of static field org.apache.jcs.utils.threadpool.ThreadPoolManager.props in org.apache.jcs.utils.threadpool.ThreadPoolManager.configure()MT_CORRECTNESSLI_LAZY_INIT_UPDATE_STATIC314-318High
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_METHOD339Medium