IBM Support

PI92335: JavaServer Pages (JSP) performance difference between JSP 2.2 and JSP 2.3

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as suggestion for future release.

Error description

  • Profiling shows there is a outstanding hot spot related to EL
    resolver difference between the two versions of WebSphere.
    
    The difference comes down to class AstIdentifier. To be EL 3.0
    spec. section 1.5.1 Evaluating Identifiers. compliant, this
    class needed to be modified in order to support Lamba
    expressions, variables, ELResolvers, and statically imported
    fields. This set of new checks is generating the behavior
    reported in the PMR.
    
    After evaluating the issue the particular ELResolver causing
    the biggest performance difference is ScopedAttributeELResolver
    (javax.servlet.jsp.el). This class is included in WAS from the
    JSP API classes provided by Oracle. It was modified for JSP
    2.3 to support EL 3.0 static fields for imported classes.
    

Local fix

  • We can recommend a workaround that, depending on your
    application, could improve the performance when resolving EL
    expressions. The workaround is to set a value for each EL
    variables that you're using in a page. If a variable is null, a
    check in the classloader will be made and here is where we
    start seeing the performance difference. To set the value for a
    variable you can use any of the following scopes: page,
    request, session, and application (the most efficient would be
    the page scope, but you need to evaluate if that makes sense
    for the application).
    

Problem summary

Problem conclusion

Temporary fix

Comments

  • APAR PI92335 is being closed SUG because the JavaServer Pages
    (JSP) 2.3 specification has a dependency on EL 3.0. This
    dependency has the potential to cause a performance degradation
    between JSP 2.2 and JSP 2.3 due to the EL 3.0 static variable
    resolution feature. A new action has been added to JSP 2.3 when
    resolving EL expression; if an EL expression variable is not fou
    on any of the scopes (page, request, session, or application),
    then the JSP engine will need to verify if the variable is a
    statically imported field in order to be compliant with the EL 3
    specification. This new check might have a performance differenc
    when compared to just checking the scopes (as in JSP 2.2) as
    classloading operations will happen.
    
    A JSP 2.3 issue is open in the Java Enterprise Edition issue
    tracker. The title of the issue is "JSP spec. needs to define a
    mechanism to support EL 3.0 static fields for imported classes".
    
    Update: We can now recommend the fix for APAR PH31416,
    which improves the performance of resolving EL 3.0 expressions
    of the type described here.
    

APAR Information

  • APAR number

    PI92335

  • Reported component name

    WEBSPHERE APP S

  • Reported component ID

    5724J0800

  • Reported release

    900

  • Status

    CLOSED SUG

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2018-01-11

  • Closed date

    2018-03-05

  • Last modified date

    2021-07-21

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

Applicable component levels

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.0","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
01 November 2021