Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-5360

Resource classes are selected incorrectly

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Won't Fix
    • 2.7.7
    • 2.7.7
    • JAX-RS
    • None
    • Unknown

    Description

      The problem: the resource is selected incorrectly when multiple classes can 'visually' handle request. For example if we have two classes

      @Path("/") class Foo {
        @GET @Path("bar") public String bar() { return "bar"; }
      }
      @Path("/") class Real {
        @GET @Path("hello") public String hello() { return "hello"; }
      }

      and their instances are registered in this order (e.g. in jaxrs:serviceBeans), when I GET the "/hello" path, the Foo will be selected, while it is not even able to handle this request.
      The starting point to investigate the problem is org.apache.cxf.jaxrs.utils.JAXRSUtils.selectResourceClass(List<ClassResourceInfo>, String, MultivaluedMap<String, String>, Message), where 'candidateList' variable is filled incorrectly. Unfortunately I'm not so familiar with CXF code to provide a patch, but resource class must be selected basing on full class description (all methods and annotations must be taken into account).

      Why this is a problem: except obvious reason (unexpected behavior), this bug disallows to make REST service modular. For example we may want to provide different feature sets for different servers. Right now it is not possible to implement.

      Attachments

        Activity

          People

            sergey_beryozkin Sergey Beryozkin
            buzzeri Ivan Bondarenko
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: