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