cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Kulp (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CXF-1560) EndpointReferenceUtils.getSchema threading issue
Date Wed, 30 Apr 2008 19:16:55 GMT

    [ https://issues.apache.org/jira/browse/CXF-1560?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12593412#action_12593412
] 

Daniel Kulp commented on CXF-1560:
----------------------------------


Yea, my patch is against 2.1 as I pretty much always fix things there and then merge the fixes
back to 2.0.x.  

Thanks for the report.  Once svn is back up, I'll get it committed and merged back 2.0.x.



> EndpointReferenceUtils.getSchema threading issue
> ------------------------------------------------
>
>                 Key: CXF-1560
>                 URL: https://issues.apache.org/jira/browse/CXF-1560
>             Project: CXF
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0.6
>            Reporter: Marc Giger
>            Assignee: Daniel Kulp
>         Attachments: cxf-1560.patch, cxf-2.0.6-threading-issue.patch
>
>
> After the first time the service is started and the service is invoked in parallel with
multiple threads I get the following
> stacktrace and the service returns a soap-fault:
> 30.04.2008 10:24:30 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> java.lang.ArrayIndexOutOfBoundsException: 2 >= 0
>         at java.util.Vector.elementAt(Vector.java:427)
>         at org.apache.xerces.dom.DeferredDocumentImpl.getNodeValueString(Unknown Source)
>         at org.apache.xerces.dom.DeferredDocumentImpl.getNodeValueString(Unknown Source)
>         at org.apache.xerces.dom.DeferredTextImpl.synchronizeData(Unknown Source)
>         at org.apache.xerces.dom.CharacterDataImpl.getNodeValue(Unknown Source)
>         at org.apache.ws.commons.schema.XmlSchemaSerializer.serializeDocumentation(XmlSchemaSerializer.java:2002)
>         at org.apache.ws.commons.schema.XmlSchemaSerializer.serializeAnnotation(XmlSchemaSerializer.java:1904)
>         at org.apache.ws.commons.schema.XmlSchemaSerializer.serializeElement(XmlSchemaSerializer.java:582)
>         at org.apache.ws.commons.schema.XmlSchemaSerializer.serializeChoice(XmlSchemaSerializer.java:1229)
>         at org.apache.ws.commons.schema.XmlSchemaSerializer.serializeComplexType(XmlSchemaSerializer.java:917)
>         at org.apache.ws.commons.schema.XmlSchemaSerializer.serializeSchemaChild(XmlSchemaSerializer.java:254)
>         at org.apache.ws.commons.schema.XmlSchemaSerializer.serializeSchemaElement(XmlSchemaSerializer.java:192)
>         at org.apache.ws.commons.schema.XmlSchemaSerializer.serializeSchema(XmlSchemaSerializer.java:83)
>         at org.apache.ws.commons.schema.XmlSchema.serialize_internal(XmlSchema.java:452)
>         at org.apache.ws.commons.schema.XmlSchema.write(XmlSchema.java:426)
>         at org.apache.ws.commons.schema.XmlSchema.write(XmlSchema.java:382)
>         at org.apache.cxf.service.model.SchemaInfo.getElement(SchemaInfo.java:82)
>         at org.apache.cxf.wsdl.EndpointReferenceUtils.getSchema(EndpointReferenceUtils.java:541)
>         at org.apache.cxf.interceptor.AbstractInDatabindingInterceptor.setSchemaInMessage(AbstractInDatabindingInterceptor.java:104)
>         at org.apache.cxf.interceptor.AbstractInDatabindingInterceptor.getDataReader(AbstractInDatabindingInterceptor.java:86)
>         at org.apache.cxf.interceptor.AbstractInDatabindingInterceptor.getDataReader(AbstractInDatabindingInterceptor.java:93)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:69)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:77)
>         at org.apache.cxf.transport.local.LocalConduit.dispatchDirect(LocalConduit.java:100)
>         at org.apache.cxf.transport.local.LocalConduit.close(LocalConduit.java:71)
>         at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.camel.component.cxf.invoker.CxfClient.invokeWithMessageStream(CxfClient.java:130)
>         at org.apache.camel.component.cxf.invoker.CxfClient.dispatch(CxfClient.java:75)
>         at org.apache.camel.component.cxf.CxfProducer.process(CxfProducer.java:248)
>         at org.apache.camel.component.cxf.CxfProducer.process(CxfProducer.java:170)
>         at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:59)
>         at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:53)
>         at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsynProcessorBridge.process(AsyncProcessorTypeConverter.java:44)
>         at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:143)
>         at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:87)
>         at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
>         at org.apache.camel.processor.Pipeline.process(Pipeline.java:85)
>         at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:40)
>         at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:44)
>         at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:68)
>         at org.apache.camel.component.cxf.CamelInvoker.invoke(CamelInvoker.java:59)
>         at org.apache.camel.component.cxf.feature.MessageInvokerInterceptor$1.run(MessageInvokerInterceptor.java:51)
>         at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
>         at org.apache.camel.component.cxf.feature.MessageInvokerInterceptor.handleMessage(MessageInvokerInterceptor.java:71)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:77)
>         at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
>         at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
>         at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
>         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
>         at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>         at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>         at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
>         at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
>         at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
>         at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
>         at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>         at org.mortbay.jetty.Server.handle(Server.java:324)
>         at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
>         at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)
>         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:730)
>         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
>         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
>         at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
>         at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
> 30.04.2008 10:24:30 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> java.lang.ArrayIndexOutOfBoundsException: 6 >= 0
>         at java.util.Vector.elementAt(Vector.java:427)
>         at org.apache.xerces.dom.DeferredDocumentImpl.getNodeValueString(Unknown Source)
>         at org.apache.xerces.dom.DeferredDocumentImpl.getNodeValueString(Unknown Source)
>         at org.apache.xerces.dom.DeferredTextImpl.synchronizeData(Unknown Source)
>         at org.apache.xerces.dom.CharacterDataImpl.getNodeValue(Unknown Source)
>         at org.apache.ws.commons.schema.XmlSchemaSerializer.serializeDocumentation(XmlSchemaSerializer.java:2002)
>         at org.apache.ws.commons.schema.XmlSchemaSerializer.serializeAnnotation(XmlSchemaSerializer.java:1904)
>         at org.apache.ws.commons.schema.XmlSchemaSerializer.serializeElement(XmlSchemaSerializer.java:582)
>         at org.apache.ws.commons.schema.XmlSchemaSerializer.serializeSequence(XmlSchemaSerializer.java:989)
>         at org.apache.ws.commons.schema.XmlSchemaSerializer.serializeComplexType(XmlSchemaSerializer.java:913)
>         at org.apache.ws.commons.schema.XmlSchemaSerializer.serializeSchemaChild(XmlSchemaSerializer.java:254)
>         at org.apache.ws.commons.schema.XmlSchemaSerializer.serializeSchemaElement(XmlSchemaSerializer.java:192)
>         at org.apache.ws.commons.schema.XmlSchemaSerializer.serializeSchema(XmlSchemaSerializer.java:83)
>         at org.apache.ws.commons.schema.XmlSchema.serialize_internal(XmlSchema.java:452)
>         at org.apache.ws.commons.schema.XmlSchema.write(XmlSchema.java:426)
>         at org.apache.ws.commons.schema.XmlSchema.write(XmlSchema.java:382)
>         at org.apache.cxf.service.model.SchemaInfo.getElement(SchemaInfo.java:82)
>         at org.apache.cxf.wsdl.EndpointReferenceUtils.getSchema(EndpointReferenceUtils.java:541)
>         at org.apache.cxf.interceptor.AbstractInDatabindingInterceptor.setSchemaInMessage(AbstractInDatabindingInterceptor.java:104)
>         at org.apache.cxf.interceptor.AbstractInDatabindingInterceptor.getDataReader(AbstractInDatabindingInterceptor.java:86)
>         at org.apache.cxf.interceptor.AbstractInDatabindingInterceptor.getDataReader(AbstractInDatabindingInterceptor.java:93)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:69)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
> ...
> ...
> ...
> If I invoke a fresh started service once with a single thread and after that with multiple
threads it works fine.
> The attached patch fixes that but I'm not sure if it's the right place and who is at
fault here. The overhead by this patch should be minimal.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message