cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 6934] - SQLTransformer.java - infinite loop in getConnection
Date Sat, 20 Sep 2003 08:22:08 GMT
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6934>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6934

SQLTransformer.java - infinite loop in getConnection

daniel.santos@pobox.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |vgritsenko@apache.org
           Severity|Normal                      |Blocker
             Status|CLOSED                      |REOPENED
          Component|sitemap components          |Dbcp
           Priority|Other                       |Medium
            Product|Cocoon 2                    |Commons
         Resolution|FIXED                       |
   Target Milestone|---                         |1.0 Final
            Version|2.0.1                       |1.0 Final



------- Additional Comments From daniel.santos@pobox.com  2003-09-20 08:22 -------
This bug does not appear to be fixed or is of deeper scope than originally
believed. I had a typo in my validationQuery and I was going into an infinte
loop as well. This means that the validation query would have failed but the
failure was not picked up and it was repeatedly attempted. I ran tomcat in dbg
and was able to ascertain this much. I am using 4.1.27 and JDK 1.4.1_02 on Win2k
sp2 using the new oracle jdbc drivers (v9.2.0.1) in ojdbc14.jar. Here is the
stack trace where it appeared to spend most of it's time (I didn't run an hprof)

  [1] java.net.SocketInputStream.socketRead0 (native method)
  [2] java.net.SocketInputStream.read (SocketInputStream.java:129)
  [3] oracle.net.ns.Packet.receive (null)
  [4] oracle.net.ns.DataPacket.receive (null)
  [5] oracle.net.ns.NetInputStream.getNextPacket (null)
  [6] oracle.net.ns.NetInputStream.read (null)
  [7] oracle.net.ns.NetInputStream.read (null)
  [8] oracle.net.ns.NetInputStream.read (null)
  [9] oracle.jdbc.ttc7.MAREngine.unmarshalUB1 (MAREngine.java:931)
  [10] oracle.jdbc.ttc7.MAREngine.unmarshalSB1 (MAREngine.java:893)
  [11] oracle.jdbc.ttc7.O3log.receive1st (O3log.java:353)
  [12] oracle.jdbc.ttc7.TTC7Protocol.logon (TTC7Protocol.java:260)
  [13] oracle.jdbc.driver.OracleConnection.<init> (OracleConnection.java:360)
  [14] oracle.jdbc.driver.OracleDriver.getConnectionInstance (OracleDriver.java:521)
  [15] oracle.jdbc.driver.OracleDriver.connect (OracleDriver.java:325)
  [16] org.apache.commons.dbcp.DriverConnectionFactory.createConnection
(DriverConnectionFactory.java:83)
  [17] org.apache.commons.dbcp.PoolableConnectionFactory.makeObject
(PoolableConnectionFactory.java:184)
  [18] org.apache.commons.pool.impl.GenericObjectPool.borrowObject (null)
  [19] org.apache.commons.dbcp.AbandonedObjectPool.borrowObject
(AbandonedObjectPool.java:117)
  [20] org.apache.commons.dbcp.PoolingDataSource.getConnection
(PoolingDataSource.java:110)
  [21] org.apache.commons.dbcp.BasicDataSource.getConnection
(BasicDataSource.java:312)
  [22] org.apache.jsp.TestTomcatConnectionPool_jsp._jspService
(TestTomcatConnectionPool_jsp.java:117)
  [23] org.apache.jasper.runtime.HttpJspBase.service (HttpJspBase.java:137)
  [24] javax.servlet.http.HttpServlet.service (HttpServlet.java:853)
  [25] org.apache.jasper.servlet.JspServletWrapper.service
(JspServletWrapper.java:210)
  [26] org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:295)
  [27] org.apache.jasper.servlet.JspServlet.service (JspServlet.java:241)
  [28] javax.servlet.http.HttpServlet.service (HttpServlet.java:853)
  [29] org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:247)
  [30] org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:193)
  [31] org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:256)
  [32]
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext
(StandardPipeline.java:643)
  [33] org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:480)
  [34] org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java:995)
  [35] org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:191)
  [36]
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext
(StandardPipeline.java:643)
  [37] org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:480)
  [38] org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java:995)
  [39] org.apache.catalina.core.StandardContext.invoke (StandardContext.java:2,416)
  [40] org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:180)
  [41]
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext
(StandardPipeline.java:643)
  [42] org.apache.catalina.valves.ErrorDispatcherValve.invoke
(ErrorDispatcherValve.java:171)
  [43]
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext
(StandardPipeline.java:641)
  [44] org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:172)
  [45]
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext
(StandardPipeline.java:641)
  [46] org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:480)
  [47] org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java:995)
  [48] org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:174)
  [49]
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext
(StandardPipeline.java:643)
  [50] org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:480)
  [51] org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java:995)
  [52] org.apache.coyote.tomcat4.CoyoteAdapter.service (CoyoteAdapter.java:223)
  [53] org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:601)
  [54]
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection
(Http11Protocol.java:392)
  [55] org.apache.tomcat.util.net.TcpWorkerThread.runIt (PoolTcpEndpoint.java:565)
  [56] org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:619)
  [57] java.lang.Thread.run (Thread.java:534)

To reproduce this bug, you can just create an error in your validation query
string and then attempt to getConnection and you will enter the loop. Can we try
to get to the root of this exception handling please? This would be a nice place
to get an exception or at least a null from getConnection() and the exception
logged or sent to standard out. Please? :) I will try to take a look at it
also... Probably the exception is being thrown past
org.apache.commons.dbcp.DriverConnectionFactory.createConnection and getting
caught and improperly handled somewhere in the org.apache.commons.dbcp package
is my guess. I moved this bug to the commons product.

Daniel

Mime
View raw message