A potential connection leak detected for connection pool

Quando dá esse erro (na verdade um warning, no log do Glassfish 2) quer dizer que alguma parte do código abriu uma conexão ao banco e não fechou? Como detectar onde está ocorrendo?
Pelo código, parece estar fechando a conexão:

public Requisitante obterRequisitante(Long codigo){ Requisitante req = null; String consulta = "SELECT * FROM Requisitante WHERE codigoRequisitanteSD = '"+ codigo +"' "; try { banco = BD.getInstancia(); banco.conectarMysql(); rs = banco.executaConsulta(consulta); while (rs.next()) { req = new Requisitante(codigo, rs.getString("nome"), rs.getString("categoria"), null, rs.getString("email"), null, null, rs.getString("telefone"), rs.getString("cargo"), null); } } catch (Exception e) { new log(": Erro obtendo requisitante" + e.getMessage()); } finally { banco.fechar(); } return req; }

Fiz algumas alterações nos DAOs, mas o Glassfish dá alguns warnings de "connection leak", bem na hora do getConnection da classe BD…

[code]
public Connection conectarMysql() {
try {
InitialContext ic = new InitialContext();
DataSource ds = (DataSource) ic.lookup(strCon);
conexao = ds.getConnection(); // <==== Linha que o warning do Glassfish aponta como possível "leak" de conexão

		} catch (Exception ex) {
			conexao = null;
			new log(&quot;: Exceção JNDI&quot; + ex.getMessage());
		}
		return conexao;
	}[/code]

O que pode ser?