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