The following document contains the results of FindBugs Report
FindBugs Version is 1.3.9
Threshold is medium
Effort is min
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| new org.apache.jcs.auxiliary.disk.block.BlockDiskCache(BlockDiskCacheAttributes, IElementSerializer) ignores exceptional return value of java.io.File.mkdirs() | BAD_PRACTICE | RV_RETURN_VALUE_IGNORED_BAD_PRACTICE | 123 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.auxiliary.disk.block.BlockDiskElementDescriptor.getBlocks() may expose internal representation by returning BlockDiskElementDescriptor.blocks | MALICIOUS_CODE | EI_EXPOSE_REP | 78 | Medium |
| org.apache.jcs.auxiliary.disk.block.BlockDiskElementDescriptor.setBlocks(int[]) may expose internal representation by storing an externally mutable object into BlockDiskElementDescriptor.blocks | MALICIOUS_CODE | EI_EXPOSE_REP2 | 68 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| new org.apache.jcs.auxiliary.disk.block.BlockDiskKeyStore(BlockDiskCacheAttributes, BlockDiskCache) ignores exceptional return value of java.io.File.mkdirs() | BAD_PRACTICE | RV_RETURN_VALUE_IGNORED_BAD_PRACTICE | 89 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.auxiliary.disk.file.FileDiskCache.processUpdate(ICacheElement) ignores exceptional return value of java.io.File.renameTo(File) | BAD_PRACTICE | RV_RETURN_VALUE_IGNORED_BAD_PRACTICE | 404 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache.reset() ignores exceptional return value of java.io.File.delete() | BAD_PRACTICE | RV_RETURN_VALUE_IGNORED_BAD_PRACTICE | 1009 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Method org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCache.doesElementExist(ICacheElement) may fail to clean up java.sql.ResultSet | EXPERIMENTAL | OBL_UNSATISFIED_OBLIGATION | 457 | Medium |
| Method org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCache.insertRow(ICacheElement, Connection, byte[]) may fail to clean up java.sql.Statement | EXPERIMENTAL | OBL_UNSATISFIED_OBLIGATION | 334 | Medium |
| Method org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCache.updateRow(ICacheElement, Connection, byte[]) may fail to clean up java.sql.Statement | EXPERIMENTAL | OBL_UNSATISFIED_OBLIGATION | 397 | Medium |
| A prepared statement is generated from a nonconstant String at org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCache.updateRow(ICacheElement, Connection, byte[]) | SECURITY | SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING | 397 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCacheManagerAbstractTemplate.clients should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available | Medium |
| org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCacheManagerAbstractTemplate.caches isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 55 | High |
| org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCacheManagerAbstractTemplate.tableStates isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 62 | High |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Method org.apache.jcs.auxiliary.disk.jdbc.hsql.HSQLDiskCacheFactory.setupTABLE(Connection, String) passes a nonconstant String to an execute method on an SQL statement | SECURITY | SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE | 194 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Method org.apache.jcs.auxiliary.disk.jdbc.mysql.MySQLTableOptimizer.getTableStatus(Statement) may fail to clean up java.sql.ResultSet | EXPERIMENTAL | OBL_UNSATISFIED_OBLIGATION | 250 | Medium |
| Method org.apache.jcs.auxiliary.disk.jdbc.mysql.MySQLTableOptimizer.optimizeTable() may fail to clean up java.sql.ResultSet | EXPERIMENTAL | OBL_UNSATISFIED_OBLIGATION | 156 | Medium |
| Method org.apache.jcs.auxiliary.disk.jdbc.mysql.MySQLTableOptimizer.repairTable(Statement) may fail to clean up java.sql.ResultSet | EXPERIMENTAL | OBL_UNSATISFIED_OBLIGATION | 281 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.auxiliary.lateral.LateralCacheInfo.vmid isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 44 | High |
| org.apache.jcs.auxiliary.lateral.LateralCacheInfo.listenerId isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 47 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Naked notify in org.apache.jcs.auxiliary.lateral.LateralCacheMonitor.notifyError() | MT_CORRECTNESS | NN_NAKED_NOTIFY | 105 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| new org.apache.jcs.auxiliary.lateral.LateralCacheNoWaitFacade(ILateralCacheListener, LateralCacheNoWait[], ILateralCacheAttributes) may expose internal representation by storing an externally mutable object into LateralCacheNoWaitFacade.noWaits | MALICIOUS_CODE | EI_EXPOSE_REP2 | 89 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPCacheManager.instances isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 70 | High |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Inconsistent synchronization of org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPListener.terminated; locked 50% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 513 | Medium |
| Class org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPListener defines non-transient non-serializable instance field receiver | BAD_PRACTICE | SE_BAD_FIELD | Not available | High |
| Class org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPListener defines non-transient non-serializable instance field pooledExecutor | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| new org.apache.jcs.auxiliary.remote.AbstractRemoteCacheNoWaitFacade(RemoteCacheNoWait[], RemoteCacheAttributes, ICompositeCacheManager, ICacheEventLogger, IElementSerializer) may expose internal representation by storing an externally mutable object into AbstractRemoteCacheNoWaitFacade.noWaits | MALICIOUS_CODE | EI_EXPOSE_REP2 | 87 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.auxiliary.remote.RemoteCacheAttributes.getFailovers() may expose internal representation by returning RemoteCacheAttributes.failovers | MALICIOUS_CODE | EI_EXPOSE_REP | 98 | Medium |
| org.apache.jcs.auxiliary.remote.RemoteCacheAttributes.setFailovers(String[]) may expose internal representation by storing an externally mutable object into RemoteCacheAttributes.failovers | MALICIOUS_CODE | EI_EXPOSE_REP2 | 108 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Naked notify in org.apache.jcs.auxiliary.remote.RemoteCacheFailoverRunner.notifyError() | MT_CORRECTNESS | NN_NAKED_NOTIFY | 104 | Medium |
| Exception is caught when Exception is not thrown in org.apache.jcs.auxiliary.remote.RemoteCacheFailoverRunner.connectAndRestore() | STYLE | REC_CATCH_EXCEPTION | 261 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Naked notify in org.apache.jcs.auxiliary.remote.RemoteCacheMonitor.notifyError() | MT_CORRECTNESS | NN_NAKED_NOTIFY | 108 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class org.apache.jcs.auxiliary.remote.http.server.RemoteHttpCacheServlet defines non-transient non-serializable instance field remoteHttpCacheServiceAdaptor | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Class org.apache.jcs.auxiliary.remote.http.server.RemoteHttpCacheServlet defines non-transient non-serializable instance field serializer | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.auxiliary.remote.server.RemoteCacheServerFactory.shutdownImpl(String, int) calls Thread.sleep() with a lock held | MT_CORRECTNESS | SWL_SLEEP_WITH_LOCK_HELD | 427 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.auxiliary.remote.server.RemoteCacheServerInfo.vmid isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 39 | High |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.engine.CacheElementSerialized.getSerializedValue() may expose internal representation by returning CacheElementSerialized.serializedValue | MALICIOUS_CODE | EI_EXPOSE_REP | 85 | Medium |
| new org.apache.jcs.engine.CacheElementSerialized(String, Serializable, byte[], IElementAttributes) may expose internal representation by storing an externally mutable object into CacheElementSerialized.serializedValue | MALICIOUS_CODE | EI_EXPOSE_REP2 | 62 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.engine.CacheInfo.vmid isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 43 | High |
| org.apache.jcs.engine.CacheInfo.listenerId isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 46 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class org.apache.jcs.engine.ElementAttributes implements Cloneable but does not define or use clone method | BAD_PRACTICE | CN_IDIOM | 52-462 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.engine.control.CompositeCache.getAuxCaches() may expose internal representation by returning CompositeCache.auxCaches | MALICIOUS_CODE | EI_EXPOSE_REP | 172 | Medium |
| org.apache.jcs.engine.control.CompositeCache.setAuxCaches(AuxiliaryCache[]) may expose internal representation by storing an externally mutable object into CompositeCache.auxCaches | MALICIOUS_CODE | EI_EXPOSE_REP2 | 157 | Medium |
| Class org.apache.jcs.engine.control.CompositeCache defines non-transient non-serializable instance field auxCaches | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Method org.apache.jcs.engine.control.CompositeCacheConfigurator.doConfigure(String) may fail to clean up java.io.InputStream | EXPERIMENTAL | OBL_UNSATISFIED_OBLIGATION | 114 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.engine.control.CompositeCacheManager.instance should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available | Medium |
| Class org.apache.jcs.engine.control.CompositeCacheManager defines non-transient non-serializable instance field scheduledExecutor | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| new org.apache.jcs.engine.control.event.ElementEventQueue(String) invokes Thread.start() | MT_CORRECTNESS | SC_START_IN_CTOR | 82 | Medium |
| Class org.apache.jcs.engine.control.event.ElementEventQueue defines non-transient non-serializable instance field head | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Class org.apache.jcs.engine.control.event.ElementEventQueue defines non-transient non-serializable instance field processorThread | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Class org.apache.jcs.engine.control.event.ElementEventQueue defines non-transient non-serializable instance field tail | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| org.apache.jcs.engine.control.event.ElementEventQueue$QProcessor stored into non-transient field ElementEventQueue.processorThread | BAD_PRACTICE | SE_BAD_FIELD_STORE | 81 | Medium |
| org.apache.jcs.engine.control.event.ElementEventQueue$QProcessor stored into non-transient field ElementEventQueue.processorThread | BAD_PRACTICE | SE_BAD_FIELD_STORE | 220 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.engine.stats.CacheStats.getAuxiliaryCacheStats() may expose internal representation by returning CacheStats.auxStats | MALICIOUS_CODE | EI_EXPOSE_REP | 72 | Medium |
| org.apache.jcs.engine.stats.CacheStats.getStatElements() may expose internal representation by returning CacheStats.stats | MALICIOUS_CODE | EI_EXPOSE_REP | 92 | Medium |
| org.apache.jcs.engine.stats.CacheStats.setAuxiliaryCacheStats(IStats[]) may expose internal representation by storing an externally mutable object into CacheStats.auxStats | MALICIOUS_CODE | EI_EXPOSE_REP2 | 80 | Medium |
| org.apache.jcs.engine.stats.CacheStats.setStatElements(IStatElement[]) may expose internal representation by storing an externally mutable object into CacheStats.stats | MALICIOUS_CODE | EI_EXPOSE_REP2 | 101 | Medium |
| Class org.apache.jcs.engine.stats.CacheStats defines non-transient non-serializable instance field stats | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.engine.stats.Stats.getStatElements() may expose internal representation by returning Stats.stats | MALICIOUS_CODE | EI_EXPOSE_REP | 45 | Medium |
| org.apache.jcs.engine.stats.Stats.setStatElements(IStatElement[]) may expose internal representation by storing an externally mutable object into Stats.stats | MALICIOUS_CODE | EI_EXPOSE_REP2 | 53 | Medium |
| Class org.apache.jcs.engine.stats.Stats defines non-transient non-serializable instance field stats | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Wait not in loop in org.apache.jcs.utils.access.JCSWorker.run(Serializable, String, JCSWorkerHelper) | MT_CORRECTNESS | WA_NOT_IN_LOOP | 229 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.utils.discovery.UDPDiscoveryAttributes.clone() does not call super.clone() | BAD_PRACTICE | CN_IDIOM_NO_SUPER_CALL | 202-210 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.utils.discovery.UDPDiscoveryInfo.vmid isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 34 | High |
| org.apache.jcs.utils.discovery.UDPDiscoveryInfo.listenerId isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 39 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| new org.apache.jcs.utils.discovery.UDPDiscoveryService(UDPDiscoveryAttributes, ICacheEventLogger) invokes Thread.start() | MT_CORRECTNESS | SC_START_IN_CTOR | 103 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.utils.key.KeyGeneratorUtil.leadNumber should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 47 | Medium |
| org.apache.jcs.utils.key.KeyGeneratorUtil.counterResetIntervalMillis isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 32 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.utils.threadpool.PoolConfiguration.clone() does not call super.clone() | BAD_PRACTICE | CN_IDIOM_NO_SUPER_CALL | 266 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Incorrect lazy initialization and update of static field org.apache.jcs.utils.threadpool.ThreadPoolManager.props in org.apache.jcs.utils.threadpool.ThreadPoolManager.configure() | MT_CORRECTNESS | LI_LAZY_INIT_UPDATE_STATIC | 314-318 | High |
| Write to static field org.apache.jcs.utils.threadpool.ThreadPoolManager.defaultConfig from instance method org.apache.jcs.utils.threadpool.ThreadPoolManager.configure() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 339 | Medium |