if (LOG_STATEMENT_IN_POOL)
if (LOG_STATEMENT_IN_POOL && logChannel != null)
    synchronized void put(Object reference) throws SQLException {        if (reference == null)            throw new NullPointerException();        try {            if (CACHE_PREPARED_STATEMENTS) {                                XCachablePreparedStatement statement =                     (XCachablePreparedStatement)reference;                                if (statement.isCached()) {                    statement.setConnection(null);                    freeReferences.put(reference);                }                                 workingReferences.remove(statement.getOriginal());                // release statement if it is not cached                if (!statement.isCached())                    statement.forceClose();                                if (LOG_STATEMENT_IN_POOL)                    logChannel.info("Returned prepared statement to pool.");            } else                ((XCachablePreparedStatement)reference).forceClose();                        } catch(InterruptedException ex) {            logChannel.warn("Could not put statement back to pool.", ex);        }    }