If I access the /samples/ page with only one client, everything goes right, if I access it with two or more concurrent clients I get lots
of IllegalStateExceptions.
Everything goes well with parallel execution if I do not mount the samples remote, but use the FileSource. Is there some concurrency problem in ECM?
To reproduce:
Copy the cocoon-2.1.3 samples onto a webdav server and mount this directory with the webdav protocol in the webapp sitemap.
<map:match pattern="samples/**">
<map:mount check-reload="yes" src="webdav://fiicmpc141.tu-graz.ac.at:8080/samples/{1}" uri-prefix="samples/{1}"/>
</map:match>
Apache Bench was used to test concurrency:
ab -n20 -c1 http://cocoonhost:8888/samples/ succeeds with no errors
ab -n20 -c2 http://cocoonhost:8888/samples/ fails with IllegalStateExceptions
System is SMP RedHat 7.3 with latest RHSA 2.4.20 kernel.
Java VM is java version "1.4.2_02" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_02-b03) Java HotSpot(TM) Server VM (build 1.4.2_02-b03, mixed mode) with LD_ASSUME_KERNEL=2.2.5
The Servlet Container is Jetty/4.2.9, cocoon default.
java.lang.IllegalStateException: You cannot lookup components on a disposed ComponentLocator
at org.apache.avalon.excalibur.component.ExcaliburComponentManager.lookup(ExcaliburComponentManager.java:201)
at org.apache.cocoon.components.CocoonComponentManager.lookup(CocoonComponentManager.java:324)
at org.apache.cocoon.components.treeprocessor.sitemap.ErrorHandlerHelper.invokeErrorHandler(ErrorHandlerHelper.java:100)
at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:189)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:152)
at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:360)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:558)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1714)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:507)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1664)
at org.mortbay.http.HttpServer.service(HttpServer.java:863)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:775)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:939)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:792)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:201)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:455)
--
lg, Chris
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
