3 messages in com.mysql.lists.javaRe: Connector/J 2.0.14 possible bug
FromSent OnAttachments
Charles So20 Apr 2003 18:55 
Shankar Unni20 Apr 2003 19:04 
Charles So20 Apr 2003 19:16 
Subject:Re: Connector/J 2.0.14 possible bug
From:Charles So (char@mac.com)
Date:04/20/2003 07:16:11 PM
List:com.mysql.lists.java

I have explicitly close all connections... ResultSet, PreparedStatement, Connection... also they are included in Finally clause.

Upgrading to Connector/J 3.0.7, and adding the autoReconnect=true to connection URL seems to have the null pointer problem removed.

But this leads to another strange problem, of which is mentioned in other mail to the list.

On Monday, April 21, 2003, at 10:04 AM, Shankar Unni wrote:

It means you didn't close a connection (connection.close()) after you used it. If a connection stays out of the pool for more than a certain amount of time, DBCP throws this exception.

(Look out for any situations in which an exception makes your code take a path where you don't do an explicit connection.close(). Use a finally clause to be sure..)

One thing to watch out for, though: the stack trace is incorrect. It's the stack trace of when the connection was first created, not of where it was last allocated. I've filed a bug against DBCP for that, but never got much of a response. I might just fix it and send in the patch myself..

-----Original Message----- From: Charles So [mailto:char@mac.com] Sent: Sunday, April 20, 2003 6:56 PM To: ja@lists.mysql.com Subject: Fwd: Connector/J 2.0.14 possible bug

Hello,

Further to the problem mentioned below, can someone explain when the following exception might occur?

DBCP object created 2003-32-20 11:32:09 by the following code was never closed: java.lang.Exception at org.apache.commons.dbcp.AbandonedTrace.init(AbandonedTrace.java:139) at org.apache.commons.dbcp.AbandonedTrace.<init>(AbandonedTrace.java:122) at org.apache.commons.dbcp.DelegatingPreparedStatement.<init>(Del egatingPre paredStatement.java:106) at org.apache.commons.dbcp.DelegatingConnection.prepareStatement( Delegating Connection.java:187) at WelcomeServlet.doGet(WelcomeServlet.java:361) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationDispatcher.invoke(Applicat ionDispatc her.java:684) at org.apache.catalina.core.ApplicationDispatcher.doForward(Appli cationDisp atcher.java:432) at org.apache.catalina.core.ApplicationDispatcher.forward(Applica tionDispat cher.java:356) at org.apache.jasper.runtime.PageContextImpl.forward(PageContextI mpl.java:4 30) at org.apache.jsp.Index_jsp._jspService(Index_jsp.java:46) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServletWrapper.service(JspServlet Wrapper.ja va:204) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet .java:295) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilt er(Applica tionFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli cationFilt erChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardW rapperValv e.java:260) at org.apache.catalina.core.StandardPipeline$StandardPipelineValv eContext.i nvokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipel ine.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardC ontextValv e.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValv eContext.i nvokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipel ine.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContex t.java:241 5) at org.apache.catalina.core.StandardHostValve.invoke(StandardHost Valve.java :180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValv eContext.i nvokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDi spatcherVa lve.java:170) at org.apache.catalina.core.StandardPipeline$StandardPipelineValv eContext.i nvokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport Valve.java :172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValv eContext.i nvokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipel ine.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEn gineValve. java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValv eContext.i nvokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipel ine.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter. java:223) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:261) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:360) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:632) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSo cket.java: 590) at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:707) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run( ThreadPool .java:530) at java.lang.Thread.run(Thread.java:491)

Many thx!!!

Dear all,

I encounter a problem whilst developing... the problem always occur when I stress my Tomcat 4.0.18/ConnectorJ 2.0.14.

I'll always get ****java.lang.NullPointerException ****

This problem always occur at:

try { // set material object conn = ds.getConnection();

System.out.println("Conn: 1"); sqlStmt = "select count(*) from material"; ps = conn.prepareStatement(sqlStmt); System.out.println("Conn: 2"); rs = ps.executeQuery(); System.out.println("Conn: 3");

rs.next(); System.out.println("Conn: 4"); material = new Material[rs.getInt(1)]; System.out.println("Conn: 5");

sqlStmt = "select * from material"; System.out.println("Conn: 6"); ps = conn.prepareStatement(sqlStmt); <----- sometimes NullPointer here System.out.println("Conn: 7"); rs = ps.executeQuery(); <----- most likely NullPointer here System.out.println("Conn: 8"); .....

I am using Tomcat's connection pool. If I keep stressing it Tomcat would just return this:

<html><body></body></html>

It seems that the whole app is crashed, and it would take at least 3 minutes before it will recover - returning a none blank <body>.

Can Mark shed some light on this?

BTW, Tomcat puts this line at catalina.log:

[INFO] ChannelSocket - -server has been restarted or reset this connection

Is the JDBC connection reseted? Or has the Tomcat server been restarted?

Thanks!!!!