IBM Support

PM20987: A ClassCastException may occur if two different JAX-RPC Web service clients are running in the same JVM.

Fixes are available

6.1.0.35: Java SDK 1.5 SR12 FP2 Cumulative Fix for WebSphere
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for AIX
7.0.0.15: Java SDK 1.6 SR9 Cumulative Fix for WebSphere Application Server
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for HP-UX
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for IBM i
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for Linux
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for Solaris
7.0.0.15: WebSphere Application Server V7.0 Fix Pack 15 for Windows
6.1.0.37: Java SDK 1.5 SR12 FP3 Cumulative Fix for WebSphere
7.0.0.17: WebSphere Application Server V7.0 Fix Pack 17
7.0.0.17: Java SDK 1.6 SR9 FP1 Cumulative Fix for WebSphere Application Server
7.0.0.19: WebSphere Application Server V7.0 Fix Pack 19
7.0.0.21: WebSphere Application Server V7.0 Fix Pack 21
7.0.0.23: WebSphere Application Server V7.0 Fix Pack 23
7.0.0.25: WebSphere Application Server V7.0 Fix Pack 25
7.0.0.27: WebSphere Application Server V7.0 Fix Pack 27
7.0.0.29: WebSphere Application Server V7.0 Fix Pack 29
6.1.0.47: WebSphere Application Server V6.1 Fix Pack 47
7.0.0.31: WebSphere Application Server V7.0 Fix Pack 31
7.0.0.27: Java SDK 1.6 SR13 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.33: WebSphere Application Server V7.0 Fix Pack 33
7.0.0.35: WebSphere Application Server V7.0 Fix Pack 35
7.0.0.37: WebSphere Application Server V7.0 Fix Pack 37
7.0.0.39: WebSphere Application Server V7.0 Fix Pack 39
7.0.0.41: WebSphere Application Server V7.0 Fix Pack 41
7.0.0.43: WebSphere Application Server V7.0 Fix Pack 43
7.0.0.45: WebSphere Application Server V7.0 Fix Pack 45
6.1.0.39: Java SDK 1.5 SR12 FP4 Cumulative Fix for WebSphere Application Server
6.1.0.41: Java SDK 1.5 SR12 FP5 Cumulative Fix for WebSphere Application Server
6.1.0.43: Java SDK 1.5 SR13 Cumulative Fix for WebSphere Application Server
6.1.0.45: Java SDK 1.5 SR14 Cumulative Fix for WebSphere Application Server
6.1.0.47: Java SDK 1.5 SR16 Cumulative Fix for WebSphere Application Server
7.0.0.19: Java SDK 1.6 SR9 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.21: Java SDK 1.6 SR9 FP2 Cumulative Fix for WebSphere
7.0.0.23: Java SDK 1.6 SR10 FP1 Cumulative Fix for WebSphere
7.0.0.25: Java SDK 1.6 SR11 Cumulative Fix for WebSphere Application Server
7.0.0.27: Java SDK 1.6 SR12 Cumulative Fix for WebSphere Application Server
7.0.0.29: Java SDK 1.6 SR13 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.45: Java SDK 1.6 SR16 FP60 Cumulative Fix for WebSphere Application Server
7.0.0.31: Java SDK 1.6 SR15 Cumulative Fix for WebSphere Application Server
7.0.0.35: Java SDK 1.6 SR16 FP1 Cumulative Fix for WebSphere Application Server
7.0.0.37: Java SDK 1.6 SR16 FP3 Cumulative Fix for WebSphere Application Server
7.0.0.39: Java SDK 1.6 SR16 FP7 Cumulative Fix for WebSphere Application Server
7.0.0.41: Java SDK 1.6 SR16 FP20 Cumulative Fix for WebSphere Application Server
7.0.0.43: Java SDK 1.6 SR16 FP41 Cumulative Fix for WebSphere Application Server

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • A java.lang.ClassCastException error may occur if two different
    JAX-RPC Web service clients are running in the same Java
    Virtual Machine (JVM).
    
    Here is an example error:
    java.lang.ClassCastException:
    
    com.acme.webservice1.Response
    at
    com.acme.webservice2.WS1Stub.myMethod(...)
    
    
    The error may occur if all of the following criteria are met:
    
    a) Two different JAX-RPC Web service clients
    (example: WS1 and WS2) are invoked on different threads of the
    same JVM.
    
    b) The JAX-RPC Web services share the same XML type
    (example {http://bus.com/webservice}Response)
    
    c) The two JAX-RPC Web services map the common XML type to
    different classes (com.bus.webservice1.Response1 and
    com.bus.webservice2.Response2)
    
    The error occurs because the JAX-RPC Web service stubs
    uses the same registry (called a TypeMappingRegistry) to map
    the Web service XML types to the Java classes.
    
    ------------
    
    You may also require this solution if all of the following are
    true:
    
    * The following JVM property is enabled:
    com.ibm.websphere.jaxrpc.stub.typemapping.per.thread=true
    * You are experiencing an OutOfMemory error.
    * The heapdump indicates that the following class uses a
    substantial amount of memory (> 50M):
    com.ibm.ws.webservices.engine.encoding.TypeMappingRegistryImpl
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  IBM WebSphere Application Server users of   *
    *                  JAX-RPC Web services clients                *
    ****************************************************************
    * PROBLEM DESCRIPTION: ClassCastException error may occur if   *
    *                      multiple JAX-RPC clients are invoked    *
    ****************************************************************
    * RECOMMENDATION:  Install a fix pack containing this APAR and *
    *                  enable the custom JVM property (            *
    *                  com.ibm.websphere.jaxrpc.stub.typemapping.p *
    *                  er.stub).                                   *
    ****************************************************************
    A java.lang.ClassCastException error may occur if two different
    JAX-RPC Web service clients are running in the same Java
    Virtual Machine (JVM).
    
    Here is an example error:
    java.lang.ClassCastException:
    
    com.acme.webservice1.Response
     at
    com.acme.webservice2.WS1Stub.myMethod(...)
    
    
    The error may occur if all of the following criteria are met:
    
    a) Two different JAX-RPC Web service clients
    (example: WS1 and WS2) are invoked on different threads of the
    same JVM.
    
    b) The JAX-RPC Web services share the same XML type
    (example {http://bus.com/webservice}Response)
    
    c) The two JAX-RPC Web services map the common XML type to
    different classes (com.bus.webservice1.Response1 and
    com.bus.webservice2.Response2)
    
    The error occurs because the JAX-RPC Web service stubs
    uses the same registry (called a TypeMappingRegistry) to map
    the Web service XML types to the Java classes.
    
    ------------
    
    You may also require this solution if all of the following are
    true:
    
      * The following JVM property is enabled:
        com.ibm.websphere.jaxrpc.stub.typemapping.per.thread=true
      * You are experiencing an OutOfMemory error.
      * The heapdump indicates that the following class uses a
    substantial amount of memory (> 50M):
      com.ibm.ws.webservices.engine.encoding.TypeMappingRegistryImpl
    

Problem conclusion

  • The JAX-RPC runtime uses a single TypeMappingRegistry object
    for all of the JAX-RPC clients.  This design is intentional,
    and it allows customers to create a JAX-RPC stub and use it on
    multiple threads.
    
    However the singleton TypeMappingRegistry will be
    contaminated if multiple JAX-RPC Web services with different
    mappings are invoked concurrently.  This is an uncommon
    scenario.
    
    A new custom JVM property is introduced:
    Property Name:
    com.ibm.websphere.jaxrpc.stub.typemapping.per.stub
    Property Value: true or false
    Property Default: false
    
    If this JVM property is set to true, the JAX-RPC runtime will
    use stub specific type mapping objects.  These separate
    mapping objects will avoid the contamination issue, and the
    various web service calls will succeed.
    
    Note: This JVM property should only be enabled if you
    encounter the reported error.
    
    Note: Enabling this property may increase the memory
    footprint of the JAX-RPC engine, which could lead to
    OutOfMemoryError errors.  IBM suggests that APAR PM19940
    should also be installed along with this APAR.
    
    Note: If you encounter problems, please consult APAR PM19223,
    which provides an alternative property setting.
    
    The fix for this APAR is currently targeted for inclusion in
    fix packs 6.1.0.35, and 7.0.0.15.  The fix is available
    for version 6.0.2, but it is not included in a fixpack.  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

    PM20987

  • Reported component name

    WEBSPHERE APP S

  • Reported component ID

    5724J0800

  • Reported release

    60A

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2010-08-21

  • Closed date

    2010-09-27

  • Last modified date

    2010-09-27

  • 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

    WEBSPHERE APP S

  • Fixed component ID

    5724J0800

Applicable component levels

  • R60A PSY

       UP

  • R60H PSY

       UP

  • R60I PSY

       UP

  • R60P PSY

       UP

  • R60S PSY

       UP

  • R60W PSY

       UP

  • R60Z PSY

       UP

  • R61A PSY

       UP

  • R61H PSY

       UP

  • R61I PSY

       UP

  • R61P PSY

       UP

  • R61S PSY

       UP

  • R61W PSY

       UP

  • R61Z PSY

       UP

  • R700 PSY

       UP



Document information

More support for: WebSphere Application Server
General

Software version: 6.0

Reference #: PM20987

Modified date: 27 September 2010