Que veut dire ce mystérieux message ? Qui l'écrit ?
Tout d'abord, sachez que se message est produit par JBoss, pour être exact, ce message est écrit par le CachedConnectionManager de JBoss, qui encapsule Hibernate.
Il s'agit d'un pool de connexion aux bases de données.
Il écrit ce message, lorsqu'il supprime une connexion de son pool parce qu'elle n'est plus utilisée alors qu'elle est encore ouverte (ce qui est contradictoire donc).
Le code suivant ne pose aucun problème, car on ferme tout :
Connection aConnection = null; /* Connexion à la base de données */ Statement aStatement = null; /* La requête */ ResultSet aResultSet = null; /* résultat de la requête */ try { aConnection = getConnectionDansArbreJndiJBoss() ; aStatement = aConnection.prepareStatement(requete) ; aResultSet = aStatement.executeQuery(requete); } catch (SQLException e) { ... } finally { aResultSet.close(); // aResultSet != null !!!! aStatement.close(); // aStatement != null !!!! aConnection.close(); // aConnection != null !!!! }
mais enlevez la aConnection.close() et vous verrez apparaître le message !
La difficulté avec ce message est d'identifier l'élément posant problème.