IBM Support

PK75090: NULLPOINTEREXCEPTION IN JSPEXTENSIONSERVLETWRAPPER.TRANSLATEJSP

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The problem occurs only in a WebSphere application server for
    z/OS running with multiple servants.  When JSPs are compiled on
    the fly in this environment, the runtime code manages the case
    where both servants may try to access a single JSP to compile it
    concurrently by allowing one servant to lock the JSP file while
    it compiles.  If the instance arises where two requests for a
    JSP needing to be compiled at the same time, and are routed to
    separate servant regions, the following NullPointerException is
    likely to occur:
    java.lang.NullPointerException
    at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.
                 translateJsp(JSPExtensionServletWrapper.java:404)
    at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.
          _checkForTranslation(JSPExtensionServletWrapper.java:366)
    at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.
          checkForTranslation(JSPExtensionServletWrapper.java:262)
    at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.
          handleRequest(JSPExtensionServletWrapper.java:151)
    at com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor.
          handleRequest(JSPExtensionProcessor.java:255)
    at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(
                                                  WebApp.java:3174)
    ...
    The above exception is thrown in the servant who is attempting
    to compile the JSP after another servant has already obtained
    a lock on the JSP file.  In addition to the NullPointerException
    the JSP in question is likely to be flagged as permanently
    unavailable for the life of the servant region, so that all
    requests coming to the servant for the JSP will fail with 500
    errors (UnavailableExceptions will be thrown to the client).
    

Local fix

  • As a preventative measure, you can bypass this issue by
    precompiling JSPs before or during application deployment.
    If you find yourself currently experiencing
    UnavailableExceptions due to this issue, a recycle of the server
    or servant region will be required to recover from this problem.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All users of WebSphere Application Server    *
    *                 V6.1 for z/OS                                *
    ****************************************************************
    * PROBLEM DESCRIPTION: When JavaServer Pages (JSP) are         *
    *                      compiling at runtime on a z/OS server   *
    *                      that is running with multiple           *
    *                      servants, a NullPointerException may    *
    *                      occur.                                  *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    The problem occurs only in a WebSphere z/OS server running
    with multiple servant regions.  When JSPs are compiled on the
    fly in this environment, the JSP Container manages the case
    where both servant regions may try to access a single JSP to
    compile it concurrently by allowing one servant to lock the
    JSP file while it compiles.  If the instance arises where two
    requests for a JSP need to be compiled at the same time, and
    are routed to separate servant regions, there is a small
    window in which a NullPointerException is likely to occur:
    java.lang.NullPointerException
    
    at
    com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.transl
    ateJsp(JSPExtensionServletWrapper.java:404)
    at
    com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper._check
    ForTranslation(JSPExtensionServletWrapper.java:366)
    at
    com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.checkF
    orTranslation(JSPExtensionServletWrapper.java:262)
    at
    com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.handle
    Request(JSPExtensionServletWrapper.java:151)
    ....................
    

Problem conclusion

  • The JSP Container has been modified to cause a servant region
    to retry obtaining the lock on a JSP file before compiling it.
     This retry will expire after 120 seconds.  If the compilation
    time is expected to be longer, a user can increase the retry
    time by setting the webcontainer's custom property:
    
    com.ibm.ws.jsp.zosFileLockRetrying = 120 (default)
    
    The custom property is not case sensitive.
    
    Please refer to the following technote for instructions on
    enabling WebContainer custom properties:
    http://www.ibm.com/support/docview.wss?rss=180&uid=swg21284395
    
    APAR PK75090 requires changes to documentation.
    
    NOTE: Periodically, we refresh the documentation on our
    Web site, so the changes might have been made before you
    read this text. To access the latest on-line
    documentation, go to the product library page at:
    
    http://www.ibm.com/software/webservers/appserv/library
    
    The following Changes to the z/OS version of the
    WebSphere Application Server Version 6.1 Information
    Center.
    
    The following description of the
    com.ibm.ws.jsp.zosFileLockRetrying Web conatiner
    custom property will be added to the topic "Web
    container custom properties:"
    
    Extending the wait time when two servants need to
    concurrently compile the same JSP
    
    When JavaServer Pages files (or user-defined JSP files)
    are complied in an environment that has multiple servants,
    the JSP container uses locking to prevent both servants
    from trying to concurrently compile the same JSP file.
    If two requests for a JSP need to be compiled at the same
    time, and are routed to separate servants, the JSP
    container locks the JSP file until the compilation for
    the first servant completes. If the second servant has to
    wait for more than 120 seconds for the lock to be
    released, the request for the JSP fails.
    
    If you expect the compilation time for any of your JSP
    files to be more than 120 seconds, specify, in seconds,
    a value greater than 120 for the
    com.ibm.ws.jsp.zosFileLockRetrying custom property. The
    new setting should extend the wait time, such that the
    new wait time prevents a JSP request from failing in
    situations where two requests for the same JSP file need
    to be handled at approximately the same time, but the
    requests are routed to different servants.
    
    APAR PK75090 currently targeted for inclusion in Service
    Level (Fix Pack) 6.1.0.21 of WebSphere Application Server V6.1
    for z/OS.
    
    Please refer to URL:
    //www.ibm.com/support/docview.wss?rs=404&uid=swg27006970
    for Fix Pack availability.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PK75090

  • Reported component name

    WEBSPHERE FOR Z

  • Reported component ID

    5655I3500

  • Reported release

    610

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2008-11-05

  • Closed date

    2008-11-10

  • Last modified date

    2008-12-02

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

    PK69410

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

Modules/Macros

  • BBGUBINF BBOUBINF
    

Fix information

  • Fixed component name

    WEBSPHERE FOR Z

  • Fixed component ID

    5655I3500

Applicable component levels

  • R610 PSY UK41575

       UP08/11/26 P F811

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SS7K4U","label":"WebSphere Application Server for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.1","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
10 February 2022