IBM Support

PI75015: Memory leak in JAX-RS client.

Fixes are available

17.0.0.1: WebSphere Application Server Liberty 17.0.0.1
17.0.0.2: WebSphere Application Server Liberty 17.0.0.2
17.0.0.3: WebSphere Application Server Liberty 17.0.0.3
17.0.0.4: WebSphere Application Server Liberty 17.0.0.4
18.0.0.1: WebSphere Application Server Liberty 18.0.0.1
18.0.0.2: WebSphere Application Server Liberty 18.0.0.2
18.0.0.3: WebSphere Application Server Liberty 18.0.0.3
18.0.0.4: WebSphere Application Server Liberty 18.0.0.4
19.0.0.1: WebSphere Application Server Liberty 19.0.0.1
19.0.0.2: WebSphere Application Server Liberty 19.0.0.2
19.0.0.3: WebSphere Application Server Liberty 19.0.0.3
19.0.0.4: WebSphere Application Server Liberty 19.0.0.4
19.0.0.5: WebSphere Application Server Liberty 19.0.0.5
19.0.0.6: WebSphere Application Server Liberty 19.0.0.6
19.0.0.7: WebSphere Application Server Liberty 19.0.0.7
19.0.0.8: WebSphere Application Server Liberty 19.0.0.8
19.0.0.9: WebSphere Application Server Liberty 19.0.0.9
19.0.0.10: WebSphere Application Server Liberty 19.0.0.10
19.0.0.11: WebSphere Application Server Liberty 19.0.0.11
19.0.0.12: WebSphere Application Server Liberty 19.0.0.12
20.0.0.1: WebSphere Application Server Liberty 20.0.0.1
20.0.0.2: WebSphere Application Server Liberty 20.0.0.2
20.0.0.3: WebSphere Application Server Liberty 20.0.0.3
20.0.0.4: WebSphere Application Server Liberty 20.0.0.4
20.0.0.5: WebSphere Application Server Liberty 20.0.0.5
20.0.0.6: WebSphere Application Server Liberty 20.0.0.6
20.0.0.7: WebSphere Application Server Liberty 20.0.0.7
20.0.0.8: WebSphere Application Server Liberty 20.0.0.8
20.0.0.9: WebSphere Application Server Liberty 20.0.0.9
20.0.0.10: WebSphere Application Server Liberty 20.0.0.10
20.0.0.11: WebSphere Application Server Liberty 20.0.0.11
20.0.0.12: WebSphere Application Server Liberty 20.0.0.12
21.0.0.3: WebSphere Application Server Liberty 21.0.0.3
21.0.0.4: WebSphere Application Server Liberty 21.0.0.4
21.0.0.5: WebSphere Application Server Liberty 21.0.0.5
21.0.0.6: WebSphere Application Server Liberty 21.0.0.6
21.0.0.7: WebSphere Application Server Liberty 21.0.0.7
21.0.0.8: WebSphere Application Server Liberty 21.0.0.8
21.0.0.9: WebSphere Application Server Liberty 21.0.0.9
21.0.0.1: WebSphere Application Server Liberty 21.0.0.1
21.0.0.2: WebSphere Application Server Liberty 21.0.0.2
21.0.0.10: WebSphere Application Server Liberty 21.0.0.10
21.0.0.11: WebSphere Application Server Liberty 21.0.0.11
21.0.0.12: WebSphere Application Server Liberty 21.0.0.12
22.0.0.1: WebSphere Application Server Liberty 22.0.0.1
22.0.0.2: WebSphere Application Server Liberty 22.0.0.2
22.0.0.3: WebSphere Application Server Liberty 22.0.0.3
22.0.0.4: WebSphere Application Server Liberty 22.0.0.4

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Using the JAX-RS client may result in a memory leak.
    Analysis of this leak will show that it is occurring in the
    ClientProviderFactory class.   Investigation of this issue
    also uncovered occasional ConcurrentModificationExceptions
    similar to  the following stack.
    Caused by: java.util.ConcurrentModificationException
            at java.util.ArrayList.sort(ArrayList.java:1467)
            at java.util.Collections.sort(Collections.java:186)
    at
    org.apache.cxf.jaxrs.client.ClientProviderFactory.setProvide
    rs(ClientProviderFactory.java:93)
    at
    org.apache.cxf.jaxrs.provider.ProviderFactory.setUserProvide
    rs(ProviderFactory.java:1076)
    at
    org.apache.cxf.jaxrs.client.spec.ClientImpl$WebTargetImpl.re
    quest(ClientImpl.java:280)
    at
    com.acmeair.web.JAXRSClientServiceREST.doPing(JAXRSClientSer
    viceREST.java:87)
    at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown
    Source)
    at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
    thodAccessorImpl.java:55)
            at java.lang.reflect.Method.invoke(Method.java:508)
    at
    com.ibm.ws.jaxrs20.server.LibertyJaxRsServerFactoryBean.perf
    ormInvocation(LibertyJaxRsServerFactoryBean.java:651)
    at
    com.ibm.ws.jaxrs20.server.LibertyJaxRsInvoker.performInvocat
    ion(LibertyJaxRsInvoker.java:115)
    at
    org.apache.cxf.service.invoker.AbstractInvoker.invoke(Abstra
    ctInvoker.java:96)
            ... 35 more
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server Liberty - JAX-RS                     *
    ****************************************************************
    * PROBLEM DESCRIPTION: Memory leak in JAX-RS client.           *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    Using the JAX-RS client may result in a memory leak.  Analysis
    of this leak will show that it is occurring in the
    ClientProviderFactory class.   Investigation of this issue also
    uncovered occasional ConcurrentModificationExceptions similar to
    the following stack.  This was also resolved as part of this
    APAR.
    
    Caused by: java.util.ConcurrentModificationException
            at java.util.ArrayList.sort(ArrayList.java:1467)
            at java.util.Collections.sort(Collections.java:186)
            at
    org.apache.cxf.jaxrs.client.ClientProviderFactory.setProviders(C
    lientProviderFactory.java:93)
            at
    org.apache.cxf.jaxrs.provider.ProviderFactory.setUserProviders(P
    roviderFactory.java:1076)
            at
    org.apache.cxf.jaxrs.client.spec.ClientImpl$WebTargetImpl.reques
    t(ClientImpl.java:280)
            at
    com.acmeair.web.JAXRSClientServiceREST.doPing(JAXRSClientService
    REST.java:87)
            at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown
    Source)
            at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethod
    AccessorImpl.java:55)
            at java.lang.reflect.Method.invoke(Method.java:508)
            at
    com.ibm.ws.jaxrs20.server.LibertyJaxRsServerFactoryBean.performI
    nvocation(LibertyJaxRsServerFactoryBean.java:651)
            at
    com.ibm.ws.jaxrs20.server.LibertyJaxRsInvoker.performInvocation(
    LibertyJaxRsInvoker.java:115)
            at
    org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractIn
    voker.java:96)
            ... 35 more
    

Problem conclusion

  • During execution the providers were being added to a LinkedList
    that was not being cleaned up.   As a result duplicates were
    eventually causing a leak.  Changing from a LinkedList to a
    HashSet clears up this issue.
    
    The ConcurrentModificationException issue was resolved by
    changing the internal objects used to use copies, thus avoiding
    concurrent modification.
    
    The fix for this APAR is currently targeted for inclusion in fix
    pack 17.0.0.1.  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

    PI75015

  • Reported component name

    WAS LIBERTY COR

  • Reported component ID

    5725L2900

  • Reported release

    CD0

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-01-16

  • Closed date

    2017-01-18

  • Last modified date

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

    WAS LIBERTY COR

  • Fixed component ID

    5725L2900

Applicable component levels

  • RCD0 PSY

       UP

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

Document Information

Modified date:
04 May 2022