Concurrent modification exception in connection pool on high load
-----------------------------------------------------------------

                 Key: GEOT-1271
                 URL: http://jira.codehaus.org/browse/GEOT-1271
             Project: GeoTools
          Issue Type: Improvement
          Components: data jdbc
    Affects Versions: 2.3.1
            Reporter: Andrea Aime
            Assignee: Andrea Aime
             Fix For: 2.3.2, 2.4.M3


Hitting geoserver with lots of clients threads I was able to get the following 
exception:

18 mag 19:28:42 ERROR [geotools.rendering] - 
java.util.ConcurrentModificationException
        at 
java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:761)
        at java.util.LinkedList$ListItr.next(LinkedList.java:696)
        at 
org.geotools.data.jdbc.ConnectionPool.getInUseManagedPooledConnection(ConnectionPool.java:148)
        at 
org.geotools.data.jdbc.ConnectionPool.access$200(ConnectionPool.java:44)
        at 
org.geotools.data.jdbc.ConnectionPool$ConnectionListManager.connectionClosed(ConnectionPool.java:225)
        at 
org.postgresql.ds.common.PooledConnectionImpl.fireConnectionClosed(PooledConnectionImpl.java:175)
        at 
org.postgresql.ds.common.PooledConnectionImpl$ConnectionHandler.invoke(PooledConnectionImpl.java:331)
        at $Proxy0.close(Unknown Source)
        at org.geotools.data.jdbc.JDBCUtils.close(JDBCUtils.java:149)
        at org.geotools.data.jdbc.QueryData.close(QueryData.java:171)
        at 
org.geotools.data.jdbc.JDBCFeatureReader.close(JDBCFeatureReader.java:63)
        at 
org.geotools.data.jdbc.JDBCFeatureReader.close(JDBCFeatureReader.java:59)
        at 
org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1580)
        at 
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:714)
        at 
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:436)
        at 
org.vfny.geoserver.wms.responses.DefaultRasterMapProducer.produceMap(DefaultRasterMapProducer.java:262)
        at 
org.vfny.geoserver.wms.responses.GetMapResponse.execute(GetMapResponse.java:316)
        at 
org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.java:516)
        at 
org.vfny.geoserver.servlets.AbstractService.doGet(AbstractService.java:315)
        at org.geoserver.request.Dispatcher.dispatch(Dispatcher.java:192)
        at 
org.geoserver.request.Dispatcher.handleRequestInternal(Dispatcher.java:52)
        at 
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:139)
        at 
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
        at 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684)
        at 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625)
        at 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
        at 
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:347)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:445)
        at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1050)
        at 
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:103)
        at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1041)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:354)
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:226)
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:627)
        at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141)
        at org.mortbay.jetty.Server.handle(Server.java:269)
        at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:430)
        at 
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:687)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:492)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:199)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:339)
        at 
org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:208)
        at 
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
18 mag 19:28:44 ERROR [data.jdbc] - There's code leaving readers or writers 
unclosed (you got an unclosed QueryData object, which is usually held by a 
reader or a writer).
Call reader/writer.close() after using them to ensure they do not hold state 
such as JDCB connections.
 QueryData was open against feature type: tiger_roads

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Geotools-devel mailing list
Geotools-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to