IBM Support

PM26852: USING COMPLEX SCA PROPERTIES WITH JAXB DATABINDING IN A MULTITHREADED ENVIRONMENT RESULTS IN NULLPOINTEREXCEPTION.

Subscribe

You can track all active APARs for this component.

 

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