From: Jennifer C. <jen...@at...> - 2010-09-28 16:37:32
|
Here's an update on the some of the recent improvements to NG4J HEAD. (This doesn't include what Olaf has been doing.) . Regarding the memory leak reported by Graeme Stevenson: Code has been changed (as described in the message sent August 26, 2010) to use a com.sun.rowset.CachedRowSet to capture the contents of the ResultSet so that the ResultSet can be cleaned up. This fixes issues I saw when making other changes to the database code. Graeme - please report back if you test against NG4J HEAD - we'd be most appreciative to know whether this resolves that memory leak you observed. . In addition to applying the PreparedStatement patch supplied by Asheesh Laroia/ Creative Commons, much more of the database-related code has been updated to use PreparedStatements. . JUnit Tests: It is now even simpler to switch which database is used when the NG4J JUnit tests are run. It turns out that the problems in running the NG4J test code against an Oracle database were due to the version of Oracle. Based on what I've read online and experienced, Oracle 10g Express is buggy. So NG4J will simply not support Oracle 10g Express. (Newer versions of Oracle do not include an "Express" version.) The NG4J tests do work against Oracle 11g. Right now the tests run by default against the HSQLDB database (in-memory version); a driver for that is included with NG4J. Currently NG4J is also shipped with an old MySQL database driver. I propose that we remove that MySQL library. However we might consider adding the library containing the Apache Derby database driver since Derby now includes an in-memory version. We could even modify the test code to repeat the database-related tests (i.e. run once against HSQLDB and once against Apache Derby) - providing an even better sanity-check - without the need for a database to be installed. Jennifer |