IllegalStateException and NullPointerException thrown by CompositeCacheManager
------------------------------------------------------------------------------
Key: JCS-22
URL: https://issues.apache.org/jira/browse/JCS-22
Project: JCS
Issue Type: Bug
Components: Composite Cache
Affects Versions: jcs-1.2.7.9.2
Environment: N/A
Reporter: Michael Jordan
Assigned To: Aaron Smuts
Priority: Minor
If a cache configuration file does not exist on the classpath, an
IllegalStateException is thrown by JCS.getInstance. This is not mentioned in
the javadoc, and because it's not expected, crashes the calling program.
Preferably, this should be a checked exception of some sort to force the caller
to deal with this issue (potentially continuing their program with the cache
disabled), but should at least be documented.
JCS.getInstance(cacheClassName)
java.lang.IllegalStateException: Failed to load properties for name [/cache.ccf]
at
org.apache.jcs.engine.control.CompositeCacheManager.configure(CompositeCacheManager.java:239)
at
org.apache.jcs.engine.control.CompositeCacheManager.configure(CompositeCacheManager.java:191)
at
org.apache.jcs.engine.control.CompositeCacheManager.getInstance(CompositeCacheManager.java:119)
at org.apache.jcs.JCS.ensureCacheManager(JCS.java:99)
at org.apache.jcs.JCS.getInstance(JCS.java:64)
at com.telstra.tdsdi.cache.CacheManager.configure(CacheManager.java:72)
at com.telstra.tdsdi.cache.CacheManager.doWork(CacheManager.java:194)
at
com.telstra.common.supervisor.SupervisedThread.run(SupervisedThread.java:39)
The next time that getInstance is called, and every time after that, JCS reacts
differently - throwing a NullPointerException. This is inconsistent.
Preferably, this should check to see whether the first 'configure' attempt was
successful, and react accordingly. Optionally it could throw the same exception
as the first call, or failing that, should at least be documented in the
javadoc for this method.
java.lang.NullPointerException
at
org.apache.jcs.config.OptionConverter.findAndSubst(OptionConverter.java:289)
at
org.apache.jcs.config.OptionConverter.instantiateByKey(OptionConverter.java:167)
at
org.apache.jcs.engine.control.CompositeCacheConfigurator.parseElementAttributes(CompositeCacheConfigurator.java:438)
at
org.apache.jcs.engine.control.CompositeCacheConfigurator.parseRegion(CompositeCacheConfigurator.java:304)
at
org.apache.jcs.engine.control.CompositeCacheConfigurator.parseRegion(CompositeCacheConfigurator.java:280)
at
org.apache.jcs.engine.control.CompositeCacheManager.getCache(CompositeCacheManager.java:445)
at
org.apache.jcs.engine.control.CompositeCacheManager.getCache(CompositeCacheManager.java:384)
at
org.apache.jcs.engine.control.CompositeCacheManager.getCache(CompositeCacheManager.java:371)
at org.apache.jcs.JCS.getInstance(JCS.java:66)
at com.telstra.tdsdi.cache.CacheManager.configure(CacheManager.java:72)
at com.telstra.tdsdi.cache.CacheManager.doWork(CacheManager.java:194)
at
com.telstra.common.supervisor.SupervisedThread.run(SupervisedThread.java:39)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]