You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by fh...@apache.org on 2014/08/10 03:55:14 UTC

svn commit: r1617042 - /tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementFinalizer.java

Author: fhanik
Date: Sun Aug 10 01:55:14 2014
New Revision: 1617042

URL: http://svn.apache.org/r1617042
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56318
Only log if statement requires it.

Modified:
    tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementFinalizer.java

Modified: tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementFinalizer.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementFinalizer.java?rev=1617042&r1=1617041&r2=1617042&view=diff
==============================================================================
--- tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementFinalizer.java (original)
+++ tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementFinalizer.java Sun Aug 10 01:55:14 2014
@@ -57,15 +57,18 @@ public class StatementFinalizer extends 
         while (statements.size()>0) {
             WeakReference<StatementEntry> ws = statements.remove(0);
             StatementEntry st = ws.get();
-            if (st!=null) {
-                try {
+            boolean shallClose = false;
+            try {
+                shallClose = st!=null && (!st.getStatement().isClosed());
+                if (shallClose) {
                     st.getStatement().close();
-                } catch (Exception ignore) {
-                    if (log.isDebugEnabled()) {
-                        log.debug("Unable to closed statement upon connection close.",ignore);
-                    }
                 }
-                if (logCreationStack) {
+            } catch (Exception ignore) {
+                if (log.isDebugEnabled()) {
+                    log.debug("Unable to closed statement upon connection close.",ignore);
+                }
+            } finally {
+                if (logCreationStack && shallClose) {
                     log.warn("Statement created, but was not closed at:", st.getAllocationStack());
                 }
             }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org