Author: kfujino Date: Tue Jun 23 07:18:54 2015 New Revision: 1686974 URL: http://svn.apache.org/r1686974 Log: Avoid NPE if connection has been abandoned.
Modified: tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java Modified: tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java?rev=1686974&r1=1686973&r2=1686974&view=diff ============================================================================== --- tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java (original) +++ tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java Tue Jun 23 07:18:54 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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org