Kind of hard to say.

What's happening is fairly obvious - close() has been called on the
underlying Postgres PreparedStatement object, but the
DelegatingPreparedStatement is remaining in the pool.

I would suspect that the Connection that had been used in creating the
statement has been closed at some point, which in turn has caused the
statement to be closed - but I wouldn't know where!

You could try adding:

statementFactoryConfig.testOnBorrow = true;

in DatabaseManager.initialize() inside the if(useStatementPool), before
the GenericKeyedObjectPoolFactory is created. By default statements will
not be validated, and this will have them checked prior to use.

Also, there appears to be a bug in the TableRowIterator, although this
probably isn't affecting you. In close():

results.close();
if (results != null)
    results.close();

should be:

if (results != null)
    results.close();
results = null;

Regards,
G


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
DSpace-tech mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-tech

Reply via email to