> If you look further down in the log, you should see that a second  
> failure saves the allocation stack trace. 

this is the whole stack trace:

[21:18:13.114] [21:18:13.113] {http--8080-12}
java.lang.IllegalStateException: Connection null was not closed. Connections
must have a close() in a finally block.
[21:18:13.114] [21:18:13.113] {http--8080-12}   at
com.caucho.jca.UserTransactionImpl.abortTransaction(UserTransactionImpl.java:533)
[21:18:13.114] [21:18:13.113] {http--8080-12}   at
com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:206)
[21:18:13.114] [21:18:13.113] {http--8080-12}   at
com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:264)
[21:18:13.114] [21:18:13.113] {http--8080-12}   at
com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:275)
[21:18:13.114] [21:18:13.113] {http--8080-12}   at
com.caucho.server.port.TcpConnection.handleRequests(TcpConnection.java:644)
[21:18:13.114] [21:18:13.113] {http--8080-12}   at
com.caucho.server.port.TcpConnection$AcceptTask.doAccept(TcpConnection.java:1311)
[21:18:13.114] [21:18:13.113] {http--8080-12}   at
com.caucho.server.port.TcpConnection$AcceptTask.run(TcpConnection.java:1252)
[21:18:13.114] [21:18:13.113] {http--8080-12}   at
com.caucho.util.ThreadPool$PoolThread.runTasks(ThreadPool.java:866)
[21:18:13.114] [21:18:13.113] {http--8080-12}   at
com.caucho.util.ThreadPool$PoolThread.run(ThreadPool.java:779)
[21:18:13.114] [21:18:13.114] java.lang.IllegalStateException: Connection
null was not closed. Connections must have a close() in a finally block.
[21:18:13.114]                  at
com.caucho.jca.UserTransactionImpl.abortTransaction(UserTransactionImpl.java:533)
[21:18:13.114]                  at
com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:206)
[21:18:13.114]                  at
com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:264)
[21:18:13.114]                  at
com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:275)
[21:18:13.114]                  at
com.caucho.server.port.TcpConnection.handleRequests(TcpConnection.java:644)
[21:18:13.114]                  at
com.caucho.server.port.TcpConnection$AcceptTask.doAccept(TcpConnection.java:1311)
[21:18:13.114]                  at
com.caucho.server.port.TcpConnection$AcceptTask.run(TcpConnection.java:1252)
[21:18:13.114]                  at
com.caucho.util.ThreadPool$PoolThread.runTasks(ThreadPool.java:866)
[21:18:13.114]                  at
com.caucho.util.ThreadPool$PoolThread.run(ThreadPool.java:779)

it's [ and it was before ] duplicated - so i did not wanted to paste
additional redundant info.
i dont get anything more before / after - just my log marker telling that
next invocation of servlet started.


> The null is strange.  Is there a chance that the connection could be  
> passed from one thread to another?
[..]
> In other words, once Resin has detected a connection-close issue, it  
> starts gathering the stack trace when the connection is allocated.   
> The next time it sees the failure, it will write the allocation to the  
> log (it will be an IllegalStateException.)  At very least, that should  
> let you know which Connection is causing trouble.

thanks a lot for your explanation, this is in line with what i thought.
your guess is right. my servlet spawns couple of threads and wait till they
finish execution.:

  thread gets as paramete sql connection and is started.
  thread code [ run ] is enclosed in try-catch-finally
  i used to close connection in finally part of that try-catch - and was
getting rarely [ but still ] exceptions as above.
  servlet waits for all threads to finish [ by calling join, looping until
thread state is Thread.State.TERMINATED ].

  i have worked-around the problem by moving closing of sql connection away
from thread code. now it's after join-loop and after few 100k runs there are
no problems. i will try to isolate the issue in some smaller readable code, 
if i manage to reproduce it i'll post the example.

best regards
Pawel Kudzia
-- 
View this message in context: 
http://www.nabble.com/java.lang.IllegalStateException%3A-Connection-null-was-not-closed.-tp24593349p24596220.html
Sent from the Resin mailing list archive at Nabble.com.



_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest

Reply via email to