IBM Support

PI60837: A StackOverflowError can occur when com.ibm.ws.el.reuseEvaluatio nContext is set to true

Fixes are available

8.5.5.10: WebSphere Application Server V8.5.5 Fix Pack 10
8.5.5.11: WebSphere Application Server V8.5.5 Fix Pack 11
16.0.0.2: WebSphere Application Server Liberty 16.0.0.2
16.0.0.3: WebSphere Application Server Liberty 16.0.0.3
16.0.0.4: WebSphere Application Server Liberty 16.0.0.4
8.5.5.12: WebSphere Application Server V8.5.5 Fix Pack 12
8.5.5.13: WebSphere Application Server V8.5.5 Fix Pack 13
17.0.0.1: WebSphere Application Server Liberty 17.0.0.1
17.0.0.2: WebSphere Application Server Liberty 17.0.0.2
17.0.0.3: WebSphere Application Server Liberty 17.0.0.3
17.0.0.4: WebSphere Application Server Liberty 17.0.0.4
18.0.0.1: WebSphere Application Server Liberty 18.0.0.1
18.0.0.2: WebSphere Application Server Liberty 18.0.0.2
8.5.5.14: WebSphere Application Server V8.5.5 Fix Pack 14
18.0.0.3: WebSphere Application Server Liberty 18.0.0.3
18.0.0.4: WebSphere Application Server Liberty 18.0.0.4
19.0.0.1: WebSphere Application Server Liberty 19.0.0.1
8.5.5.15: WebSphere Application Server V8.5.5 Fix Pack 15
19.0.0.2: WebSphere Application Server Liberty 19.0.0.2
19.0.0.3: WebSphere Application Server Liberty 19.0.0.3
19.0.0.4: WebSphere Application Server Liberty 19.0.0.4
19.0.0.5: WebSphere Application Server Liberty 19.0.0.5
19.0.0.6: WebSphere Application Server Liberty 19.0.0.6
19.0.0.7: WebSphere Application Server Liberty 19.0.0.7
19.0.0.8: WebSphere Application Server Liberty 19.0.0.8
19.0.0.9: WebSphere Application Server Liberty 19.0.0.9
19.0.0.10: WebSphere Application Server Liberty 19.0.0.10
19.0.0.11: WebSphere Application Server Liberty 19.0.0.11
19.0.0.12: WebSphere Application Server Liberty 19.0.0.12
20.0.0.1: WebSphere Application Server Liberty 20.0.0.1
20.0.0.2: WebSphere Application Server Liberty 20.0.0.2
8.5.5.17: WebSphere Application Server V8.5.5 Fix Pack 17
20.0.0.3: WebSphere Application Server Liberty 20.0.0.3
20.0.0.4: WebSphere Application Server Liberty 20.0.0.4
20.0.0.5: WebSphere Application Server Liberty 20.0.0.5
20.0.0.6: WebSphere Application Server Liberty 20.0.0.6
20.0.0.7: WebSphere Application Server Liberty 20.0.0.7
20.0.0.8: WebSphere Application Server Liberty 20.0.0.8
20.0.0.9: WebSphere Application Server Liberty 20.0.0.9
20.0.0.10: WebSphere Application Server Liberty 20.0.0.10
20.0.0.11: WebSphere Application Server Liberty 20.0.0.11
20.0.0.12: WebSphere Application Server Liberty 20.0.0.12
21.0.0.3: WebSphere Application Server Liberty 21.0.0.3
21.0.0.4: WebSphere Application Server Liberty 21.0.0.4
21.0.0.5: WebSphere Application Server Liberty 21.0.0.5
21.0.0.6: WebSphere Application Server Liberty 21.0.0.6
21.0.0.7: WebSphere Application Server Liberty 21.0.0.7
8.5.5.20: WebSphere Application Server V8.5.5.20
21.0.0.8: WebSphere Application Server Liberty 21.0.0.8
21.0.0.9: WebSphere Application Server Liberty 21.0.0.9
8.5.5.18: WebSphere Application Server V8.5.5 Fix Pack 18
21.0.0.1: WebSphere Application Server Liberty 21.0.0.1
8.5.5.19: WebSphere Application Server V8.5.5 Fix Pack 19
21.0.0.2: WebSphere Application Server Liberty 21.0.0.2
21.0.0.10: WebSphere Application Server Liberty 21.0.0.10
21.0.0.11: WebSphere Application Server Liberty 21.0.0.11
21.0.0.12: WebSphere Application Server Liberty 21.0.0.12
8.5.5.16: WebSphere Application Server V8.5.5 Fix Pack 16
22.0.0.1: WebSphere Application Server Liberty 22.0.0.1
22.0.0.2: WebSphere Application Server Liberty 22.0.0.2
8.5.5.21: WebSphere Application Server V8.5.5.21
22.0.0.3: WebSphere Application Server Liberty 22.0.0.3
22.0.0.4: WebSphere Application Server Liberty 22.0.0.4

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • A StackOverflowError will occur when a JSF view containing a
    composite component is accessed when the JVM custom property
    'com.ibm.ws.el.reuseEvaluationContext' is set to true. The
    JVM custom property was added with APAR PM10631.
    
    PM10631 enhances memory performance by reusing the same
    EvaluationContext on a per-thread basis instead of creating
    a new EvaluationContext object when evaluating expressions.
    This could cause issues when JSF composite components are
    used because the EvaluationContext might try to reference
    itself.
    
    A request made to /<context-root>/test.xhtml should result
    in a StackOverflowError similar to:
    ?Caused by: java.lang.StackOverflowError
    at
    org.apache.el.lang.EvaluationContext.setPropertyResolved(Eva
    luationContext.java:85)
    at
    org.apache.el.lang.EvaluationContext.setPropertyResolved(Eva
    luationContext.java:85)
    at
    org.apache.el.lang.EvaluationContext.setPropertyResolved(Eva
    luationContext.java:85)
    ...
    at
    org.apache.el.lang.EvaluationContext.setPropertyResolved(Eva
    luationContext.java:85)
    at
    org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.ja
    va:70)
    at org.apache.el.parser.AstValue.getTarget(AstValue.java:97)
    at org.apache.el.parser.AstValue.getType(AstValue.java:85)
    at
    org.apache.el.ValueExpressionImpl.getType(ValueExpressionImp
    l.java:232)
    at
    org.apache.webbeans.el.WrappedValueExpression.getType(Wrappe
    dValueExpression.java:59)
    at
    org.apache.myfaces.view.facelets.el.TagValueExpression.getTy
    pe(TagValueExpression.java:69)
    at
    org.apache.myfaces.el.unified.resolver.CompositeComponentELR
    esolver.getType(CompositeComponentELResolver.java:100)
    at
    javax.el.CompositeELResolver.getType(CompositeELResolver.jav
    a:119)
    at
    org.apache.myfaces.el.unified.resolver.FacesCompositeELResol
    ver.getType(FacesCompositeELResolver.java:122)
    at org.apache.el.parser.AstValue.getType(AstValue.java:87)
    at
    org.apache.el.ValueExpressionImpl.getType(ValueExpressionImp
    l.java:232)
    at
    org.apache.webbeans.el.WrappedValueExpression.getType(Wrappe
    dValueExpression.java:59)
    at
    org.apache.myfaces.view.facelets.el.TagValueExpression.getTy
    pe(TagValueExpression.java:69)
    at
    org.apache.myfaces.view.facelets.el.LocationValueExpression.
    getType(LocationValueExpression.java:75)
    at
    org.apache.myfaces.shared_impl.renderkit._SharedRendererUtil
    s.findUIOutputConverter(_SharedRendererUtils.java:77)
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server Liberty - Expression Language (EL)   *
    *                  2.2                                         *
    ****************************************************************
    * PROBLEM DESCRIPTION: A java.lang.StackOverflowError can      *
    *                      occur when evaluating EL expressions    *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    When the JVM custom property
    'com.ibm.ws.el.reuseEvaluationContext' is set to true, it is
    possible for an org.apache.el.lang.EvaluationContext object to
    reference itself. This can result in a
    java.lang.StackOverflowError,
    
    A stack trace similar to the following should be seen in the
    logs:
    Caused by: java.lang.StackOverflowError
    at
    org.apache.el.lang.EvaluationContext.setPropertyResolved(Evaluat
    ionContext.java:85)
     at
    org.apache.el.lang.EvaluationContext.setPropertyResolved(Evaluat
    ionContext.java:85)
     at
    org.apache.el.lang.EvaluationContext.setPropertyResolved(Evaluat
    ionContext.java:85)
    ...
    at
    org.apache.el.lang.EvaluationContext.setPropertyResolved(Evaluat
    ionContext.java:85)
    at
    org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:7
    0)
    at org.apache.el.parser.AstValue.getTarget(AstValue.java:97)
    at org.apache.el.parser.AstValue.getType(AstValue.java:85)
    at
    org.apache.el.ValueExpressionImpl.getType(ValueExpressionImpl.ja
    va:232)
    at
    org.apache.webbeans.el.WrappedValueExpression.getType(WrappedVal
    ueExpression.java:59)
    

Problem conclusion

Temporary fix

Comments

APAR Information

  • APAR number

    PI60837

  • Reported component name

    LIBERTY PROFILE

  • Reported component ID

    5724J0814

  • Reported release

    855

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-04-14

  • Closed date

    2016-05-11

  • Last modified date

    2016-06-22

  • 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

    LIBERTY PROFILE

  • Fixed component ID

    5724J0814

Applicable component levels

  • R855 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":"855","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
04 May 2022