[ 
https://issues.apache.org/jira/browse/DBCP-290?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mark Thomas resolved DBCP-290.
------------------------------

       Resolution: Duplicate
    Fix Version/s: 1.3

Marking this as a duplicate of DBCP-273 as I can't see anything that suggests a 
different root cause. Once DBCP 1.3 is out then please re-open if you still see 
this issue.

> java.sql.SQLException: Closed Statement 
> ----------------------------------------
>
>                 Key: DBCP-290
>                 URL: https://issues.apache.org/jira/browse/DBCP-290
>             Project: Commons Dbcp
>          Issue Type: Bug
>    Affects Versions: 1.2.2
>            Reporter: kan
>             Fix For: 1.3
>
>
> We are getting below exception in production randomly..Using Spring(2.5) JDBC 
> for all our DB related functionality.We don't handle any DB resources 
> directly.everything thru Spring JDBC template. This app was running fine in 
> Weblogic but after migrating to Tomcat6+DBCP(1.2.2) we are seeing the below 
> exception. 
> We also looked our code base for any threading or concurrency issues..we were 
> not able spot any issues. 
> I have observed one more thing..why checkOpen in DelegatingPreparedStatement 
> didn't catch this but OracleStatement thinks the statement is closed.
> Is it bcos the DBCP is returing the closed connection? (DBCP-273)
> Caused by: org.springframework.jdbc.UncategorizedSQLException: 
> PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO 
> AUDIT_TRAIL ( DEAL_ID , AUDIT_TRAIL_ID ) VALUES ( ?,? ) ]; SQL state [null]; 
> error code [17009]; Closed Statement; nested exception is 
> java.sql.SQLException: Closed Statement 
>         at 
> org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:124)
>  
>         at 
> org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:322)
>  
>         at 
> org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:607) 
>         at 
> org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:792) 
>         at 
> org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:815) 
>         at 
> org.springframework.jdbc.object.SqlUpdate.update(SqlUpdate.java:168) 
>         at com.dao.DealXAuditTrailDaoBase.insertDealXAuditTrailVoBase(Unknown 
> Source) 
>         at com.deal.DealTO.insertAuditTrail(DealTO.java:183) 
>         at com.deal.DealTO.processAuditTrail(DealTO.java:168) 
>         at com.deal.DealTO.update(DealTO.java:110) 
>         at com.deal.DealTO$$FastClassByCGLIB$$fba55fe6.invoke(<generated>) 
>         at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149) 
>         at 
> org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
>  
>         at 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
>  
>         at 
> com.businessrules.SpexBusinessRuleValidator.invoke(SpexBusinessRuleValidator.java:64)
>  
>         at 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>  
>         at 
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
>  
>         at 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>  
>         at 
> org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
>  
>         at com.deal.DealTO$$EnhancerByCGLIB$$54d9c9a4.update(<generated>) 
>         at 
> com.entity.EntityGeneralInfoController.copyFieldsToDeal(EntityGeneralInfoController.java:1158)
>  
>         at 
> com.entity.EntityGeneralInfoController.doSave(EntityGeneralInfoController.java:429)
>  
>         ... 30 more 
> Caused by: java.sql.SQLException: Closed Statement 
>         at 
> oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125) 
>         at 
> oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162) 
>         at 
> oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:227) 
>         at 
> oracle.jdbc.driver.OracleStatement.ensureOpen(OracleStatement.java:3249) 
>         at 
> oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2867)
>  
>         at 
> oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:2957)
>  
>         at 
> org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
>  
>         at 
> org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
>  
>         at 
> org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:798)
>  
>         at 
> org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:591) 
>         <Resource name="oracleDS" auth="Container" 
>                                 type="javax.sql.DataSource" 
>                                 driverClassName="oracle.jdbc.OracleDriver" 
>                                 url="jdbc:oracle:thin:@xxxxx:1521:xxxxx" 
>                                 username="xxxx" password="xxxx" 
>                                 initialSize="2" maxActive="30" maxIdle="30" 
> maxWait="3000" minIdle="0" 
>                                 testOnBorrow="true" testOnReturn="false" 
> testWhileIdle="false" 
>                                 poolPreparedStatements="true" 
> maxOpenPreparedStatements="10" 
>                                 removedAbandoned="true" 
> removeAbandonedTimeout="60" 
>                                 logAbandoned="true" validationQuery="select 
> count(*) from dual"/> 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to