[ 
https://issues.apache.org/jira/browse/JCS-22?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thomas Vandahl resolved JCS-22.
-------------------------------

    Resolution: Fixed

Fixed in SVN. JCS will now throw a CacheException in this case.
                
> 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.3
>         Environment: N/A
>            Reporter: Michael Jordan
>            Assignee: Aaron Smuts
>            Priority: Minor
>             Fix For: jcs-1.4-dev
>
>
> 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.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to