I had the same situation, and did some search, and found that it's actually ok to ignore the stack trace.
if you are interested, take a look at the source code:
http://sourceforge.krugle.com/files/arc ... ction.java
specifically:
Code:
/*
* If a throwable cause is provided, the PooledConnection is known to be broken (cause is an invalidating exception)
* and this method will not throw any exceptions, even if some resource closes fail.
*
* If cause is null, then we think the PooledConnection is healthy, and we will report (throw) an exception
* if resources unexpectedlay fail to close.
*/
private void close( Throwable cause ) throws SQLException
{
[... code removed ...]
if ( cause == null )
{
this.invalidatingException = NORMAL_CLOSE_PLACEHOLDER;
if ( logger.isLoggable( MLevel.FINEST ) )
logger.log( MLevel.FINEST, this + " closed by a client.", new Exception("DEBUG -- CLOSE BY CLIENT STACK TRACE") );
IMHO, it seems like a kind of safety mechanism by design to print the stack trace when the log level is at the finest (<= DEBUG) so that it can trace out the the client which closed the connection. To me, it's a little annoying while developing, but once in production, this shouldn't be an issue.