IBM Support

PI80082: JAX-RS 2.0 OPTIONS methods are not invoked when used in sub-resource locator classes.

Fixes are available

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

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • If a sub-resource locator class defines a method with the
    @OPTIONS annotation, it will not be invoked.  Instead, the
    most likely result will be a "404 Not Found" response.
    
    For example, suppose you have a resource method like this:
    
    @Path("/myRootUri")
    public class MyRootResource {
        @Path("/sub")
        public MySubResource sub() {
            return new MySubResource();
        }
    }
    
    and a sub-resource locator class like below:
    
    public class MySubResource {
        @OPTIONS
        public Response options() {
            return Response.ok("...").build();
        }
    
        @GET
        public Response get() {
            return Response.ok("...").build();
        }
    }
    
    Invoking /myRootUri/sub with a GET request will return the
    expected 200 response, but invoking the same URI with an
    OPTIONS request will get an unexpected 404 response.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server Liberty - JAX-RS                     *
    ****************************************************************
    * PROBLEM DESCRIPTION: JAX-RS 2.0 OPTIONS methods are not      *
    *                      invoked when used in sub-resource       *
    *                      locator classes.                        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    If a sub-resource locator class defines a method with the
    @OPTIONS annotation, it will not be invoked.  Instead, the most
    likely result will be a "404 Not Found" response.
    
    For example, suppose you have a resource method like this:
    
    @Path("/myRootUri")
    public class MyRootResource {
        @Path("/sub")
        public MySubResource sub() {
            return new MySubResource();
        }
    }
    
    and a sub-resource locator class like below:
    
    public class MySubResource {
        @OPTIONS
        public Response options() {
            return Response.ok("...").build();
        }
    
        @GET
        public Response get() {
            return Response.ok("...").build();
        }
    }
    
    Invoking /myRootUri/sub with a GET request will return the
    expected 200 response, but invoking the same URI with an OPTIONS
    request will get an unexpected 404 response.
    

Problem conclusion

  • The fix for this APAR is to properly invoke the @OPTIONS methods
    on sub-resource locator classes.
    
    The fix for this APAR is currently targeted for inclusion in fix
    pack 17.0.0.2.  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

    PI80082

  • Reported component name

    WAS LIBERTY COR

  • Reported component ID

    5725L2900

  • Reported release

    CD0

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-04-17

  • Closed date

    2017-05-09

  • Last modified date

    2017-05-09

  • 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

    WAS LIBERTY COR

  • Fixed component ID

    5725L2900

Applicable component levels

  • RCD0 PSY

       UP

[{"Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU029","label":"Software"},"Product":{"code":"SSD28V","label":"WebSphere Application Server Liberty Core"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"CD0"}]

Document Information

Modified date:
17 June 2021