We have a Java application deployed with Java Web Start. Occasionally, users are reporting the following exception:

java.lang.RuntimeException: no free cache item: cache size = 64(64)
java.sql.SQLException: java.lang.RuntimeException: no free cache item: cache size = 64(64)
at com.quadcap.sql.DbException.wrapThrowable(DbExcept ion.java:79)


I have reviewed the database calls and it appears each connection is ultimately closed with the close() function.

I have tried to increase the cache size by using:

Properties p = new Properties();
p.setProperty("cacheSize", "128");

When I try that, though, I get this exception:

Java Web Start 1.4.2_06 Console, started Wed Feb 16 14:17:38 GMT-05:00 2005
Java 2 Runtime Environment: Version 1.4.2_06 by Sun Microsystems Inc.
Logging to file: C:\Documents and Settings\jbkeller\Desktop\test
2005-02-16 14:17:41.889: [TaskRunner] com.quadcap.sql.file.DatafileException
2005-02-16 14:17:41.889: [TaskRunner] com.quadcap.sql.file.DatafileException:
at com.quadcap.sql.file.Datafile.initFileDatabase(Dat afile.java:532)
at com.quadcap.sql.file.Datafile.init(Datafile.java:2 55)
at com.quadcap.sql.Database.init(Database.java:125)
at com.quadcap.jdbc.JdbcDriver.connect(JdbcDriver.jav a:225)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at biz.yearbooks.imagemanager.dao.impl.QEDDatabase.ge tConnection(QEDDatabase.java:119)
at biz.yearbooks.imagemanager.dao.impl.JDBCDatabase.< init>(JDBCDatabase.java:29)
at biz.yearbooks.imagemanager.dao.impl.QEDDatabase.<i nit>(QEDDatabase.java:32)
at biz.yearbooks.imagemanager.dao.Database.open(Datab ase.java:31)
at biz.yearbooks.imagemanager.dao.Database.openMainDa tabase(Database.java:27)
at biz.yearbooks.imagemanager.gui.ImageManager$3.run( ImageManager.java:108)
at biz.yearbooks.imagemanager.task.TaskManager$TaskRu nner.run(TaskManager.java:82)
Caused by: com.quadcap.util.ListException: tail() of empty list
at com.quadcap.util.DList.tail(DList.java:165)
at com.quadcap.sql.file.Cache.getCacheable(Cache.java :207)
at com.quadcap.sql.file.Cache.getCacheable(Cache.java :129)
at com.quadcap.sql.file.BlockFile.getPage(BlockFile.j ava:357)
at com.quadcap.sql.file.BlockFile.getBlock(BlockFile. java:362)
at com.quadcap.sql.file.BlockFile.<init>(BlockFile.ja va:180)
at com.quadcap.sql.file.Datafile.initFileDatabase(Dat afile.java:479)
... 12 more
2005-02-16 14:17:41.899: [TaskRunner] Cause of this exception:
2005-02-16 14:17:41.899: [TaskRunner] com.quadcap.util.ListException
2005-02-16 14:17:41.899: [TaskRunner] com.quadcap.util.ListException: tail() of empty list
at com.quadcap.util.DList.tail(DList.java:165)
at com.quadcap.sql.file.Cache.getCacheable(Cache.java :207)
at com.quadcap.sql.file.Cache.getCacheable(Cache.java :129)
at com.quadcap.sql.file.BlockFile.getPage(BlockFile.j ava:357)
at com.quadcap.sql.file.BlockFile.getBlock(BlockFile. java:362)
at com.quadcap.sql.file.BlockFile.<init>(BlockFile.ja va:180)
at com.quadcap.sql.file.Datafile.initFileDatabase(Dat afile.java:479)
at com.quadcap.sql.file.Datafile.init(Datafile.java:2 55)
at com.quadcap.sql.Database.init(Database.java:125)
at com.quadcap.jdbc.JdbcDriver.connect(JdbcDriver.jav a:225)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at biz.yearbooks.imagemanager.dao.impl.QEDDatabase.ge tConnection(QEDDatabase.java:119)
at biz.yearbooks.imagemanager.dao.impl.JDBCDatabase.< init>(JDBCDatabase.java:29)
at biz.yearbooks.imagemanager.dao.impl.QEDDatabase.<i nit>(QEDDatabase.java:32)
at biz.yearbooks.imagemanager.dao.Database.open(Datab ase.java:31)
at biz.yearbooks.imagemanager.dao.Database.openMainDa tabase(Database.java:27)
at biz.yearbooks.imagemanager.gui.ImageManager$3.run( ImageManager.java:108)
at biz.yearbooks.imagemanager.task.TaskManager$TaskRu nner.run(TaskManager.java:82)
java.sql.SQLException: com.quadcap.sql.file.DatafileException:
at com.quadcap.jdbc.JdbcDriver.connect(JdbcDriver.jav a:233)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at biz.yearbooks.imagemanager.dao.impl.QEDDatabase.ge tConnection(QEDDatabase.java:119)
at biz.yearbooks.imagemanager.dao.impl.JDBCDatabase.< init>(JDBCDatabase.java:29)
at biz.yearbooks.imagemanager.dao.impl.QEDDatabase.<i nit>(QEDDatabase.java:32)
at biz.yearbooks.imagemanager.dao.Database.open(Datab ase.java:31)
at biz.yearbooks.imagemanager.dao.Database.openMainDa tabase(Database.java:27)
at biz.yearbooks.imagemanager.gui.ImageManager$3.run( ImageManager.java:108)
at biz.yearbooks.imagemanager.task.TaskManager$TaskRu nner.run(TaskManager.java:82)




Any ideas would be greatly appreciated.

Jeff