IBM Support

PM19223: 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)
    

Local fix

  • Possible workaround to this problem, to synchronize the use of
    the two stubs.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  IBM WebSphere Application Server users of   *
    *                  JAX-RPC Web services                        *
    ****************************************************************
    * 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.thread).                                 *
    ****************************************************************
    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.
    

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.thread
    Property Value: true or false
    Property Default: false
    
    If this JVM property is set to true, the JAX-RPC runtime will
    use thread 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 a
    customer encounters the reported error.  Enabling this
    property may regress applications dependent on access to the
    same JAX-RPC stub across multiple threads.
    
    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: Enabling this property may substantially increase the
    memory footprint if the Web services are complicated and the
    customer is calling the Web services on a large number of
    threads (>50).  In such cases, the customer should apply APAR
    PM20987 and enable the following JVM property:
    com.ibm.websphere.jaxrpc.stub.typemapping.per.stub
    
    
    The fix for this APAR is currently targeted for inclusion in
    fix pack 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

    PM19223

  • 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-07-26

  • Closed date

    2010-08-17

  • Last modified date

    2010-08-30

  • 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 #: PM19223

Modified date: 30 August 2010