[Resolvido]Jboss log: Closing a result set you left open! Please close it yourself

9 respostas
zap

Ola pessoal,

Alguem ja teve essa mensagem no Jboss ?

WARN[20 Feb 2008 08:01:00,107] - Closing a result set you left open! Please close it yourself. java.lang.Throwable: STACKTRACE at java.lang.Throwable.<init>(Throwable.java:56) at java.lang.Throwable.<init>(Throwable.java:67) at org.jboss.resource.adapter.jdbc.WrappedStatement.registerResultSet(WrappedStatement.java:617) at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:237) at dao.ProdDAO.getIdProd(ProdDAO.java:1504) at dao.ProdDAO.getListaProd(ProdDAO.java:73) at dao.ProdDAO.getListaProd(ProdDAO.java:1015) at action.ProdAction.buscarProd(ProdAction.java:1032) at action.ProdAction.buscarProdutos(ProdAction.java:1082) at sun.reflect.GeneratedMethodAccessor291.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:615) at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280) at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)

Ja foi verificado e a aplicacao esta dando o close em todos os objetos de conexao ( Connection, PreparedStatement, ResultSet )

9 Respostas

cristianomariano

Tive esse erro uma vez com o Derby e resolvi, mas não entendi muito bem como. Tava dando esse erro pq era retornado um ResultSet e não tava vindo dados nele. Tenta fazer vir alguns registros pra ver se funciona.
Abraço!

P

Já vi também, mas associada a uma exceção anterior. Não será este seu caso ?

De qq forma, o stack trace corresponde ao momento em que a conexão foi “entregue” ao seu código. Deve ser fácil achar o caminho daí para frente.

zap

cristianomariano:
Tive esse erro uma vez com o Derby e resolvi, mas não entendi muito bem como. Tava dando esse erro pq era retornado um ResultSet e não tava vindo dados nele. Tenta fazer vir alguns registros pra ver se funciona.
Abraço!

Entao, as conexoes vem do pool do Jboss. No caso do seu select sua query nao retornava nada ? Como voce resolveu esse problema ?

psevestre:
Já vi também, mas associada a uma exceção anterior. Não será este seu caso ?

De qq forma, o stack trace corresponde ao momento em que a conexão foi “entregue” ao seu código. Deve ser fácil achar o caminho daí para frente.

Mas o problema e que exatamente no metodo que diz nao estar fechando o result set foi verificado que esta fechando. Nao sei se entendi direito o que voce quis dizer

P


Mas o problema e que exatament.

e no metodo que diz nao estar fechando o result set foi verificado que esta fechando. Nao sei se entendi direito o que voce quis dizer

Com finally ?

Um erro comum é fechar apenas no caminho “normal” de execução. Se o código lançar uma exceção antes de chegar no close(), haverá o “vazamento” de um resultset ou conexão dependendo do caso.

Na dúvida, feche tudo em um finally.

zap

psevestre:

Com finally ?

Um erro comum é fechar apenas no caminho “normal” de execução. Se o código lançar uma exceção antes de chegar no close(), haverá o “vazamento” de um resultset ou conexão dependendo do caso.

Na dúvida, feche tudo em um finally.

Correto, sempre fecho no finally

jgbt

Normalmente esse erro é lançado por causa de alguma outra exception que ocorreu.
Vc tem certeza que não tem nenhum outro erro no console?

[]´s

zap

Problema resolvido:

O PreparedStatement, em alguns casos, estava sendo fechado antes do ResultSet.

Porém, vendo o doc da API vi que quando o PreparedStatement e fechado ele fecha implicitamente o ResultSet. E quando tentava fechar o RS logo abaixo nao surtia efeito

E isso que aconteceu, o JBoss nao reconhecia que o ResultSet estava sendo fechado, quando o PreparedStatement o fazia.

:thumbup:

Mauricio_Linhares

Que tal você prestar uma caridade a comunidade e cadastrar esse bug lá no issue tracker do JBoss?

http://jira.jboss.org/jira/browse/JBTM

zap

Maurício Linhares:
Que tal você prestar uma caridade a comunidade e cadastrar esse bug lá no issue tracker do JBoss?

http://jira.jboss.org/jira/browse/JBTM

Feito
http://jira.jboss.org/jira/browse/JBAS-5303

Criado 26 de fevereiro de 2008
Ultima resposta 10 de mar. de 2008
Respostas 9
Participantes 5