IBM Support

PH26641: INDEXOUTOFBOUNDSEXCEPTION WHEN PERFORMING SOME OF APIS ON SDO LIST

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • SDO works in a lazy parsing manner meaning data is not loaded
    until it's absolutely needed. In SDO have an implementation of
    the List interface which overrides methods in the List interface
     (with few exceptions listed below) to ensure items in the list
    are loaded/cached prior to doing the actual operation.
    
    
    
    The following methods do not ensure items are loaded and would
    cause java.lang.IndexOutOfBoundsException.
    
    * ListIterator<E> listIterator()
    
    * boolean removeAll(Collection<?> c)
    
    * List<E> subList(int fromIndex, int toIndex)
    

Local fix

  • To get around this issue, we suggest calling size() first,
    which is a lightweight operation, to ensure that items are
    loaded.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server                                      *
    ****************************************************************
    * PROBLEM DESCRIPTION: java.lang.IndexOutOfBoundsException     *
    *                      when                                    *
    *                      performing some of APIs on SDO list     *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    SDO works in a lazy parsing manner meaning data is not loaded
    until it is absolutely needed. SDO has an implementation of
    the List interface which overrides methods in the underlying
    List
    class (with few exceptions listed below) to ensure items in the
    list are loaded/cached prior to doing the actual operation.
    The following methods do not ensure items are loaded and would
    cause java.lang.IndexOutOfBoundsException.
    * ListIterator<E> listIterator()
    * boolean removeAll(Collection<?> c)
    * List<E> subList(int fromIndex, int toIndex)
    

Problem conclusion

  • SDO List implementation is updated to ensure items are cached an
    loaded on all LIST API methods.
    
    The fix for this APAR is targeted for inclusion in fix pack
    8.5.5.19 and 9.0.5.7. For more information, see 'Recommended
    Updates for WebSphere Application Server':
    https://www.ibm.com/support/pages/node/715553
    

Temporary fix

  • Calling 'size()' method on a SDO List forces items to be loaded
    and would prevent the java.lang.IndexOutOfBoundsException.
    

Comments

APAR Information

  • APAR number

    PH26641

  • 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

    2020-06-23

  • Closed date

    2020-11-27

  • Last modified date

    2020-12-08

  • 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

  • R900 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:
02 November 2021