APAR status
Closed as program error.
Error description
This issue is only reproducible when multiple threads are accessing the top-level service from the client side simultaneously. This problem was discovered during performance testing. Here are some steps in reproducing the problem: Install the assets Create a business-level application (BLA) for each asset, installing all of composites for each Create a multi-threaded client (minimum 2 threads) that calls the following web service in a loop: http://HOSTNAME: 9080/<conextroot>1/ServiceName?wsdl Enter the values when calling the service: The following FFDC showing the nullpointer exception. [11/4/10 11:51:06:667 PDT] FFDC Exception:org.apache.tuscany.sca.databinding.TransformationExcep tion SourceId:com.ibm.ws.soa.sca.binding.sca.SCATargetInvoker ProbeId:329 Reporter:com.ibm.ws.soa.sca.binding.sca.SCATargetInvoker@75bd75b d org.apache.tuscany.sca.databinding.TransformationException: java.lang.NullPointerException at org.apache.tuscany.sca.databinding.jaxb.Node2JAXB.transform(Node 2JAXB.java:49) at org.apache.tuscany.sca.databinding.jaxb.Node2JAXB.transform(Node 2JAXB.java:34) at org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPo int$LazyPullTransformer.transform(DefaultTransformerExtensionPoi nt.java:200) at org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(Med iatorImpl.java:113) at org.apache.tuscany.sca.implementation.java.injection.JavaPropert yValueObjectFactory$ObjectFactoryImpl.getInstance(JavaPropertyVa lueObjectFactory.java:243) <Stripped some of the stack here to fit to APAR text> org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceInOutSyncMes sageReceiver.invokeBusinessLogic(Axis2ServiceInOutSyncMessageRec eiver.java:170) at org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.invo keBusinessLogic(AbstractInOutSyncMessageReceiver.java:42) at org.apache.axis2.receivers.AbstractMessageReceiver.receive(Abstr actMessageReceiver.java:112) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:188) at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPo stRequest(HTTPTransportUtils.java:275) at com.ibm.ws.websvcs.transport.http.WASAxis2Servlet.doPost(WASAxis 2Servlet.java:1347) at javax.servlet.http.HttpServlet.service(HttpServlet.java:738) at javax.servlet.http.HttpServlet.service(HttpServlet.java:831) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWr apper.java:1661) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(Ser vletWrapper.java:937) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(Ser vletWrapper.java:500) at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest (ServletWrapperImpl.java:178) at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java: 3810) at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.j ava:276) at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer. java:931) at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContai ner.java:1583) at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLin k.java:183) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscr imination(HttpInboundLink.java:455) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewIn formation(HttpInboundLink.java:384) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpI nboundLink.java:272) at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sen dToDiscriminators(NewConnectionInitialReadCallback.java:214) at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.com plete(NewConnectionInitialReadCallback.java:113) at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureComp leted(AioReadCompletionListener.java:165) at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyn cFuture.java:217) at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncC hannelFuture.java:161) at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHand ler.java:775) at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1550) Caused by: java.lang.NullPointerException at org.apache.xerces.dom.ParentNode.nodeListItem(Unknown Source) at org.apache.xerces.dom.ParentNode.item(Unknown Source) at com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScann er.java:242) <<Stipped some of stack here to fit to APAR>> org.apache.tuscany.sca.databinding.jaxb.Node2JAXB.transform(Node 2JAXB.java:46) ... 67 more
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: Users of IBM WebSphere Application Server * * V7 Feature Pack for Service Component * * Architecture (SCA) * **************************************************************** * PROBLEM DESCRIPTION: NullPointerException is thrown when an * * SCA component defines a component * * property configured by XML mapping to * * JAXB (complex) type and is accessed * * by multiple threads at once. * **************************************************************** * RECOMMENDATION: * **************************************************************** The Document Object Model (DOM) Node used to transform the XML representation of the SCA component property to the JAXB Object is not thread safe. When the DOM is accessed by multiple threads, a NullPointerException is thrown by org.apache.xerces.dom.ParentNode.nodeListItem and is caught and re-thrown by the SCA code, resulting in this error: [11/4/10 11:51:06:667 PDT] FFDC Exception:org.apache.tuscany.sca.databinding.TransformationExcep tion SourceId:com.ibm.ws.soa.sca.binding.sca.SCATargetInvoker ProbeId:329 Reporter:com.ibm.ws.soa.sca.binding.sca.SCATargetInvoker@75bd75b d org.apache.tuscany.sca.databinding.TransformationException: java.lang.NullPointerException at org.apache.tuscany.sca.databinding.jaxb.Node2JAXB.transform(Node 2JAXB.java:49) at org.apache.tuscany.sca.databinding.jaxb.Node2JAXB.transform(Node 2JAXB.java:34) at org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPo int$LazyPullTransformer.transform(DefaultTransformerExtensionPoi nt.java:200) at org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(Med iatorImpl.java:113) at org.apache.tuscany.sca.implementation.java.injection.JavaPropert yValueObjectFactory$ObjectFactoryImpl.getInstance(JavaPropertyVa lueObjectFactory.java:243) at org.apache.tuscany.sca.implementation.java.injection.MethodInjec tor.inject(MethodInjector.java:55) at org.apache.tuscany.sca.implementation.java.context.ReflectiveIns tanceFactory.newInstance(ReflectiveInstanceFactory.java:84) at org.apache.tuscany.sca.implementation.java.invocation.JavaCompon entContextProvider.createInstanceWrapper(JavaComponentContextPro vider.java:104) at org.apache.tuscany.sca.implementation.java.invocation.JavaImplem entationProvider.createInstanceWrapper(JavaImplementationProvide r.java:192) ............... Caused by: java.lang.NullPointerException at org.apache.xerces.dom.ParentNode.nodeListItem(Unknown Source) at org.apache.xerces.dom.ParentNode.item(Unknown Source) at com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScann er.java:242) at com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScann er.java:273) at com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScann er.java:242) at com.sun.xml.internal.bind.unmarshaller.DOMScanner.scan(DOMScanne r.java:119) at com.sun.xml.internal.bind.unmarshaller.DOMScanner.scan(DOMScanne r.java:102) at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerIm pl.unmarshal0(UnmarshallerImpl.java:299) at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerIm pl.unmarshal(UnmarshallerImpl.java:275) at com.ibm.xml.xlxp2.jaxb.unmarshal.UnmarshallerProxy.unmarshal(Unm arshallerProxy.java:220) at org.apache.tuscany.sca.databinding.jaxb.Node2JAXB.transform(Node 2JAXB.java:46) ... 67 more
Problem conclusion
Feature Pack for Service Component Architecture code was changed to synchronize calls to the JAXB transformation code. In addition, code was updated to cache JAXB transformations to reduce the likelihood of thread contention. The fix for this APAR is currently targeted for inclusion in fix pack 1.0.1.11 Please refer to the Recommended Updates page for delivery information: http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
Temporary fix
Comments
APAR Information
APAR number
PM26852
Reported component name
WAS SCA FEATURE
Reported component ID
5724J0854
Reported release
700
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2010-11-16
Closed date
2010-11-29
Last modified date
2010-11-29
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
WAS SCA FEATURE
Fixed component ID
5724J0854
Applicable component levels
R700 PSY
UP
[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SUPPORT","label":"IBM Worldwide Support"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"1.0.1","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
09 February 2022