You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by kf...@apache.org on 2015/06/23 09:21:01 UTC

svn commit: r1686975 - /tomcat/tc8.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java

Author: kfujino
Date: Tue Jun 23 07:21:01 2015
New Revision: 1686975

URL: http://svn.apache.org/r1686975
Log:
Avoid NPE if connection has been abandoned.

Modified:
    tomcat/tc8.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java

Modified: tomcat/tc8.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java?rev=1686975&r1=1686974&r2=1686975&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java (original)
+++ tomcat/tc8.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java Tue Jun 23 07:21:01 2015
@@ -102,9 +102,11 @@ public class SlowQueryReport extends Abs
             long now = System.currentTimeMillis();
             long delta = now - start;
             QueryStats qs = this.getQueryStats(sql);
-            qs.failure(delta, now);
-            if (isLogFailed() && log.isWarnEnabled()) {
-                log.warn("Failed Query Report SQL="+sql+"; time="+delta+" ms;");
+            if (qs != null) {
+                qs.failure(delta, now);
+                if (isLogFailed() && log.isWarnEnabled()) {
+                    log.warn("Failed Query Report SQL="+sql+"; time="+delta+" ms;");
+                }
             }
         }
         return sql;
@@ -115,7 +117,7 @@ public class SlowQueryReport extends Abs
         String sql = super.reportQuery(query, args, name, start, delta);
         if (this.maxQueries > 0 ) {
             QueryStats qs = this.getQueryStats(sql);
-            qs.add(delta, start);
+            if (qs != null) qs.add(delta, start);
         }
         return sql;
     }
@@ -125,9 +127,11 @@ public class SlowQueryReport extends Abs
         String sql = super.reportSlowQuery(query, args, name, start, delta);
         if (this.maxQueries > 0 ) {
             QueryStats qs = this.getQueryStats(sql);
-            qs.add(delta, start);
-            if (isLogSlow() && log.isWarnEnabled()) {
-                log.warn("Slow Query Report SQL="+sql+"; time="+delta+" ms;");
+            if (qs != null) {
+                qs.add(delta, start);
+                if (isLogSlow() && log.isWarnEnabled()) {
+                    log.warn("Slow Query Report SQL="+sql+"; time="+delta+" ms;");
+                }
             }
         }
         return sql;
@@ -145,13 +149,13 @@ public class SlowQueryReport extends Abs
     @Override
     public void prepareStatement(String sql, long time) {
         QueryStats qs = getQueryStats(sql);
-        qs.prepare(time);
+        if (qs != null) qs.prepare(time);
     }
 
     @Override
     public void prepareCall(String sql, long time) {
         QueryStats qs = getQueryStats(sql);
-        qs.prepare(time);
+        if (qs != null) qs.prepare(time);
     }
 
     /**
@@ -186,7 +190,10 @@ public class SlowQueryReport extends Abs
     protected QueryStats getQueryStats(String sql) {
         if (sql==null) sql = "";
         ConcurrentHashMap<String,QueryStats> queries = SlowQueryReport.this.queries;
-        if (queries==null) return null;
+        if (queries==null) {
+            if (log.isWarnEnabled()) log.warn("Connection has already been closed or abandoned");
+            return null;
+        }
         QueryStats qs = queries.get(sql);
         if (qs == null) {
             qs = new QueryStats(sql);



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