[RESULT] Re: [VOTE] Release jdbc-pool 1.1.0.1
Canceled. Not enough votes. Filip On 3/3/2011 12:24 PM, Filip Hanik - Dev Lists wrote: Source and Binary Packages http://people.apache.org/~fhanik/jdbc-pool/v1.1.0.1/ Tag http://svn.apache.org/repos/asf/tomcat/tags/JDBC_POOL_1_1_0_1/ Documentation http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html The proposed 1.1.0.1 release is: [ ] Broken - do not release [ ] Alpha - go ahead and release as 1.1.0.1 Alpha [ ] Beta - go ahead and release as 1.1.0.1 Beta [ ] Stable - go ahead and release as 1.1.0.1 Stable best Filip - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org - No virus found in this message. Checked by AVG - www.avg.com Version: 10.0.1204 / Virus Database: 1435/3479 - Release Date: 03/03/11 - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [VOTE] Release jdbc-pool 1.1.0.1
On Mar 10, 2011, at 1:50 PM, Filip Hanik - Dev Lists wrote: On 3/9/2011 11:57 PM, Eiji Takahashi wrote: Hi developers. I encountered the same issue, too. I got following exception. an exception is expected if the connection has been abandoned. it's tricky, one can always throw a SQLException, which leads to a problem, what if a method is called that does not throw SQLException. we can check for this as well I'm think more from a user PoV than a developer one... - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [VOTE] Release jdbc-pool 1.1.0.1
Verified... This seems enough, imo, to warrant a Broken... On Mar 10, 2011, at 12:09 AM, Keiichi Fujino wrote: 2011/3/4 Filip Hanik - Dev Lists devli...@hanik.com: Source and Binary Packages http://people.apache.org/~fhanik/jdbc-pool/v1.1.0.1/ Tag http://svn.apache.org/repos/asf/tomcat/tags/JDBC_POOL_1_1_0_1/ Documentation http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html The proposed 1.1.0.1 release is: [ ] Broken - do not release [ ] Alpha - go ahead and release as 1.1.0.1 Alpha [ ] Beta - go ahead and release as 1.1.0.1 Beta [X] Stable - go ahead and release as 1.1.0.1 Stable I tested jdbc-pool with simple applications. And it works well. However, when setting removeAbandoned=true, NPE is thrown out. It seems to occur when the Abandoned processing and SQL execution processing are executed at the same time. The synchronization of the Pool-Cleaner thread might not work correctly though I am not checking the code. The following are logs. =localhost.2011-03-10.log Mar 10, 2011 1:24:23 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [jdbc] in context with path [/test] threw exception java.lang.NullPointerException at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:125) at $Proxy9.prepareStatement(Unknown Source) at jdbc_pool.JDBCPoolServlet.doGet(JDBCPoolServlet.java:32) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) = -- Keiichi.Fujino - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [VOTE] Release jdbc-pool 1.1.0.1
On 3/10/2011 6:57 AM, Jim Jagielski wrote: Verified... This seems enough, imo, to warrant a Broken... not sure how this is broken :) The connection has been cancelled ie, removed for being abandoned. So you should not be able to use it anymore. There is a question if this should return a SQL exception instead of a NPE Filip On Mar 10, 2011, at 12:09 AM, Keiichi Fujino wrote: 2011/3/4 Filip Hanik - Dev Listsdevli...@hanik.com: Source and Binary Packages http://people.apache.org/~fhanik/jdbc-pool/v1.1.0.1/ Tag http://svn.apache.org/repos/asf/tomcat/tags/JDBC_POOL_1_1_0_1/ Documentation http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html The proposed 1.1.0.1 release is: [ ] Broken - do not release [ ] Alpha - go ahead and release as 1.1.0.1 Alpha [ ] Beta - go ahead and release as 1.1.0.1 Beta [X] Stable - go ahead and release as 1.1.0.1 Stable I tested jdbc-pool with simple applications. And it works well. However, when setting removeAbandoned=true, NPE is thrown out. It seems to occur when the Abandoned processing and SQL execution processing are executed at the same time. The synchronization of the Pool-Cleaner thread might not work correctly though I am not checking the code. The following are logs. =localhost.2011-03-10.log Mar 10, 2011 1:24:23 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [jdbc] in context with path [/test] threw exception java.lang.NullPointerException at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:125) at $Proxy9.prepareStatement(Unknown Source) at jdbc_pool.JDBCPoolServlet.doGet(JDBCPoolServlet.java:32) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) = -- Keiichi.Fujino - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org - No virus found in this message. Checked by AVG - www.avg.com Version: 10.0.1204 / Virus Database: 1497/3496 - Release Date: 03/10/11 - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [VOTE] Release jdbc-pool 1.1.0.1
On 3/9/2011 11:57 PM, Eiji Takahashi wrote: Hi developers. I encountered the same issue, too. I got following exception. an exception is expected if the connection has been abandoned. it's tricky, one can always throw a SQLException, which leads to a problem, what if a method is called that does not throw SQLException. we can check for this as well best Filip - java.lang.NullPointerException at org.apache.tomcat.jdbc.pool.interceptor.StatementCache$CachedStatement.closeInvoked(StatementCache.java:224) at org.apache.tomcat.jdbc.pool.interceptor.StatementDecoratorInterceptor$StatementProxy.invoke(StatementDecoratorInterceptor.java:226) at $Proxy1.close(Unknown Source) at test.PoolTestServlet.doPost(PoolTestServlet.java:30) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:354) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379) at org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:283) at org.apache.coyote.ajp.AjpAprProtocol$AjpConnectionHandler.process(AjpAprProtocol.java:209) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1671) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) --- When the busy connection reaches abandoned time-out, PoolCleaner calls ConnectionPool#abandon() for this connection. And, reset all Interceptors that is relevant to this connection. In the case of StatementCache, null is set to cacheSize and pcon. As a result, when CachedStatement.closeInvoked is executed, cacheSize.get() causes NPE. I think that other Interceptors also have same issue. I thought several solutions for this issue. (1) Prevent NPE at each Interceptors. (2) Create new interceptor for handling NPE, and set this interceptor to top of interceptor chain. - In this interceptor, change RuntimeException to SQLException. I think that (2) is better than (1), because (2) doesn't depend on design of each Interceptors. On Thu, Mar 10, 2011 at 2:09 PM, Keiichi Fujinokfuj...@apache.org wrote: 2011/3/4 Filip Hanik - Dev Listsdevli...@hanik.com: Source and Binary Packages http://people.apache.org/~fhanik/jdbc-pool/v1.1.0.1/ Tag http://svn.apache.org/repos/asf/tomcat/tags/JDBC_POOL_1_1_0_1/ Documentation http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html The proposed 1.1.0.1 release is: [ ] Broken - do not release [ ] Alpha - go ahead and release as 1.1.0.1 Alpha [ ] Beta - go ahead and release as 1.1.0.1 Beta [X] Stable - go ahead and release as 1.1.0.1 Stable I tested jdbc-pool with simple applications. And it works well. However, when setting removeAbandoned=true, NPE is thrown out. It seems to occur when the Abandoned processing and SQL execution processing are executed at the same time. The synchronization of the Pool-Cleaner thread might not work correctly though I am not checking the code. The following are logs. =localhost.2011-03-10.log Mar 10, 2011 1:24:23 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [jdbc] in context with path [/test] threw exception java.lang.NullPointerException at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:125) at $Proxy9.prepareStatement(Unknown Source) at jdbc_pool.JDBCPoolServlet.doGet(JDBCPoolServlet.java:32) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at
Re: [VOTE] Release jdbc-pool 1.1.0.1
On 10 March 2011 18:50, Filip Hanik - Dev Lists devli...@hanik.com wrote: On 3/9/2011 11:57 PM, Eiji Takahashi wrote: Hi developers. I encountered the same issue, too. I got following exception. an exception is expected if the connection has been abandoned. it's tricky, one can always throw a SQLException, which leads to a problem, what if a method is called that does not throw SQLException. we can check for this as well Letting the JVM generate an NPE does not immediately alert the user to the cause of the problem. Why not throw IllegalStateException with a suitable message? best Filip - java.lang.NullPointerException at org.apache.tomcat.jdbc.pool.interceptor.StatementCache$CachedStatement.closeInvoked(StatementCache.java:224) at org.apache.tomcat.jdbc.pool.interceptor.StatementDecoratorInterceptor$StatementProxy.invoke(StatementDecoratorInterceptor.java:226) at $Proxy1.close(Unknown Source) at test.PoolTestServlet.doPost(PoolTestServlet.java:30) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:354) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379) at org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:283) at org.apache.coyote.ajp.AjpAprProtocol$AjpConnectionHandler.process(AjpAprProtocol.java:209) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1671) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) --- When the busy connection reaches abandoned time-out, PoolCleaner calls ConnectionPool#abandon() for this connection. And, reset all Interceptors that is relevant to this connection. In the case of StatementCache, null is set to cacheSize and pcon. As a result, when CachedStatement.closeInvoked is executed, cacheSize.get() causes NPE. I think that other Interceptors also have same issue. I thought several solutions for this issue. (1) Prevent NPE at each Interceptors. (2) Create new interceptor for handling NPE, and set this interceptor to top of interceptor chain. - In this interceptor, change RuntimeException to SQLException. I think that (2) is better than (1), because (2) doesn't depend on design of each Interceptors. On Thu, Mar 10, 2011 at 2:09 PM, Keiichi Fujinokfuj...@apache.org wrote: 2011/3/4 Filip Hanik - Dev Listsdevli...@hanik.com: Source and Binary Packages http://people.apache.org/~fhanik/jdbc-pool/v1.1.0.1/ Tag http://svn.apache.org/repos/asf/tomcat/tags/JDBC_POOL_1_1_0_1/ Documentation http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html The proposed 1.1.0.1 release is: [ ] Broken - do not release [ ] Alpha - go ahead and release as 1.1.0.1 Alpha [ ] Beta - go ahead and release as 1.1.0.1 Beta [X] Stable - go ahead and release as 1.1.0.1 Stable I tested jdbc-pool with simple applications. And it works well. However, when setting removeAbandoned=true, NPE is thrown out. It seems to occur when the Abandoned processing and SQL execution processing are executed at the same time. The synchronization of the Pool-Cleaner thread might not work correctly though I am not checking the code. The following are logs. =localhost.2011-03-10.log Mar 10, 2011 1:24:23 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [jdbc] in context with path [/test] threw exception java.lang.NullPointerException at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:125) at $Proxy9.prepareStatement(Unknown Source) at jdbc_pool.JDBCPoolServlet.doGet(JDBCPoolServlet.java:32) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at
Re: [VOTE] Release jdbc-pool 1.1.0.1
ping! jdbc-pool needs a bit vote tlc On 03/03/2011 12:24 PM, Filip Hanik - Dev Lists wrote: Source and Binary Packages http://people.apache.org/~fhanik/jdbc-pool/v1.1.0.1/ Tag http://svn.apache.org/repos/asf/tomcat/tags/JDBC_POOL_1_1_0_1/ Documentation http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html The proposed 1.1.0.1 release is: [ ] Broken - do not release [ ] Alpha - go ahead and release as 1.1.0.1 Alpha [ ] Beta - go ahead and release as 1.1.0.1 Beta [ ] Stable - go ahead and release as 1.1.0.1 Stable best Filip - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [VOTE] Release jdbc-pool 1.1.0.1
2011/3/4 Filip Hanik - Dev Lists devli...@hanik.com: Source and Binary Packages http://people.apache.org/~fhanik/jdbc-pool/v1.1.0.1/ Tag http://svn.apache.org/repos/asf/tomcat/tags/JDBC_POOL_1_1_0_1/ Documentation http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html The proposed 1.1.0.1 release is: [ ] Broken - do not release [ ] Alpha - go ahead and release as 1.1.0.1 Alpha [ ] Beta - go ahead and release as 1.1.0.1 Beta [X] Stable - go ahead and release as 1.1.0.1 Stable I tested jdbc-pool with simple applications. And it works well. However, when setting removeAbandoned=true, NPE is thrown out. It seems to occur when the Abandoned processing and SQL execution processing are executed at the same time. The synchronization of the Pool-Cleaner thread might not work correctly though I am not checking the code. The following are logs. =localhost.2011-03-10.log Mar 10, 2011 1:24:23 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [jdbc] in context with path [/test] threw exception java.lang.NullPointerException at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:125) at $Proxy9.prepareStatement(Unknown Source) at jdbc_pool.JDBCPoolServlet.doGet(JDBCPoolServlet.java:32) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) = -- Keiichi.Fujino - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [VOTE] Release jdbc-pool 1.1.0.1
Hi developers. I encountered the same issue, too. I got following exception. - java.lang.NullPointerException at org.apache.tomcat.jdbc.pool.interceptor.StatementCache$CachedStatement.closeInvoked(StatementCache.java:224) at org.apache.tomcat.jdbc.pool.interceptor.StatementDecoratorInterceptor$StatementProxy.invoke(StatementDecoratorInterceptor.java:226) at $Proxy1.close(Unknown Source) at test.PoolTestServlet.doPost(PoolTestServlet.java:30) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:354) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379) at org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:283) at org.apache.coyote.ajp.AjpAprProtocol$AjpConnectionHandler.process(AjpAprProtocol.java:209) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1671) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) --- When the busy connection reaches abandoned time-out, PoolCleaner calls ConnectionPool#abandon() for this connection. And, reset all Interceptors that is relevant to this connection. In the case of StatementCache, null is set to cacheSize and pcon. As a result, when CachedStatement.closeInvoked is executed, cacheSize.get() causes NPE. I think that other Interceptors also have same issue. I thought several solutions for this issue. (1) Prevent NPE at each Interceptors. (2) Create new interceptor for handling NPE, and set this interceptor to top of interceptor chain. - In this interceptor, change RuntimeException to SQLException. I think that (2) is better than (1), because (2) doesn't depend on design of each Interceptors. On Thu, Mar 10, 2011 at 2:09 PM, Keiichi Fujino kfuj...@apache.org wrote: 2011/3/4 Filip Hanik - Dev Lists devli...@hanik.com: Source and Binary Packages http://people.apache.org/~fhanik/jdbc-pool/v1.1.0.1/ Tag http://svn.apache.org/repos/asf/tomcat/tags/JDBC_POOL_1_1_0_1/ Documentation http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html The proposed 1.1.0.1 release is: [ ] Broken - do not release [ ] Alpha - go ahead and release as 1.1.0.1 Alpha [ ] Beta - go ahead and release as 1.1.0.1 Beta [X] Stable - go ahead and release as 1.1.0.1 Stable I tested jdbc-pool with simple applications. And it works well. However, when setting removeAbandoned=true, NPE is thrown out. It seems to occur when the Abandoned processing and SQL execution processing are executed at the same time. The synchronization of the Pool-Cleaner thread might not work correctly though I am not checking the code. The following are logs. =localhost.2011-03-10.log Mar 10, 2011 1:24:23 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [jdbc] in context with path [/test] threw exception java.lang.NullPointerException at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:125) at $Proxy9.prepareStatement(Unknown Source) at jdbc_pool.JDBCPoolServlet.doGet(JDBCPoolServlet.java:32) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at
[VOTE] Release jdbc-pool 1.1.0.1
Source and Binary Packages http://people.apache.org/~fhanik/jdbc-pool/v1.1.0.1/ Tag http://svn.apache.org/repos/asf/tomcat/tags/JDBC_POOL_1_1_0_1/ Documentation http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html The proposed 1.1.0.1 release is: [ ] Broken - do not release [ ] Alpha - go ahead and release as 1.1.0.1 Alpha [ ] Beta - go ahead and release as 1.1.0.1 Beta [ ] Stable - go ahead and release as 1.1.0.1 Stable best Filip - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [VOTE] Release jdbc-pool 1.1.0.1
On 3 March 2011 19:24, Filip Hanik - Dev Lists devli...@hanik.com wrote: Source and Binary Packages http://people.apache.org/~fhanik/jdbc-pool/v1.1.0.1/ Tag http://svn.apache.org/repos/asf/tomcat/tags/JDBC_POOL_1_1_0_1/ Documentation http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html Top of the page says: Version 7.0.x, MMM d Bottom says Copyright © 1999-, Apache Software Foundation Similarly, the changelog.html file in the binary archive says: Version 7.0.x, MMM d Tomcat JDBC Connection Pool 1.1.0.0 ... Copyright © 1999-, Apache Software Foundation Note the incorrect version number. Builds OK with Java 1.5; tests compile OK with Java 1.6. Ant warning: build.xml:182: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds There were a lot of errors generated when I first ran the test: [junit] Testcase: testHalfway(org.apache.tomcat.jdbc.test.AbandonPercentageTest): Caused an ERROR [junit] Unsupported database file version or invalid file header in file Old database: C:\Documents and Settings\User\.h2\test.data.db - please convert the database to a SQL script and re-create it. [90048-129] They went away when I deleted the directory and re-ran the test. It would be better to create the test database in the current working directory if possible - that should avoid the problem, as well as making it easier to tidy up afterward. If not possible, then the test that normally creates the database could check for this error and recreate the database. The proposed 1.1.0.1 release is: [ ] Broken - do not release [ ] Alpha - go ahead and release as 1.1.0.1 Alpha [ ] Beta - go ahead and release as 1.1.0.1 Beta [ ] Stable - go ahead and release as 1.1.0.1 Stable best Filip - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org