tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tomasz Kowalczewski <tomasz.kowalczew...@gmail.com>
Subject Re: NPE in SlowQuery
Date Tue, 02 Apr 2013 12:59:56 GMT
On Tue, Apr 2, 2013 at 2:43 PM, Daniel Mikusa <dmikusa@vmware.com> wrote:

> On Apr 2, 2013, at 8:15 AM, Tomasz Kowalczewski wrote:
>
> > Hello all,
> >
> > we are running Tomcat 7 on Amazon EC2:
> >
> > Server version: Apache Tomcat/7.0.22
> > Server built:   Sep 27 2011 09:40:50
> > Server number:  7.0.22.0
>
> As you can see from the date, this version is getting to be pretty old.
>  You should consider upgrading.
>
> > OS Name:        Linux
> > OS Version:     2.6.34.7-56.40.amzn1.i686
> > Architecture:   i386
> > JVM Version:    1.7.0_03-b04
> >
> > And get following exception on slow queries:
> >
> > [catalina-exec-18] 04-02 10:27:11 ERROR TransactionInterceptor:414 -
> > Application exception overridden by rollback exception
> > java.lang.NullPointerException
> >               at
> >
> org.apache.tomcat.jdbc.pool.interceptor.SlowQueryReport.reportFailedQuery(SlowQueryReport.java:86)
> >               at
> >
> org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReport$StatementProxy.invoke(AbstractQueryReport.java:237)
> >
> > I wasn't able to google for a solution/bugfix therefore I would like
> > to ask the Tomcat community for help on this issue. Is this a known
> > bug?
>
> There are a couple NPE's reported here.  Could be what you are seeing…
>
>    https://issues.apache.org/bugzilla/show_bug.cgi?id=51582
>
> Probably would be best if you could upgrade to the latest release and see
> if the problem still continues.  If you can't upgrade Tomcat, at least
> upgrade the jdbc-pool jar.
>
> Dan
>
>
> >
> > When looking at the source code:
> >
> > 85:  QueryStats qs = this.getQueryStats(sql);
> > 86:  qs.failure(delta, now);
> >
> > It looks like getQueryStats(sql) returned null and indeed it does so
> > on at leas one ocassion:
> >
> >     protected QueryStats getQueryStats(String sql) {
> >          if (sql==null) sql = "";
> >          ConcurrentHashMap<String,QueryStats> queries =
> > SlowQueryReport.this.queries;
> >>>       if (queries==null) return null;
> >
> > However, non of the uses of getQueryStats() in SlowQueryReport guard
> > against this null. It seems to be a bug.
> >
> > --
> > Regards,
> > Tomasz Kowalczewski
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: users-help@tomcat.apache.org
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

Thanks for your answer. Yes, the tomcat installation is a bit old. I have
checked SlowQueryReport in trunk:

http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java?view=log

and there are only minor changes (generics and toString changes) and no
real fix for getQueryStats returning null. However, I will try upgrading
and will report back if it solves the issue.

-- 
Regards,
Tomasz Kowalczewski

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message