[
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)