IBM Support

PI82426: INCORRECT OUTPUT FOR JSP IN AN EXPRESSION TAG WHEN USING CERTAIN STRING CONCATENATIONS.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The JSP parser is generating incorrect code when concatenating
    a string constant to an integer which also uses the ++ operator
    inside an expression tag.  An example of the JSP code which
    will cause the problem is:
    
    <% int i = 0;%>
    <%= "month" + i++%>
    
    This produces the following lines of code (shown when
    keepgenerated is set):
    
    out.write( "month" );
    out.print( i);
    out.print( i+);
    
    This APAR will resolve the problem.
    

Local fix

  • Altering the JSP code so that the string is not constant, such
    as:
    
    <%
    int i = 0;
    String month = "month";
    
    %>
    <%= month + i++%>
    
    This will work around the problem and produce correct output.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server                                      *
    *                  Traditional profile versions 8.5.5 and 9.0  *
    *                  and Liberty profile - JavaServer Pages      *
    *                  (JSP)                                       *
    *                  2.2 and 2.3                                 *
    ****************************************************************
    * PROBLEM DESCRIPTION: Some JSP expressions concatenating a    *
    *                      string with an incremental variable     *
    *                      might generate incorrect output.        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    The following JSP expressions, most of which concatenate a
    string with an incremental variable
    (i.e. i++ or ++i), will generate incorrect output: (assuming
    variable 'i' has been declared and
    initialized)
    <%= "test" + i++%>
    <%= i++%> (notice the lack of a whitespace char before '%')
    <%= i++ + "test" %>
    

Problem conclusion

  • The JSP engine has been modified to generate the right output
    to each of the problematic cases mentioned in the problem
    summary.
    
    The fix for this APAR is currently targeted for inclusion in
    fix packs 8.5.5.13, 9.0.0.5, and 17.0.0.14.  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

    PI82426

  • Reported component name

    WEBSPHERE FOR Z

  • Reported component ID

    5655I3500

  • Reported release

    850

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-06-01

  • Closed date

    2017-08-31

  • Last modified date

    2018-02-28

  • 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 FOR Z

  • Fixed component ID

    5655I3500

Applicable component levels

  • R850 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud \u0026 Data Platform"},"Product":{"code":"SS7K4U","label":"WebSphere Application Server for z\/OS"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"850","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
19 October 2021