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