IBM Support

PI63141: A null pointer exception is encountered when attempting to servi ce a request through the Java ODR causing the request to fail.

Fixes are available

8.5.5.10: WebSphere Application Server V8.5.5 Fix Pack 10
9.0.0.1: WebSphere Application Server traditional V9.0 Fix Pack 1
9.0.0.2: WebSphere Application Server traditional V9.0 Fix Pack 2
8.5.5.11: WebSphere Application Server V8.5.5 Fix Pack 11
9.0.0.3: WebSphere Application Server traditional V9.0 Fix Pack 3
9.0.0.4: WebSphere Application Server traditional V9.0 Fix Pack 4
8.5.5.12: WebSphere Application Server V8.5.5 Fix Pack 12
9.0.0.5: WebSphere Application Server traditional V9.0 Fix Pack 5
9.0.0.6: WebSphere Application Server traditional V9.0 Fix Pack 6
8.5.5.13: WebSphere Application Server V8.5.5 Fix Pack 13
9.0.0.7: WebSphere Application Server traditional V9.0 Fix Pack 7
9.0.0.8: WebSphere Application Server traditional V9.0 Fix Pack 8
8.5.5.14: WebSphere Application Server V8.5.5 Fix Pack 14
9.0.0.9: WebSphere Application Server traditional V9.0 Fix Pack 9
9.0.0.10: WebSphere Application Server traditional V9.0 Fix Pack 10
8.5.5.15: WebSphere Application Server V8.5.5 Fix Pack 15
9.0.0.11: WebSphere Application Server traditional V9.0 Fix Pack 11
9.0.5.0: WebSphere Application Server traditional Version 9.0.5 Refresh Pack
9.0.5.1: WebSphere Application Server traditional Version 9.0.5 Fix Pack 1
9.0.5.2: WebSphere Application Server traditional Version 9.0.5 Fix Pack 2
8.5.5.17: WebSphere Application Server V8.5.5 Fix Pack 17
9.0.5.3: WebSphere Application Server traditional Version 9.0.5 Fix Pack 3
9.0.5.4: WebSphere Application Server traditional Version 9.0.5 Fix Pack 4
9.0.5.5: WebSphere Application Server traditional Version 9.0.5 Fix Pack 5
9.0.5.6: WebSphere Application Server traditional Version 9.0.5 Fix Pack 6

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • While attempting to map a request the code finds a partition
    id and then attempts to map it to a cloneid so that it can
    determine if the request has affinity to a cluster that we
    found hosting the web module.  During this mapping there is
    a small timing window where another request could come in to
    do the same thing and cause the following
    NullPointerException:
    [1/15/16 16:15:20:812 EST]     FFDC
    Exception:java.lang.NullPointerException
    SourceId:com.ibm.ws.proxy.dwlm.http.HttpMapODCFilter.doFilte
    r ProbeId:1
    Reporter:com.ibm.ws.proxy.dwlm.http.HttpMapODCFilter@3cb65b8
    c
    java.lang.NullPointerException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
    Method)
    at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
    ssorImpl.java:60)
    at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
    thodAccessorImpl.java:37)
        at java.lang.reflect.Method.invoke(Method.java:611)
    at
    com.ibm.ws.xd.dwlm.client.XDHttpSessionAffinityModule.getRea
    lCloneId(XDHttpSessionAffinityModule.java:135)
    at
    com.ibm.ws.xd.dwlm.client.HttpAffinityUtil.getTargetClusterB
    yCloneId(HttpAffinityUtil.java:804)
    at
    com.ibm.ws.xd.dwlm.client.HttpAffinityUtil._getAffinityClust
    er(HttpAffinityUtil.java:324)
    at
    com.ibm.ws.xd.dwlm.client.HttpAffinityUtil.getAffinityCluste
    r(HttpAffinityUtil.java:115)
    at
    com.ibm.ws.xd.dwlm.client.HttpRequestClassification.classify
    Request(HttpRequestClassification.java:278)
    at
    com.ibm.ws.xd.dwlm.client.HttpRequestClassification.classify
    Request(HttpRequestClassification.java:132)
    at
    com.ibm.ws.xd.dwlm.client.XDDWLMClientServiceContextImpl.ini
    tClusterNode(XDDWLMClientServiceContextImpl.java:643)
    at
    com.ibm.ws.xd.dwlm.client.BaseDWLMClientServiceContextImpl.s
    etODCNode(BaseDWLMClientServiceContextImpl.java:94)
    at
    com.ibm.ws.xd.dwlm.client.XDDWLMClientServiceContextImpl.set
    ODCNode(XDDWLMClientServiceContextImpl.java:898)
    at
    com.ibm.ws.xd.dwlm.client.XDRequestMapperImpl.mapRequestToOD
    CNode(XDRequestMapperImpl.java:255)
    at
    com.ibm.ws.xd.dwlm.client.XDRequestMapperImpl.mapRequest(XDR
    equestMapperImpl.java:242)
    at
    com.ibm.ws.xd.dwlm.client.XDRequestMapperImpl.mapRequest(XDR
    equestMapperImpl.java:90)
    at
    com.ibm.ws.proxy.channel.http.HttpProxyServiceContextImpl.se
    tDefaultRequestMapping(HttpProxyServiceContextImpl.java:1617
    )
    at
    com.ibm.ws.proxy.dwlm.http.HttpMapODCFilter.doFilter(HttpMap
    ODCFilter.java:53)
    at
    com.ibm.ws.proxy.filter.http.HttpFilterImpl.doFilter(HttpFil
    terImpl.java:98)
    at
    com.ibm.ws.proxy.filter.http.HttpFilterChain.doRequestFilter
    Chain(HttpFilterChain.java:343)
    at
    com.ibm.ws.proxy.filter.http.HttpFilterChain.doRequestFilter
    ChainWrapper(HttpFilterChain.java:263)
    at
    com.ibm.ws.proxy.filter.http.HttpFilterChain.doRequestFilter
    Chain(HttpFilterChain.java:242)
    at
    com.ibm.ws.proxy.channel.http.HttpProxyConnectionLink.proces
    sRequestWork(HttpProxyConnectionLink.java:567)
    at
    com.ibm.ws.proxy.channel.http.HttpProxyConnectionLink.ready(
    HttpProxyConnectionLink.java:330)
    at
    com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleD
    iscrimination(HttpInboundLink.java:463)
    at
    com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleN
    ewRequest(HttpInboundLink.java:530)
    at
    com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.process
    Request(HttpInboundLink.java:316)
    at
    com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.com
    plete(HttpICLReadCallback.java:88)
    at
    com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.future
    Completed(AioReadCompletionListener.java:175)
    at
    com.ibm.io.async.AbstractAsyncFuture.invokeCallback(Abstract
    AsyncFuture.java:217)
    at
    com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(As
    yncChannelFuture.java:161)
    at
    com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
    at
    com.ibm.io.async.ResultHandler.complete(ResultHandler.java:2
    04)
    at
    com.ibm.io.async.ResultHandler.runEventProcessingLoop(Result
    Handler.java:775)
    at
    com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
    at
    com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1881)
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server WAS ND edition- Virtual              *
    *                  Enterprise/IM Component using the On Demand *
    *                  Router (ODR)                                *
    ****************************************************************
    * PROBLEM DESCRIPTION: A null pointer exception is encountered *
    *                      when attempting to service a request    *
    *                      through the Java ODR causing the        *
    *                      request to fail.                        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    When a request arrives the ODR does multiple things to ensure it
    is routed correctly.  One of the things it does is map the
    request to web module.  When attempting to map the request the
    code may find a partition id and attempt to map it to a cloneid
    so that it can determine if the request should have affinity to
    a particular cluster where the web module is deployed. During
    this mapping there was a small timing window where another
    request could come attempting to do the same mapping before it
    is complete and the interaction between the two requests can
    cause one of them to fail with the following
    NullPointerException:
    FFDC Exception:java.lang.NullPointerException
    SourceId:com.ibm.ws.proxy.dwlm.http.HttpMapODCFilter.doFilter
    ProbeId:1
    Reporter:com.ibm.ws.proxy.dwlm.http.HttpMapODCFilter@3cb65b8c
    java.lang.NullPointerException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
    Method)
        at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessor
    Impl.java:60)
        at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethod
    AccessorImpl.java:37)
        at java.lang.reflect.Method.invoke(Method.java:611)
        at
    com.ibm.ws.xd.dwlm.client.XDHttpSessionAffinityModule.getRealClo
    neId(XDHttpSessionAffinityModule.java:135)
        at
    com.ibm.ws.xd.dwlm.client.HttpAffinityUtil.getTargetClusterByClo
    neId(HttpAffinityUtil.java:804)
        at
    com.ibm.ws.xd.dwlm.client.HttpAffinityUtil._getAffinityCluster(H
    ttpAffinityUtil.java:324)
        at
    com.ibm.ws.xd.dwlm.client.HttpAffinityUtil.getAffinityCluster(Ht
    tpAffinityUtil.java:115)
        at
    com.ibm.ws.xd.dwlm.client.HttpRequestClassification.classifyRequ
    est(HttpRequestClassification.java:278)
        at
    com.ibm.ws.xd.dwlm.client.HttpRequestClassification.classifyRequ
    est(HttpRequestClassification.java:132)
        at
    com.ibm.ws.xd.dwlm.client.XDDWLMClientServiceContextImpl.initClu
    sterNode(XDDWLMClientServiceContextImpl.java:643)
        at
    com.ibm.ws.xd.dwlm.client.BaseDWLMClientServiceContextImpl.setOD
    CNode(BaseDWLMClientServiceContextImpl.java:94)
        at
    com.ibm.ws.xd.dwlm.client.XDDWLMClientServiceContextImpl.setODCN
    ode(XDDWLMClientServiceContextImpl.java:898)
        at
    com.ibm.ws.xd.dwlm.client.XDRequestMapperImpl.mapRequestToODCNod
    e(XDRequestMapperImpl.java:255)
        at
    com.ibm.ws.xd.dwlm.client.XDRequestMapperImpl.mapRequest(XDReque
    stMapperImpl.java:242)
        at
    com.ibm.ws.xd.dwlm.client.XDRequestMapperImpl.mapRequest(XDReque
    stMapperImpl.java:90)
        at
    com.ibm.ws.proxy.channel.http.HttpProxyServiceContextImpl.setDef
    aultRequestMapping(HttpProxyServiceContextImpl.java:1617)
        at
    com.ibm.ws.proxy.dwlm.http.HttpMapODCFilter.doFilter(HttpMapODCF
    ilter.java:53)
        at
    com.ibm.ws.proxy.filter.http.HttpFilterImpl.doFilter(HttpFilterI
    mpl.java:98)
        at
    com.ibm.ws.proxy.filter.http.HttpFilterChain.doRequestFilterChai
    n(HttpFilterChain.java:343)
        at
    com.ibm.ws.proxy.filter.http.HttpFilterChain.doRequestFilterChai
    nWrapper(HttpFilterChain.java:263)
        at
    com.ibm.ws.proxy.filter.http.HttpFilterChain.doRequestFilterChai
    n(HttpFilterChain.java:242)
        at
    com.ibm.ws.proxy.channel.http.HttpProxyConnectionLink.processReq
    uestWork(HttpProxyConnectionLink.java:567)
        at
    com.ibm.ws.proxy.channel.http.HttpProxyConnectionLink.ready(Http
    ProxyConnectionLink.java:330)
        at
    com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscr
    imination(HttpInboundLink.java:463)
        at
    com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRe
    quest(HttpInboundLink.java:530)
        at
    com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequ
    est(HttpInboundLink.java:316)
        at
    com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complet
    e(HttpICLReadCallback.java:88)
        at
    com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureComp
    leted(AioReadCompletionListener.java:175)
        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:1881)
    

Problem conclusion

  • The code has been corrected to close the timing window and force
    synchronization until the mapping between the partitionId and
    cloneId has been completed to avoiding the Null Pointer
    Exception.
    
    The fix for this APAR is currently targeted for inclusion in fix
    pack 8.5.5.10.  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

    PI63141

  • 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

    2016-05-26

  • Closed date

    2016-07-18

  • Last modified date

    2016-07-18

  • 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":"BU053","label":"Cloud \u0026 Data Platform"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"850","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
14 October 2021