From e75837bf0fb9abd1d3d16e4589a7af608cb08e67 Mon Sep 17 00:00:00 2001 From: fhanik Date: Thu, 31 Mar 2011 21:20:30 +0000 Subject: [PATCH] Fix NPE that can happen during concurrency (connection being abandoned, misconfiguration in abandon timeout or lack of ResetAbandonedTimer interceptor) http://markmail.org/message/yhshyvyunddb5ngt git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1087442 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/main/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java b/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java index 532cb6a24..76d17e341 100644 --- a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java +++ b/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java @@ -122,7 +122,12 @@ public class ProxyConnection extends JdbcInterceptor { return this.isWrapperFor((Class)args[0]); } try { - return method.invoke(connection.getConnection(),args); + PooledConnection poolc = connection; + if (poolc!=null) { + return method.invoke(poolc.getConnection(),args); + } else { + throw new SQLException("Connection has already been closed."); + } }catch (Throwable t) { if (t instanceof InvocationTargetException) { InvocationTargetException it = (InvocationTargetException)t; -- 2.11.0