org.apache.commons.dbcp.DelegatingPreparedStatement is closed...why?

Hi guys,

please help me!!!!!!!!!!

I have a jsf application,i've created an array list in which i've added prepared statements(one only in this example).

experiments=new ArrayList();

experiments.add(pst2);

In another class i've a method that cycles the arraylist and executes prepared statements in a transaction.

I use the same conn in each class......

how can i do with this exception?

Please help me...you're my onlu hope....

Siamo nel secondo if1!!

Siamo nell'utlimo if3!!

Siamo nel PRIMO if3!!

Eccoci nel query manager!

Eccoci nel query manager2

Eccoci nel query manager3

esperiments ?pieno!!

java.sql.SQLException: org.apache.commons.dbcp.DelegatingPreparedStatement is closed.

at org.apache.commons.dbcp.DelegatingStatement.checkOpen(DelegatingStatement.java:136)

at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:101)

at giu.QueryManager.executeTransaction(QueryManager.java:41)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)

at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63)

at javax.faces.component.UICommand.broadcast(UICommand.java:312)

at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)

at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)

at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)

at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)

at giu.AuthorizationFilter.doFilter(AuthorizationFilter.java:59)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)

at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)

at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)

at java.lang.Thread.run(Unknown Source)

here is my method,please make attention on bolded text....

public String executeTransaction()throws SQLException{

Experiment exp = (Experiment) ViewUtils

.eval("#{experiment}");

System.out.println("Eccoci nel query manager!");

//Connection conn=null;

try{

//conn = dataSource.getConnection();

System.out.println("Eccoci nel query manager2");

if (conn !=null){

System.out.println("Eccoci nel query manager3");

conn.setAutoCommit(false);

if(conn==null){

System.out.println("esperiments ?null!");

}

else System.out.println("esperiments ?pieno!!");

for (int i=0;i<exp.getExperiments().size();i++){

[b]try{

int nrows=((java.sql.PreparedStatement) exp.getExperiments().get(i)).executeUpdate();

}[/b]catch(Exception e){

e.printStackTrace();}

}

}else System.out.println("Conn nulla!");

if (exp.getExperiments().size()>0){

conn.commit();// Rende permanenti tutte le modifiche.

}else

conn.rollback();// Annulla tutte le modifiche.

}

catch (Exception e){

e.printStackTrace();

}finally{

try{

if (conn !=null)

conn.close();

}catch (SQLException e){

}

;

}

return"analysis";

}

thanks very much...please help me!!!

[7986 byte] By [giubata] at [2007-10-3 4:31:32]
# 1
resolved!!!!It was that i have pst2.close()!!!!! before executing transaction!!!Excuse me and thanks...
giubata at 2007-7-14 22:34:59 > top of Java-index,Database Connectivity,Java Database Connectivity (JDBC)...