IBM Support

PI81569: INTRODUCE SWITCH FOR GETQUERYSTRING() TO RETURN ORIGINAL QUERY STRING IN FORWARDED SERVLET

Fixes are available

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
WebSphere Application Server traditional 9.0.5.6
9.0.5.7: WebSphere Application Server traditional Version 9.0.5 Fix Pack 7
9.0.5.8: WebSphere Application Server traditional Version 9.0.5.8
8.5.5.20: WebSphere Application Server V8.5.5.20
8.5.5.18: WebSphere Application Server V8.5.5 Fix Pack 18
8.5.5.19: WebSphere Application Server V8.5.5 Fix Pack 19
9.0.5.9: WebSphere Application Server traditional Version 9.0.5.9
9.0.5.10: WebSphere Application Server traditional Version 9.0.5.10
8.5.5.16: WebSphere Application Server V8.5.5 Fix Pack 16
8.5.5.21: WebSphere Application Server V8.5.5.21
9.0.5.11: WebSphere Application Server traditional Version 9.0.5.11

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • WAS behaviour is compliance with servlet specification out of
    the box. This switch is facilitate migration of applications
    from few other application server that behaves differently.
    

Local fix

  • request.getAttribute("javax.servlet.forward,query_string") will
    return  same response
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  IBM WebSphere Application Server            *
    *                  Traditional versions 8.5.5 and 9.0, and     *
    *                  Websphere Application Server Liberty users  *
    *                  of WebContainer.                            *
    ****************************************************************
    * PROBLEM DESCRIPTION: Invoking                                *
    *                      javax.servlet.HttpServletRequest.getQue *
    *                      ryString() returns null after           *
    *                      dispatching forward.                    *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    If the path used when invoking
    javax.servlet.ServletRequest.getRequestDispatcher() does not
    contain a query string, HttpServletRequest.getQueryString()
    returns null even if the original request URI contained a
    query string.
    The following is an example of this scenario:
    A request submitted to "/ServletA?a=b" gets matched to
    ServletA:
    ServletA:
    ...
    request.getRequestDispatcher("/ServletB").forward();
    ...
    ServletB:
    ...
    String qs = request.getQueryString();
    ...
    The "qs" variable in ServletB will have a null value. This is
    correct according to the Servlet Specification. However, some
    pre-existing applications might expect a different behavior
    which might cause issues during migration.
    

Problem conclusion

  • The WebContainer has been modified to return the original
    query string when invoking HttpServletRequest.getQueryString()
    after dispatching if the path used to obtain the dispatcher
    does not contain a query string.
    
    A new WebContainer custom property needs to be set to true to
    enable this behavior.
    
    Name: com.ibm.ws.webcontainer.useOriginalQSInForwardIfNull
    values: true/false(default)
    
    After enabling the fix the "qs" variable in the example above
    will have the following value:
    
    "a=b"
    
    If the path used when invoking
    ServletRequest.getRequestDispatcher() contains a query string
    and this fix is enabled the "qs" variable will contain the new
    query string from the path used to obtain the dispatcher.
    
    
    Please refer to the following technote for instructions on
    enabling WebContainer custom properties:
    
    
    Full profile:
    http://www.ibm.com/support/docview.wss?rss=180&uid=swg21284395
    
    Liberty profile:
    http://www-01.ibm.com/support/docview.wss?uid=swg2159775
    
    
    The fix for this APAR is currently targeted for inclusion in
    fixpacks 8.5.5.13, 9.0.0.5 and 17.0.0.3. 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

    PI81569

  • Reported component name

    WEBSPHERE APP S

  • Reported component ID

    5724J0800

  • Reported release

    850

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-05-12

  • Closed date

    2017-09-18

  • Last modified date

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

    WEBSPHERE APP S

  • Fixed component ID

    5724J0800

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:
03 May 2022