we have had the same problem with a combination of castor and poolman (we don't use tomcat, but i can c that u r using poolman from the stack trace).
 
i am not sure if it is a poolman or a castor problem yet, haven't had time to investigate it thoroughly.  to get around it, u can comment out lines 127-132 in com.codestudio.sql.PoolManConnection.java & rebuild poolman.  this section of code is simply cleaning up un-closed statements on the connection being closed.  this may result in a memory leak, but it will let u continue development until the problem is solved properly.
 
brad 
-----Original Message-----
From: cwd [mailto:[EMAIL PROTECTED]]
Sent: Friday, 4 January 2002 4:50 PM
To: [EMAIL PROTECTED]
Subject: [castor-dev] java.util.ConcurrentModificationException when change tomcat3.2 to tomcat4.0

Hi all,
I meet a very strange problem when change tomcat3.2 to tomcat4.0
my program is:
  
    db.begin(); 
   oql = db.getOQLQuery( "select u from ua.module.uaserver.User u WHERE login=$1 and type=$2" );
   oql.bind( "llll" );
   oql.bind( "4");
   System.out.println("Readonly .. ");
   results = oql.execute( Database.ReadOnly );
   if ( results.hasMoreElements() ) {
    theUser = (User)results.nextElement();
   }      
   
   results2 = null;
   
   Merchant m = null;
   oql2 = db.getOQLQuery( "select u from ua.module.uaserver.Merchant u " );
   file://oql.bind( "000002" );
   results2 = oql2.execute( Database.ReadOnly );
   System.out.println("Readonly .. ");
   if ( results2 .hasMoreElements() ) {
    
    m = (Merchant) results2.nextElement();
    System.out.println(m);
   }
   if (m == null){
    System.out.println("no such merchant");
    return "failure";
   }
    db.commit();
 
when excute this servlet,I saw these exceptions:
 
 

        at java.util.HashMap$HashIterator.next(HashMap.java:736)
        at java.util.WeakHashMap$1.hasNext(WeakHashMap.java:369)
        at java.util.AbstractMap$2.hasNext(AbstractMap.java:364)
        at com.codestudio.sql.PoolManConnection.clean(Unknown Source)
        at com.codestudio.util.JDBCPool.returnConnection(Unknown Source)
        at com.codestudio.util.JDBCPool.connectionClosed(Unknown Source)
        at com.codestudio.sql.PoolManConnection.sendCloseEvent(Unknown Source)
        at com.codestudio.sql.PoolManConnectionHandle.close(Unknown Source)
        at org.exolab.castor.jdo.engine.TransactionContextImpl.commitConnections
(TransactionContextImpl.java:133)
        at org.exolab.castor.persist.TransactionContext.commit(TransactionContex
t.java:1532)
        at org.exolab.castor.jdo.engine.DatabaseImpl.commit(DatabaseImpl.java:50
0)
        at ua.module.web.BaseAction.perform(BaseAction.java:118)
        at org.apache.struts.action.ActionServlet.processActionPerform(ActionSer
vlet.java:1621)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:143
1)
        at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:463)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:247)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:193)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:243)
        at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
 
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:201)
        at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
        at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve
.java:246)
        at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
 
        at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:
2344)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:164)
        at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
        at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatche
rValve.java:170)
        at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:170)
        at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
462)
        at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
 
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:163)
        at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
 
        at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcesso
r.java:1011)
        at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.ja
va:1106)
        at java.lang.Thread.run(Thread.java:484)

Reply via email to