[ 
http://jira.codehaus.org/browse/XFIRE-773?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Guillaume Nodet resolved XFIRE-773.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: 1.2.6

Fixed at rev 2131

> Bug with concurrent soap requests and aegis
> -------------------------------------------
>
>                 Key: XFIRE-773
>                 URL: http://jira.codehaus.org/browse/XFIRE-773
>             Project: XFire
>          Issue Type: Bug
>          Components: Aegis Module
>    Affects Versions: 1.2.2
>         Environment: win xp, jdk-1.5.0_06, apache-tomcat-5.5.17, 
> spring-1.2.6, httpclient-3.0.1
>            Reporter: Jose Dillet
>         Assigned To: Guillaume Nodet
>             Fix For: 1.2.6
>
>         Attachments: BeanTypeInfo.java, testWS.war, WS Test.jmx
>
>
> I'm getting some problems when I launch some concurrent requests to a web 
> service made using xfire and spring.
> I have a simple service (MyService) with a method (testService) that returns 
> an object (MyObject).
> I test it launching some concurrent requests using JMeter (jmeter -n -t "WS 
> Test.jmx").
> With this test, sometime I get the following exception:
> 2006-11-22 17:53:16,078  ERROR 
> [org.codehaus.xfire.handler.DefaultFaultHandler] Fault occurred!
> java.util.ConcurrentModificationException
>       at 
> java.util.AbstractList$Itr.checkForComodification(AbstractList.java:449)
>       at java.util.AbstractList$Itr.next(AbstractList.java:420)
>       at 
> org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:394)
>       at 
> org.codehaus.xfire.aegis.AegisBindingProvider.writeParameter(AegisBindingProvider.java:200)
>       at 
> org.codehaus.xfire.service.binding.AbstractBinding.writeParameter(AbstractBinding.java:273)
>       at 
> org.codehaus.xfire.service.binding.WrappedBinding.writeMessage(WrappedBinding.java:89)
>       at 
> org.codehaus.xfire.soap.SoapSerializer.writeMessage(SoapSerializer.java:80)
>       at 
> org.codehaus.xfire.transport.http.HttpChannel.writeWithoutAttachments(HttpChannel.java:56)
>       at 
> org.codehaus.xfire.transport.http.XFireServletChannel.sendViaServlet(XFireServletChannel.java:85)
>       at 
> org.codehaus.xfire.transport.http.XFireServletChannel.send(XFireServletChannel.java:44)
>       at 
> org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
>       at 
> org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
>       at 
> org.codehaus.xfire.service.binding.PostInvocationHandler.invoke(PostInvocationHandler.java:36)
>       at 
> org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
>       at 
> org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)
>       at 
> org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
>       at 
> org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:301)
>       at 
> org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:130)
>       at 
> org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:116)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>       at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
>       at 
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
>       at 
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
>       at 
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>       at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>       at java.lang.Thread.run(Thread.java:595)
> or, sometimes I get this other exception:
> Fault occurred!
> org.codehaus.xfire.XFireRuntimeException: Couldn't get property null from 
> bean [EMAIL PROTECTED] Nested exception is java.lang.NullPointerException: 
> null
> java.lang.NullPointerException
>         at 
> org.codehaus.xfire.aegis.type.basic.BeanType.readProperty(BeanType.java:461)
>         at 
> org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:402)
>         at 
> org.codehaus.xfire.aegis.AegisBindingProvider.writeParameter(AegisBindingProvider.java:200)
>         at 
> org.codehaus.xfire.service.binding.AbstractBinding.writeParameter(AbstractBinding.java:273)
>         at 
> org.codehaus.xfire.service.binding.WrappedBinding.writeMessage(WrappedBinding.java:89)
>         at 
> org.codehaus.xfire.soap.SoapSerializer.writeMessage(SoapSerializer.java:80)
>         at 
> org.codehaus.xfire.transport.http.HttpChannel.writeWithoutAttachments(HttpChannel.java:56)
>         at 
> org.codehaus.xfire.transport.http.XFireServletChannel.sendViaServlet(XFireServletChannel.java:85)
>         at 
> org.codehaus.xfire.transport.http.XFireServletChannel.send(XFireServletChannel.java:44)
>         at 
> org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
>         at 
> org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
>         at 
> org.codehaus.xfire.service.binding.PostInvocationHandler.invoke(PostInvocationHandler.java:36)
>         at 
> org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
>         at 
> org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)
>         at 
> org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
>         at 
> org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:301)
>         at 
> org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:130)
>         at 
> org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:116)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>         at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>         at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
>         at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>         at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>         at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>         at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>         at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
>         at 
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
>         at 
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
>         at 
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>         at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>         at java.lang.Thread.run(Thread.java:595)
> and sometimes it ends without any exception. Also, when I get an exception, 
> and I try to access to wsdl file, sometimes I get another exception, or 
> sometimes the definition of the object MyObject returned is wrong, because 
> every field is repeated many times.
> I guess that problem is related to aegis configuration, because if I delete 
> file MyObject.aegis.xml, then I never get these errors. Unfortunately, not 
> all executions end with an exception, but launching it several times leads to 
> finally get some of these exceptions.
> In testService I have added a sleep, to slow the execution of the method. In 
> my real project, there is no sleep, but my service method is heavier, so I 
> put the sleep to emulate the behaviour of my real service.
> I attach a war with a complete test application, a a jmx file to test the 
> application with JMeter (launching 30 concurrent threads)
> Hope you can reproduce the bug.

-- 
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

        

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to