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 |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in org.apache.jcs.admin.JCSAdminBean.getByteCount(CompositeCache) | STYLE | REC_CATCH_EXCEPTION | 218 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Synchronization on AbstractDiskCache.purgatory in futile attempt to guard it | MT_CORRECTNESS | ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD | 158 | High |
| 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 | 119 | Medium |
| Class org.apache.jcs.auxiliary.disk.block.BlockDiskCache defines non-transient non-serializable instance field dataFile | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Class org.apache.jcs.auxiliary.disk.block.BlockDiskCache defines non-transient non-serializable instance field keyStore | BAD_PRACTICE | SE_BAD_FIELD | Not available | 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 |
|---|---|---|---|---|
| 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_CORRECTNESS | LI_LAZY_INIT_STATIC | 125-127 | Medium |
| 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 | 97 | 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 | 378 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Inconsistent synchronization of org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache.bytesFree; locked 66% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 1291 | Medium |
| Inconsistent synchronization of org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache.startupSize; locked 50% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 302 | Medium |
| 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 | 975 | Medium |
| Class org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache defines non-transient non-serializable instance field currentOptimizationThread | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Class org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache defines non-transient non-serializable instance field dataFile | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Class org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache defines non-transient non-serializable instance field keyFile | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Class org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache defines non-transient non-serializable instance field recycle | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache$LRUMap stored into non-transient field IndexedDiskCache.keyHash | BAD_PRACTICE | SE_BAD_FIELD_STORE | 1024 | Medium |
| org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache.optimizeFile() does not release lock on all exception paths | MT_CORRECTNESS | UL_UNRELEASED_LOCK_EXCEPTION_PATH | 1268 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.auxiliary.disk.indexed.IndexedDiskElementDescriptor defines compareTo(IndexedDiskElementDescriptor) and uses Object.equals() | BAD_PRACTICE | EQ_COMPARETO_USE_OBJECT_EQUALS | 74-92 | 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 |
| Class org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCache defines non-transient non-serializable instance field elementSerializer | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Class org.apache.jcs.auxiliary.disk.jdbc.JDBCDiskCache defines non-transient non-serializable instance field poolAccess | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| org.apache.jcs.utils.serialization.StandardSerializer stored into non-transient field JDBCDiskCache.elementSerializer | BAD_PRACTICE | SE_BAD_FIELD_STORE | 92 | 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 | 61 | High |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Possible null pointer dereference of sStatement in org.apache.jcs.auxiliary.disk.jdbc.hsql.HSQLDiskCacheFactory.setupTABLE(Connection, String) on exception path | CORRECTNESS | NP_NULL_ON_SOME_PATH_EXCEPTION | 201 | Medium |
| 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 | 201 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class org.apache.jcs.auxiliary.disk.jdbc.mysql.MySQLDiskCacheManager defines non-transient non-serializable instance field daemon | BAD_PRACTICE | SE_BAD_FIELD | Not available | 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 | 247 | Medium |
| Method org.apache.jcs.auxiliary.disk.jdbc.mysql.MySQLTableOptimizer.repairTable(Statement) may fail to clean up java.sql.ResultSet | EXPERIMENTAL | OBL_UNSATISFIED_OBLIGATION | 278 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class org.apache.jcs.auxiliary.lateral.LateralCache defines non-transient non-serializable instance field lateralCacheService | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Class org.apache.jcs.auxiliary.lateral.LateralCache defines non-transient non-serializable instance field monitor | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| org.apache.jcs.auxiliary.lateral.ZombieLateralCacheService stored into non-transient field LateralCache.lateralCacheService | BAD_PRACTICE | SE_BAD_FIELD_STORE | 355 | 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 |
|---|---|---|---|---|
| Class org.apache.jcs.auxiliary.lateral.LateralCacheNoWait defines non-transient non-serializable instance field eventQueue | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| new org.apache.jcs.auxiliary.lateral.LateralCacheNoWaitFacade(LateralCacheNoWait[], ILateralCacheAttributes) may expose internal representation by storing an externally mutable object into LateralCacheNoWaitFacade.noWaits | MALICIOUS_CODE | EI_EXPOSE_REP2 | 81 | 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 |
| Class org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPCacheManager defines non-transient non-serializable instance field lateralService | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Class org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPCacheManager defines non-transient non-serializable instance field lateralWatch | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| org.apache.jcs.auxiliary.lateral.ZombieLateralCacheService stored into non-transient field LateralTCPCacheManager.lateralService | BAD_PRACTICE | SE_BAD_FIELD_STORE | 199 | Medium |
| org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPService stored into non-transient field LateralTCPCacheManager.lateralService | BAD_PRACTICE | SE_BAD_FIELD_STORE | 181 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| 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 | 88 | 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 | 163 | 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 | 173 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Naked notify in org.apache.jcs.auxiliary.remote.RemoteCacheFailoverRunner.notifyError() | MT_CORRECTNESS | NN_NAKED_NOTIFY | 103 | Medium |
| Exception is caught when Exception is not thrown in org.apache.jcs.auxiliary.remote.RemoteCacheFailoverRunner.connectAndRestore() | STYLE | REC_CATCH_EXCEPTION | 259 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class org.apache.jcs.auxiliary.remote.RemoteCacheManager defines non-transient non-serializable instance field cacheEventLogger | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Class org.apache.jcs.auxiliary.remote.RemoteCacheManager defines non-transient non-serializable instance field elementSerializer | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Class org.apache.jcs.auxiliary.remote.RemoteCacheManager defines non-transient non-serializable instance field remoteWatch | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| org.apache.jcs.auxiliary.remote.ZombieRemoteCacheService stored into non-transient field RemoteCacheManager.remoteService | BAD_PRACTICE | SE_BAD_FIELD_STORE | 164 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Possible null pointer dereference of RemoteCacheManager$Location.host in org.apache.jcs.auxiliary.remote.RemoteCacheManager$Location.equals(Object) | CORRECTNESS | NP_NULL_ON_SOME_PATH | 581 | 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.RemoteCacheNoWait defines non-transient non-serializable instance field cacheEventQueue | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in org.apache.jcs.auxiliary.remote.RemoteCacheRestore.canFix() | STYLE | REC_CATCH_EXCEPTION | 91 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class org.apache.jcs.auxiliary.remote.http.client.RemoteHttpCacheManager defines non-transient non-serializable instance field cacheEventLogger | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Class org.apache.jcs.auxiliary.remote.http.client.RemoteHttpCacheManager defines non-transient non-serializable instance field elementSerializer | BAD_PRACTICE | SE_BAD_FIELD | Not available | 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 | 412 | 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 |
|---|---|---|---|---|
| Unread field: org.apache.jcs.engine.AbstractCacheEventQueue$AbstractCacheEvent.done | PERFORMANCE | URF_UNREAD_FIELD | 255 | Medium |
| 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.setAuxCaches(AuxiliaryCache[]) may expose internal representation by storing an externally mutable object into CompositeCache.auxCaches | MALICIOUS_CODE | EI_EXPOSE_REP2 | 156 | 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 | 112 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.apache.jcs.engine.control.CompositeCacheManager.instance should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 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 | 79 | 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 | 78 | 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 | 91 | 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 | 99 | 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 | 201-209 | 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 |
|---|---|---|---|---|
| Incorrect lazy initialization of static field org.apache.jcs.utils.discovery.UDPDiscoveryService.senderDaemon in new org.apache.jcs.utils.discovery.UDPDiscoveryService(UDPDiscoveryAttributes, ICacheEventLogger) | MT_CORRECTNESS | LI_LAZY_INIT_STATIC | 119-121 | Medium |
| new org.apache.jcs.utils.discovery.UDPDiscoveryService(UDPDiscoveryAttributes, ICacheEventLogger) invokes Thread.start() | MT_CORRECTNESS | SC_START_IN_CTOR | 110 | 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 | 257 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Incorrect lazy initialization of static field org.apache.jcs.utils.threadpool.ThreadPoolManager.props in org.apache.jcs.utils.threadpool.ThreadPoolManager.configure() | MT_CORRECTNESS | LI_LAZY_INIT_STATIC | 310-330 | Medium |
| Incorrect lazy initialization of static field org.apache.jcs.utils.threadpool.ThreadPoolManager.props in org.apache.jcs.utils.threadpool.ThreadPoolManager.configure() | MT_CORRECTNESS | LI_LAZY_INIT_STATIC | 327-330 | Medium |
| 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 | 335 | Medium |