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

Thomas Vandahl resolved JCS-113.
--------------------------------

       Resolution: Fixed
    Fix Version/s: jcs-2.0.0

Fixed in SVN. 

> Potential NPE in JDBCDiskCache
> ------------------------------
>
>                 Key: JCS-113
>                 URL: https://issues.apache.org/jira/browse/JCS-113
>             Project: Commons JCS
>          Issue Type: Bug
>            Reporter: Sebb
>            Assignee: Thomas Vandahl
>             Fix For: jcs-2.0.0
>
>
> The test JDBCDiskCacheManagerUnitTest fails with an NPE if debug logging is 
> enabled.
> {code}
> java.lang.NullPointerException
> at 
> org.apache.commons.jcs.auxiliary.disk.jdbc.JDBCDiskCache.getSize(JDBCDiskCache.java:982)
> at 
> org.apache.commons.jcs.auxiliary.disk.jdbc.JDBCDiskCache.getStatistics(JDBCDiskCache.java:1146)
> at 
> org.apache.commons.jcs.auxiliary.disk.AbstractDiskCache.getStats(AbstractDiskCache.java:525)
> at 
> org.apache.commons.jcs.auxiliary.disk.jdbc.JDBCDiskCache.toString(JDBCDiskCache.java:1251)
> at 
> org.apache.commons.jcs.auxiliary.disk.jdbc.JDBCDiskCacheManagerAbstractTemplate.getCache(JDBCDiskCacheManagerAbstractTemplate.java:119)
> at 
> org.apache.commons.jcs.auxiliary.disk.jdbc.JDBCDiskCacheManager.getCache(JDBCDiskCacheManager.java:117)
> at 
> org.apache.commons.jcs.auxiliary.disk.jdbc.JDBCDiskCacheManagerUnitTest.testGetCache_normal(JDBCDiskCacheManagerUnitTest.java:49)
> {code}
> That happens because the getSize() method calls
> {code}
> getPoolAccess().getConnection()
> {code}
> and getPoolAccess() may return null if the initializePoolAccess method called 
> by the constructor fails to set up the pool.
> It is trivial to check if the poolAccess field has been set up and avoid the 
> NPE in getSize(). However, the getPoolAccess() method is used extensively 
> within the class, and also externally as well.
> It looks as though the class is barely usable if the field cannot be 
> initialised, so it might perhaps be better if the constructor threw an 
> Exception of some kind.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to