IBM Support

PI32953: GENERATED CLASS IN JAXB CODE GEN PROCESS IS NOT FINISHING ITS IN ITIALIZATION IN THREAD 1 BEFORE ITS ACCESSED BY OTHER THREADS.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When BPM has not so many documents, 10 concurrent users run
    CCD scenario 10 rounds including LoanProcess, data change
    notification and Shared BO BPDs, it runs well. But now there
    are 190,592 documents and  1,315,522 tasks in BPM, and try 10
    concurrent users run CCD 10 rounds, upload documents failed
    and it throws the following exceptions:
    [9/16/14 3:51:37:322 CDT] 00000158 LocalExceptio E
    CNTR0020E: EJB threw an unexpected (non-declared) exception
    during invocation of method "createDocument" on bean
    "BeanId(IBM_BPM_WebAPI_DE0821.AppCluster#integration-clients-ejb
    .jar#ECMIntegrationClient, null)". Exception data:
    javax.xml.ws.soap.SOAPFaultException:
    java.lang.NullPointerException
    at
    org.apache.axis2.jaxws.marshaller.impl.alt.MethodMarshallerUtils
    .createSystemException(MethodMarshallerUtils.java:1363)
    at
    org.apache.axis2.jaxws.marshaller.impl.alt.MethodMarshallerUtils
    .demarshalFaultResponse(MethodMarshallerUtils.java:1089)
    at
    org.apache.axis2.jaxws.marshaller.impl.alt.DocLitWrappedMethodMa
    rshaller.demarshalFaultResponse(DocLitWrappedMethodMarshaller.ja
    va:680)
    at
    org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.getFaultRe
    sponse(JAXWSProxyHandler.java:626)
    at
    org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.createResp
    onse(JAXWSProxyHandler.java:566)
    at
    org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIM
    ethod(JAXWSProxyHandler.java:432)
    at
    org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invoke(JAX
    WSProxyHandler.java:213)
    at com.sun.proxy.$Proxy192.createDocument(Unknown Source)
    at
    com.ibm.bpm.integration.ecm.impl.ECMIntegrationClientBean.create
    Document(ECMIntegrationClientBean.java:151)
    at
    com.ibm.bpm.integration.ecm.EJSLocalCSLECMIntegrationClient_40d9
    2831.createDocument(EJSLocalCSLECMIntegrationClient_40d92831.jav
    a)
    at
    com.ibm.bpm.integration.runtime.ECMIntegrationServices$5.run(ECM
    IntegrationServices.java:644)
    at
    com.ibm.bpm.integration.runtime.ECMIntegrationServices$5.run(ECM
    IntegrationServices.java:641)
    at
    com.ibm.bpm.integration.runtime.ECMIntegrationServices.executeWi
    thCorrectAuthentication(ECMIntegrationServices.java:2637)
    at
    com.ibm.bpm.integration.runtime.ECMIntegrationServices.executeWi
    thCorrectAuthentication(ECMIntegrationServices.java:2579)
    at
    com.ibm.bpm.integration.runtime.ECMIntegrationServices.createDoc
    ument(ECMIntegrationServices.java:641)
    at
    com.ibm.bpm.integration.runtime.ECMIntegrationServices.createDoc
    umentForClient(ECMIntegrationServices.java:520)
    at
    com.ibm.bpm.integration.runtime.ECMIntegrationServices.createDoc
    umentForClient(ECMIntegrationServices.java:484)
    at
    com.lombardisoftware.portal.servlet.ECMDocumentServlet.createDoc
    ument(ECMDocumentServlet.java:850)
    at
    com.lombardisoftware.portal.servlet.ECMDocumentServlet.access$90
    0(ECMDocumentServlet.java:80)
    at
    com.lombardisoftware.portal.servlet.ECMDocumentServlet$CreateDoc
    umentHandler.doPost(ECMDocumentServlet.java:262)
    at
    com.lombardisoftware.portal.servlet.ECMDocumentServlet.doPost(EC
    MDocumentServlet.java:1108)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
    at
    com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWr
    apper.java:1230)
    at
    com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(Ser
    vletWrapper.java:779)
    at
    com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(Ser
    vletWrapper.java:478)
    
    AS BPM DEV recommend, the root cause there is a NPE in WAS:
    
    java.lang.NullPointerException
     at
    com.ibm.xml.xlxp2.jaxb.marshal.impl.SerializationContext.getObje
    ctIndex(SerializationContext.java:199)
     at
    org.oasis_open.docs.ns.cmis.core._200908.CmisPropertiesType_JAXB
    _Serialization_Stub.write(org.oasis_open.docs.ns.cmis.core._2009
    08.CmisPropertiesType_JAXB_Serialization_Stub.java)
     at
    org.oasis_open.docs.ns.cmis.messaging._200908.CreateDocument_JAX
    B_Serialization_Stub.write(org.oasis_open.docs.ns.cmis.messaging
    ._200908.CreateDocument_JAXB_Serialization_Stub.java)
     at
    com.ibm.xml.xlxp2.jaxb.marshal.JAXB_Serialization_Root_Stub.writ
    e(com.ibm.xml.xlxp2.jaxb.marshal.JAXB_Serialization_Root_Stub.ja
    va)
     at
    com.ibm.xml.xlxp2.jaxb.marshal.MarshallerImpl.marshal(Marshaller
    Impl.java:165)
     at
    org.apache.axis2.datasource.jaxb.JAXBDSContext$1.run(JAXBDSConte
    xt.java:501)
     at
    org.apache.axis2.java.security.AccessController.doPrivileged(Acc
    essController.java:76)
     at
    org.apache.axis2.datasource.jaxb.JAXBDSContext.marshalByElement(
    JAXBDSContext.java:486)
     at
    org.apache.axis2.datasource.jaxb.JAXBDSContext.marshal(JAXBDSCon
    text.java:446)
     at
    org.apache.axis2.jaxws.message.databinding.impl.JAXBBlockImpl._o
    utputFromBO(JAXBBlockImpl.java:189)
     at
    org.apache.axis2.jaxws.message.impl.BlockImpl.outputTo(BlockImpl
    .java:371)
     at
    org.apache.axis2.jaxws.message.impl.BlockImpl.serialize(BlockImp
    l.java:295)
     at
    org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSeria
    lize(OMSourcedElementImpl.java:781)
     at
    org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OM
    ElementImpl.java:967)
     at
    org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.serializeIntern
    ally(SOAPEnvelopeImpl.java:283)
     at
    org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSeriali
    ze(SOAPEnvelopeImpl.java:245)
     at
    org.apache.axiom.om.impl.llom.OMSerializableImpl.serializeAndCon
    sume(OMSerializableImpl.java:207)
     at
    org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOA
    PMessageFormatter.java:74)
     at
    com.ibm.ws.websvcs.transport.http.SOAPOverHTTPSender.writeMessag
    e(SOAPOverHTTPSender.java:3423)
     at
    com.ibm.ws.websvcs.transport.http.SOAPOverHTTPSender.sendChunked
    Request(SOAPOverHTTPSender.java:898)
     at
    com.ibm.ws.websvcs.transport.http.SOAPOverHTTPSender.sendSOAPReq
    uest(SOAPOverHTTPSender.java:817)
     at
    com.ibm.ws.websvcs.transport.http.SOAPOverHTTPSender.send(SOAPOv
    erHTTPSender.java:589)
     at
    com.ibm.ws.websvcs.transport.http.HTTPTransportSender.invoke(HTT
    PTransportSender.java:366)
     at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:556)
     at
    org.apache.axis2.description.OutInAxisOperationClient.send(OutIn
    AxisOperation.java:406)
     at
    org.apache.axis2.description.OutInAxisOperationClient.executeImp
    l(OutInAxisOperation.java:229)
     at
    org.apache.axis2.client.OperationClient.execute(OperationClient.
    java:165)
     at
    org.apache.axis2.jaxws.core.controller.impl.AxisInvocationContro
    ller.execute(AxisInvocationController.java:578)
     at
    org.apache.axis2.jaxws.core.controller.impl.AxisInvocationContro
    ller.doInvoke(AxisInvocationController.java:127)
     at
    org.apache.axis2.jaxws.core.controller.impl.InvocationController
    Impl.invoke(InvocationControllerImpl.java:93)
     at
    org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIM
    ethod(JAXWSProxyHandler.java:419)
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server                                      *
    ****************************************************************
    * PROBLEM DESCRIPTION: JAXB class generation process is not    *
    *                      completing initialization in initial    *
    *                      thread before access by subsequent      *
    *                      threads.                                *
    ****************************************************************
    * RECOMMENDATION:  Install a fix pack that contains this       *
    *                  APAR.                                       *
    ****************************************************************
    Possible NullPointerException may be thrown in JAXB
    Serialization Context, due to accessing a null map object. The
    root cause of this issue is due to multiple threads accessing
    this map before the JAXB class generation process completes
    its intialization on this map object.
    Sample stack trace:
    java.lang.NullPointerException
    at
    com.ibm.xml.xlxp2.jaxb.marshal.impl.SerializationContext.getObje
    ctIndex(SerializationContext.java:199)
    at
    org.oasis_open.docs.ns.cmis.core._200908.CmisPropertiesType_JAXB
    _Serialization_Stub.write(org.oasis_open.docs.ns.cmis.core._2009
    08.CmisPropertiesType_JAXB_Serialization_Stub.java)
    at
    org.oasis_open.docs.ns.cmis.messaging._200908.CreateDocument_JAX
    B_Serialization_Stub.write(org.oasis_open.docs.ns.cmis.messaging
    ._200908.CreateDocument_JAXB_Serialization_Stub.java)
    at
    com.ibm.xml.xlxp2.jaxb.marshal.JAXB_Serialization_Root_Stub.writ
    e(com.ibm.xml.xlxp2.jaxb.marshal.JAXB_Serialization_Root_Stub.ja
    va)
    at
    com.ibm.xml.xlxp2.jaxb.marshal.MarshallerImpl.marshal(Marshaller
    Impl.java:165)
    

Problem conclusion

  • The JAXB code generator's process for generating a class first
    starts with initializing the class - where it writes static
    fields - and finishes with putting that class in a map where
    it can be accessed by subsequent threads. The issue was a
    multi-threading problem where the generated class was not
    finishing its initialization in thread 1 before it is accessed
    by other threads. Henceforth, by the time multiple threads
    attempt to read the static fields, they will read a null
    object because those objects have not finished being
    initialized.
    
    The issue was fixed by ensuring that the initial thread
    generating the class properly propogates all updated writes
    to subsequent threads.
    
    The fix for this APAR is currently targeted for inclusion in
    fix pack 8.5.5.5.  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

    PI32953

  • Reported component name

    WEBS APP SERV N

  • Reported component ID

    5724H8800

  • Reported release

    850

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2015-01-19

  • Closed date

    2015-01-29

  • Last modified date

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

    WEBS APP SERV N

  • Fixed component ID

    5724H8800

Applicable component levels

  • R850 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.5","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
27 April 2022