hbwf / mybatis

Automatically exported from code.google.com/p/mybatis
0 stars 0 forks source link

MyBatis-3.2 with Spring-3.1 - Using Declarative Transaction Management with Unexcepted Closed Statement #812

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What version of the MyBatis are you using?

MyBatis-3.2.0-SNAPSHOT.jar, mybatis-spring-1.1.1.jar, 
spring-framework-3.1.0.RELEASE.jar, ojdbc14.jar, spring-security-3.1.2.jar and 
Vaadin-6.8.2.jar

Please describe the problem.  Unit tests are best!

I used declarative transaction managed by Spring framework.

I can get and insert the records successfully. However, after several 
insertions of the same SQL (with different RECORD_ID of course), there are 
exceptions thrown. 

I don't know why there is an exception thrown.

Actually, it is OK and works fine when I run an unit test. However, when I 
start up the Web Application, and then repeat the same submit and query action 
several times, the following exception is thrown.

The SQL can be ran properly for the first time.

What is the expected output? What do you see instead?

I expected there is no exception thrown for java.sql.SQLException: Closed 
Statement and The error occurred while setting parameters. I do not have any 
idea for the closed statement due to the error in setting parameters. It is 
because I can see my passed-in parameters to SQL in the log file.

Can you provide stack trace, logs, error messages that are displayed?

2013-04-22 10:44:42,415 DEBUG 
[org.springframework.jdbc.datasource.DataSourceTransactionManager] - Creating 
new transaction with name 
[com.ggpp.c.service.impl.TmpTestingManagerImpl.setupWos]: 
PROPAGATION_REQUIRED,ISOLATION_DEFAULT
2013-04-22 10:44:42,415 DEBUG 
[org.springframework.jdbc.datasource.DataSourceTransactionManager] - Acquired 
Connection [jdbc:oracle:thin:@localhost:8081:oral, UserName=test, Oracle JDBC 
driver] for JDBC transaction
2013-04-22 10:44:42,415 DEBUG [com.ggpp.c.service.impl.TmpTestingManagerImpl] - 
empId = 52274; sessionId = 13449; caseId = null
2013-04-22 10:44:42,415 DEBUG [org.mybatis.spring.SqlSessionUtils] - Creating a 
new SqlSession
2013-04-22 10:44:42,415 DEBUG [org.mybatis.spring.SqlSessionUtils] - 
Registering transaction synchronization for SqlSession 
[org.apache.ibatis.session.defaults.DefaultSqlSession@40d241]
2013-04-22 10:44:42,415 DEBUG 
[org.mybatis.spring.transaction.SpringManagedTransaction] - JDBC Connection 
[jdbc:oracle:thin:@localhost:8081:oral, UserName=test, Oracle JDBC driver] will 
be managed by Spring
2013-04-22 10:44:42,415 DEBUG [TmpTestingSQL.deleteTmpTestingRecordsBySession] 
- ooo Using Connection [jdbc:oracle:thin:@localhost:8081:oral, UserName=test, 
Oracle JDBC driver]
2013-04-22 10:44:42,415 DEBUG [TmpTestingSQL.deleteTmpTestingRecordsBySession] 
- ==>  Preparing: delete from TMP_TESTING where SESSION_ID = ? 
2013-04-22 10:44:42,415 DEBUG [TmpTestingSQL.deleteTmpTestingRecordsBySession] 
- ==> Parameters: 13449(Long)
2013-04-22 10:44:42,431 DEBUG [org.mybatis.spring.SqlSessionUtils] - Releasing 
transactional SqlSession 
[org.apache.ibatis.session.defaults.DefaultSqlSession@40d241]
2013-04-22 10:44:42,431 DEBUG [org.mybatis.spring.SqlSessionUtils] - Fetched 
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@40d241] from 
current transaction
2013-04-22 10:44:42,431 DEBUG 
[TmpTestingSQL.insertAllResponsibleWosForCollector] - ooo Using Connection 
[jdbc:oracle:thin:@localhost:8081:oral, UserName=test, Oracle JDBC driver]
2013-04-22 10:44:42,431 DEBUG 
[TmpTestingSQL.insertAllResponsibleWosForCollector] - ==>  Preparing: insert 
into TMP_TESTING ( READER_ID , WO_ID , READER_TYPE , ACW_ID , WO_REF_NO , 
COUNT_DOWN , ACCOUNT_NO , CLIENT_ID , WARNING , CLIENT_HAND , GP_HAND , 
ACTIVE_COUNT , GP_RTN_COUNT , CLNT_RTN_COUNT , CLOSED_COUNT , ASSIGNED_BALANCE 
, OAFEE_BALANCE , WO_VISIT , SIP_PAYMENT_FLAG , WO_STATUS , WO_HOLD , 
WO_PRIORITY , RECALL_DATE , EOQ_CONTROL_STATUS , SESSION_ID , ASSIGNED_DATE , 
BATCH_DESC , BATCH_ID , EOQ_MODE , EOQ_ALERT , LAST_HANDLE_DATE , 
LAST_HANDLE_ACTION , EXPIRY_DATE , DT_AGE , MINIMUM_DUE , SITE_CODE , HKID, 
EOQ_REMARKS, NEW_CONTACT_ALERT, DEBTOR_NAME, SIP_DATE, SIP_AMOUNT, SURE_FLAG, 
COMPANY_CODE, RMO_CODE, R_BALANCE , ROAFEE_BALANCE , TOTAL_PAYMENT , 
CP_PROGRESS , ASSISTANT_CODE ) select cas.COLLECTOR_ID as READER_ID , cas.WO_ID 
, cas.COLLECTOR_TYPE as READER_TYPE, cas.MAIN_ACW_ID as ACW_ID, cas.WO_REF_NO , 
trunc(cas.EXPIRY_DATE) - trunc(sysdate) COUNT_DOWN, cas.ACCOUNT_NO , 
cas.CLIENT_ID , (select WARNING from CONTACT where CONTACT_ID = 
cas.MAIN_ACW_ID) WARNING, cas.CLIENT_HAND , cas.GP_HAND , cas.ACTIVE_COUNT, 
cas.GP_RTN_COUNT , cas.CLNT_RTN_COUNT , cas.CLOSED_COUNT, cas.ASSIGNED_BALANCE 
, cas.OAFEE_BALANCE , nvl(cas.WO_VISIT,'.') as WO_VISIT, 
nvl(cas.SIP_PAYMENT_FLAG,'.') , cas.WO_STATUS , cas.WO_HOLD, cas.WO_PRIORITY , 
cas.RECALL_DATETIME , cas.EOQ_CONTROL_STATUS, ? , cas.ASSIGNED_DATE , (select 
DESCRIPTION from BATCH where BATCH_ID = cas.BATCH_ID)BATCH_DESC, cas.BATCH_ID , 
cas.COLLECTOR_TYPE , nvl(cas.EOQ_ALERT, 'N') EOQ_ALERT, cas.LAST_HANDLE_DATE , 
cas.LAST_HANDLE_ACTION , cas.EXPIRY_DATE, cas.DT_AGE , cas.MINIMUM_DUE , 
cas.SITE_CODE, (select ID_NO from CONTACT where CONTACT_ID = cas.MAIN_ACW_ID) 
HKID, (select REMARKS from CALL_QUEUE_REMARKS where ACW_ID = cas.MAIN_ACW_ID 
and COLLECTOR_TYPE = cas.COLLECTOR_TYPE and COLLECTOR_ID = cas.COLLECTOR_ID) 
EOQ_REMARKS, (select NCP from WO_STAT where WO_ID = 
cas.WO_ID)NEW_CONTACT_ALERT, (select CONTACT_NAME from CONTACT where CONTACT_ID 
= cas.MAIN_ACW_ID) DEBTOR_NAME, (select EARLIEST_SIP_DATE from WO_STAT where 
WO_ID = cas.WO_ID) SIP_DATE, (select EARLIEST_SIP_AMT from WO_STAT where WO_ID 
= cas.WO_ID) SIP_AMOUNT, (select EARLIEST_SURE_FLAG from WO_STAT where WO_ID = 
cas.WO_ID) SURE_FLAG, (select COMPANY_CODE from CLIENT where CLIENT_ID = 
cas.CLIENT_ID)COMPANY_CODE, (select LOGIN_ID from EMPLOYEE where EMP_ID = 
COLLECTOR_ID) RMO_CODE, GET_R_BAL(cas.WO_ID, 'B'), GET_R_BAL(cas.WO_ID, 
'O'),GET_TOTAL_PAYMENT_BETWEEN_DATE(cas.WO_ID, cas.ASSIGNED_DATE, sysdate, 
'R'), GF_GET_CP_PROGRESS(cas.WO_ID) , null from CASE cas where 
cas.COLLECTOR_TYPE = 'G' and cas.COLLECTOR_ID = ? and cas.WO_STATUS = 'D' and 
cas.WO_HOLD = 'NNNN' and cas.CLIENT_ID > 0 and not exists( select 1 from 
ASSIST_EOQ_ASGN acan inner join EMPLOYEE emp on emp.EMP_ID = acan.ASGN_BY where 
acan.WO_ID = cas.WO_ID and acan.ASGN_DATE <= sysdate and acan.EXPY_DATE > 
trunc(sysdate) and acan.STATUS in ('A','N') and emp.DEPARTMENT = 'C' ) and not 
exists( select 1 from TMP_TESTING tctn where tctn.WO_ID = cas.WO_ID and 
tctn.SESSION_ID = ? ) 
2013-04-22 10:44:42,431 DEBUG 
[TmpTestingSQL.insertAllResponsibleWosForCollector] - ==> Parameters: 
13449(Long), 52274(Long), 13449(Long)
2013-04-22 10:44:42,494 DEBUG [org.mybatis.spring.SqlSessionUtils] - Releasing 
transactional SqlSession 
[org.apache.ibatis.session.defaults.DefaultSqlSession@40d241]
2013-04-22 10:44:42,494 DEBUG [org.mybatis.spring.SqlSessionUtils] - Fetched 
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@40d241] from 
current transaction
2013-04-22 10:44:42,494 DEBUG [TmpTestingSQL.insertAssignedWoToCollector] - ooo 
Using Connection [jdbc:oracle:thin:@localhost:8081:oral, UserName=test, Oracle 
JDBC driver]
2013-04-22 10:44:42,494 DEBUG [TmpTestingSQL.insertAssignedWoToCollector] - ==> 
 Preparing: insert into TMP_TESTING ( READER_ID , WO_ID , READER_TYPE , ACW_ID 
, WO_REF_NO , COUNT_DOWN , ACCOUNT_NO , CLIENT_ID , WARNING , CLIENT_HAND , 
GP_HAND , ACTIVE_COUNT , GP_RTN_COUNT , CLNT_RTN_COUNT , CLOSED_COUNT , 
ASSIGNED_BALANCE , OAFEE_BALANCE , WO_VISIT , SIP_PAYMENT_FLAG , WO_STATUS , 
WO_HOLD , WO_PRIORITY , RECALL_DATE , EOQ_CONTROL_STATUS , SESSION_ID , 
ASSIGNED_DATE , BATCH_DESC , BATCH_ID , EOQ_MODE , EOQ_ALERT , LAST_HANDLE_DATE 
, LAST_HANDLE_ACTION , EXPIRY_DATE , DT_AGE , MINIMUM_DUE , SITE_CODE , HKID, 
EOQ_REMARKS, NEW_CONTACT_ALERT, DEBTOR_NAME, SIP_DATE, SIP_AMOUNT, SURE_FLAG, 
COMPANY_CODE, RMO_CODE, R_BALANCE , ROAFEE_BALANCE , TOTAL_PAYMENT , 
CP_PROGRESS , ASSISTANT_CODE ) select cas.COLLECTOR_ID as READER_ID , cas.WO_ID 
, cas.COLLECTOR_TYPE as READER_TYPE, cas.MAIN_ACW_ID as ACW_ID, cas.WO_REF_NO , 
trunc(cas.EXPIRY_DATE) - trunc(sysdate) COUNT_DOWN, cas.ACCOUNT_NO , 
cas.CLIENT_ID , (select WARNING from CONTACT where CONTACT_ID = 
cas.MAIN_ACW_ID) WARNING, cas.CLIENT_HAND , cas.GP_HAND , cas.ACTIVE_COUNT, 
cas.GP_RTN_COUNT , cas.CLNT_RTN_COUNT , cas.CLOSED_COUNT, cas.ASSIGNED_BALANCE 
, cas.OAFEE_BALANCE , nvl(cas.WO_VISIT,'.') as WO_VISIT, 
nvl(cas.SIP_PAYMENT_FLAG,'.') , cas.WO_STATUS , cas.WO_HOLD, cas.WO_PRIORITY , 
cas.RECALL_DATETIME , cas.EOQ_CONTROL_STATUS, ? , cas.ASSIGNED_DATE , (select 
DESCRIPTION from BATCH where BATCH_ID = cas.BATCH_ID)BATCH_DESC, cas.BATCH_ID , 
cas.COLLECTOR_TYPE , nvl(cas.EOQ_ALERT, 'N') EOQ_ALERT, cas.LAST_HANDLE_DATE , 
cas.LAST_HANDLE_ACTION , cas.EXPIRY_DATE, cas.DT_AGE , cas.MINIMUM_DUE , 
cas.SITE_CODE, (select ID_NO from CONTACT where CONTACT_ID = cas.MAIN_ACW_ID) 
HKID, (select REMARKS from CALL_QUEUE_REMARKS where ACW_ID = cas.MAIN_ACW_ID 
and COLLECTOR_TYPE = cas.COLLECTOR_TYPE and COLLECTOR_ID = cas.COLLECTOR_ID) 
EOQ_REMARKS, (select NCP from WO_STAT where WO_ID = 
cas.WO_ID)NEW_CONTACT_ALERT, (select CONTACT_NAME from CONTACT where CONTACT_ID 
= cas.MAIN_ACW_ID) DEBTOR_NAME, (select EARLIEST_SIP_DATE from WO_STAT where 
WO_ID = cas.WO_ID) SIP_DATE, (select EARLIEST_SIP_AMT from WO_STAT where WO_ID 
= cas.WO_ID) SIP_AMOUNT, (select EARLIEST_SURE_FLAG from WO_STAT where WO_ID = 
cas.WO_ID) SURE_FLAG, (select COMPANY_CODE from CLIENT where CLIENT_ID = 
cas.CLIENT_ID)COMPANY_CODE, (select LOGIN_ID from EMPLOYEE where EMP_ID = 
COLLECTOR_ID) RMO_CODE, GET_R_BAL(cas.WO_ID, 'B'), GET_R_BAL(cas.WO_ID, 
'O'),GET_TOTAL_PAYMENT_BETWEEN_DATE(cas.WO_ID, cas.ASSIGNED_DATE, sysdate, 
'R'), GF_GET_CP_PROGRESS(cas.WO_ID) , GF_GET_ASSIST_DSP_IN_CALLQ(cas.WO_ID) 
from CASE cas inner join ASSIST_EOQ_ASGN acan on cas.WO_ID = acan.WO_ID and 
acan.ASGN_TO_ID = ? and acan.ASGN_DATE <= trunc(sysdate) and acan.EXPY_DATE > 
trunc(sysdate) and acan.STATUS in ('A','N') where cas.COLLECTOR_TYPE = 'G' and 
cas.WO_STATUS = 'D' and cas.CLIENT_ID > 0 and cas.WO_HOLD = 'NNNN' and not 
exists( select 1 from EMPLOYEE emp where emp.EMP_ID = acan.ASGN_BY and 
emp.DEPARTMENT = 'C' ) and not exists( select 1 from TMP_TESTING tctn where 
tctn.SESSION_ID = ? and tctn.WO_ID = cas.WO_ID ) 
2013-04-22 10:44:42,494 DEBUG [TmpTestingSQL.insertAssignedWoToCollector] - ==> 
Parameters: 13449(Long), 52274(Long), 13449(Long)
2013-04-22 10:44:42,556 DEBUG 
[org.springframework.core.env.StandardEnvironment] - Initializing new 
StandardEnvironment
2013-04-22 10:44:42,634 DEBUG 
[org.springframework.core.env.StandardEnvironment] - Initialized 
StandardEnvironment with PropertySources [systemProperties,systemEnvironment]
2013-04-22 10:44:42,665 DEBUG 
[org.springframework.beans.factory.support.DefaultListableBeanFactory] - 
Finished creating instance of bean 'Sybase'
2013-04-22 10:44:42,665 INFO 
[org.springframework.jdbc.support.SQLErrorCodesFactory] - SQLErrorCodes loaded: 
[DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
2013-04-22 10:44:42,665 DEBUG 
[org.springframework.jdbc.support.SQLErrorCodesFactory] - Looking up default 
SQLErrorCodes for DataSource [org.apache.commons.dbcp.BasicDataSource@2596c1]
2013-04-22 10:44:42,665 DEBUG 
[org.springframework.jdbc.support.SQLErrorCodesFactory] - Database product name 
cached for DataSource [org.apache.commons.dbcp.BasicDataSource@2596c1]: name is 
'Oracle'
2013-04-22 10:44:42,665 DEBUG 
[org.springframework.jdbc.support.SQLErrorCodesFactory] - SQL error codes for 
'Oracle' found
2013-04-22 10:44:42,665 DEBUG 
[org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator] - Unable 
to translate SQLException with Error code '17009', will now try the fallback 
translator
2013-04-22 10:44:42,665 DEBUG [org.mybatis.spring.SqlSessionUtils] - Releasing 
transactional SqlSession 
[org.apache.ibatis.session.defaults.DefaultSqlSession@40d241]
2013-04-22 10:44:42,665 DEBUG 
[org.springframework.jdbc.datasource.DataSourceTransactionManager] - Initiating 
transaction rollback
2013-04-22 10:44:42,665 DEBUG 
[org.springframework.jdbc.datasource.DataSourceTransactionManager] - Rolling 
back JDBC transaction on Connection [jdbc:oracle:thin:@localhost:8081:oral, 
UserName=test, Oracle JDBC driver]
2013-04-22 10:44:42,744 DEBUG [org.mybatis.spring.SqlSessionUtils] - 
Transaction synchronization rolling back SqlSession 
[org.apache.ibatis.session.defaults.DefaultSqlSession@40d241]
2013-04-22 10:44:42,744 DEBUG [org.mybatis.spring.SqlSessionUtils] - 
Transaction synchronization closing SqlSession 
[org.apache.ibatis.session.defaults.DefaultSqlSession@40d241]
2013-04-22 10:44:42,744 DEBUG 
[org.springframework.jdbc.datasource.DataSourceTransactionManager] - Releasing 
JDBC Connection [jdbc:oracle:thin:@localhost:8081:oral, UserName=test, Oracle 
JDBC driver] after transaction
2013-04-22 10:44:42,744 DEBUG 
[org.springframework.jdbc.datasource.DataSourceUtils] - Returning JDBC 
Connection to DataSource
2013-04-22 10:44:42,759 ERROR [com.ggpp.c.common.CamsMessageSourceManager] - 
Missing msgKey - 
### Error updating database.  Cause: java.sql.SQLException: Closed Statement
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: insert into TMP_TESTING (       READER_ID       , WO_ID     ,     
READER_TYPE      ,       ACW_ID      ,   WO_REF_NO  ,     COUNT_DOWN      ,     
      ACCOUNT_NO      , CLIENT_ID    ,     WARNING       ,       CLIENT_HAND    
  ,   GP_HAND     ,     ACTIVE_COUNT     ,       GP_RTN_COUNT     , 
CLNT_RTN_COUNT   ,     CLOSED_COUNT     ,       ASSIGNED_BALANCE    ,  
OAFEE_BALANCE   ,     WO_VISIT      ,       SIP_PAYMENT_FLAG    ,   WO_STATUS   
 ,     WO_HOLD      ,       WO_PRIORITY     ,   RECALL_DATE    ,     
EOQ_CONTROL_STATUS   ,       SESSION_ID      ,   ASSIGNED_DATE   ,    
BATCH_DESC      ,       BATCH_ID      ,   EOQ_MODE    ,     EOQ_ALERT      ,    
   LAST_HANDLE_DATE    , LAST_HANDLE_ACTION  ,  EXPIRY_DATE      ,       DT_AGE 
     , MINIMUM_DUE    ,     SITE_CODE      ,       HKID,              
EOQ_REMARKS,            NEW_CONTACT_ALERT,       DEBTOR_NAME,       SIP_DATE,   
         SIP_AMOUNT,             SURE_FLAG,             COMPANY_CODE,           
 RMO_CODE,       R_BALANCE     , ROAFEE_BALANCE ,  TOTAL_PAYMENT     ,       
CP_PROGRESS      , ASSISTANT_CODE        )   select        cas.COLLECTOR_ID    
as READER_ID ,   cas.WO_ID    ,     cas.COLLECTOR_TYPE  as READER_TYPE,       
cas.MAIN_ACW_ID  as ACW_ID,   cas.WO_REF_NO ,     trunc(cas.EXPIRY_DATE) - 
trunc(sysdate) COUNT_DOWN,       cas.ACCOUNT_NO     ,   cas.CLIENT_ID   ,     
(select WARNING from CONTACT where CONTACT_ID = cas.MAIN_ACW_ID) WARNING,       
cas.CLIENT_HAND     ,   cas.GP_HAND    ,     cas.ACTIVE_COUNT,       
cas.GP_RTN_COUNT    ,   cas.CLNT_RTN_COUNT  ,     cas.CLOSED_COUNT,       
cas.ASSIGNED_BALANCE   ,   cas.OAFEE_BALANCE  ,     nvl(cas.WO_VISIT,'.') as 
WO_VISIT,       nvl(cas.SIP_PAYMENT_FLAG,'.')  ,   cas.WO_STATUS   ,     
cas.WO_HOLD,       cas.WO_PRIORITY    ,   cas.RECALL_DATETIME  ,     
cas.EOQ_CONTROL_STATUS,       ?     ,   cas.ASSIGNED_DATE  ,     (select 
DESCRIPTION from BATCH where BATCH_ID = cas.BATCH_ID)BATCH_DESC,       
cas.BATCH_ID     ,   cas.COLLECTOR_TYPE   ,     nvl(cas.EOQ_ALERT, 'N') 
EOQ_ALERT,       cas.LAST_HANDLE_DATE   ,   cas.LAST_HANDLE_ACTION ,     
cas.EXPIRY_DATE,       cas.DT_AGE     ,   cas.MINIMUM_DUE   ,     
cas.SITE_CODE,       (select ID_NO from CONTACT where CONTACT_ID = 
cas.MAIN_ACW_ID) HKID,       (select REMARKS from CALL_QUEUE_REMARKS where 
ACW_ID = cas.MAIN_ACW_ID and COLLECTOR_TYPE = cas.COLLECTOR_TYPE and 
COLLECTOR_ID = cas.COLLECTOR_ID) EOQ_REMARKS,       (select NCP from WO_STAT 
where WO_ID = cas.WO_ID)NEW_CONTACT_ALERT,       (select CONTACT_NAME from 
CONTACT where CONTACT_ID = cas.MAIN_ACW_ID) DEBTOR_NAME,       (select 
EARLIEST_SIP_DATE from WO_STAT where WO_ID = cas.WO_ID) SIP_DATE,       (select 
EARLIEST_SIP_AMT from WO_STAT where WO_ID = cas.WO_ID) SIP_AMOUNT,       
(select EARLIEST_SURE_FLAG from WO_STAT where WO_ID = cas.WO_ID) SURE_FLAG,     
  (select COMPANY_CODE from CLIENT where CLIENT_ID = 
cas.CLIENT_ID)COMPANY_CODE,       (select LOGIN_ID from EMPLOYEE where EMP_ID = 
COLLECTOR_ID) RMO_CODE,       GET_R_BAL(cas.WO_ID, 'B'), GET_R_BAL(cas.WO_ID, 
'O'),GET_TOTAL_PAYMENT_BETWEEN_DATE(cas.WO_ID, cas.ASSIGNED_DATE, sysdate, 
'R'),       GF_GET_CP_PROGRESS(cas.WO_ID) , 
GF_GET_ASSIST_DSP_IN_CALLQ(cas.WO_ID)   from CASE cas   inner join 
ASSIST_EOQ_ASGN acan on cas.WO_ID = acan.WO_ID     and acan.ASGN_TO_ID = ?     
and acan.ASGN_DATE  <=  trunc(sysdate)     and acan.EXPY_DATE  >  
trunc(sysdate)     and acan.STATUS in ('A','N')   where cas.COLLECTOR_TYPE = 
'G'     and cas.WO_STATUS = 'D'     and cas.CLIENT_ID > 0     and cas.WO_HOLD = 
'NNNN'           and not exists(         select 1 from EMPLOYEE emp          
where emp.EMP_ID = acan.ASGN_BY           and emp.DEPARTMENT = 'C'       )      
     and not exists(       select 1 from TMP_TESTING tctn       where 
tctn.SESSION_ID = ?         and tctn.WO_ID = cas.WO_ID     )
### Cause: java.sql.SQLException: Closed Statement
; uncategorized SQLException for SQL []; SQL state [null]; error code [17009]; 
Closed Statement; nested exception is java.sql.SQLException: Closed Statement
2013-04-22 10:44:42,759 ERROR [com.ggpp.c.servlet.CApplication] - An uncaught 
exception occurred: 
com.vaadin.event.ListenerMethod$MethodException: Invocation of method 
buttonClick in 
com.ggpp.c.ui.collection.agentcallqueue.callqwocollector.CallqwocollectorCompone
nt$3 failed.
    at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:530)
    at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:164)
    at com.vaadin.ui.AbstractComponent.fireEvent(AbstractComponent.java:1219)
    at com.vaadin.ui.Button.fireClick(Button.java:567)
    at com.vaadin.ui.Button.changeVariables(Button.java:223)
    at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.changeVariables(AbstractCommunicationManager.java:1460)
    at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariableBurst(AbstractCommunicationManager.java:1404)
    at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariables(AbstractCommunicationManager.java:1329)
    at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleUidlRequest(AbstractCommunicationManager.java:761)
    at com.vaadin.terminal.gwt.server.CommunicationManager.handleUidlRequest(CommunicationManager.java:318)
    at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:501)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1620)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

Please provide any additional information below.

Original issue reported on code.google.com by milliont...@gmail.com on 22 Apr 2013 at 9:38

Attachments:

GoogleCodeExporter commented 9 years ago
May you get the full stacktrace? Note it happens inside mybatis code but looks 
like that stacktrace is lost.

Also, upgrade to mybatis 3.2.2 to make sure we will know what is the right code 
line.

Original comment by eduardo.macarron on 22 Apr 2013 at 12:00

GoogleCodeExporter commented 9 years ago
Actually, I found that I'm using a wrong jars.
I used common-dbcp-1.2.1.jar and common-pool-1.4.jar. The problem seems to be 
fixed.

These two threads 

https://forums.oracle.com/forums/thread.jspa?messageID=10509456
https://issues.apache.org/jira/browse/DBCP-28

inspire to think about the jars issues.

Original comment by milliont...@gmail.com on 30 Apr 2013 at 9:50

GoogleCodeExporter commented 9 years ago
Good to know! Thanks for the update!

Original comment by eduardo.macarron on 4 May 2013 at 6:45