You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Sergey Beryozkin (JIRA)" <ji...@apache.org> on 2018/01/30 11:35:00 UTC

[jira] [Resolved] (CXF-7333) Custom resource comparator not called on sub-resource classes

     [ https://issues.apache.org/jira/browse/CXF-7333?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sergey Beryozkin resolved CXF-7333.
-----------------------------------
    Resolution: Cannot Reproduce
      Assignee: Sergey Beryozkin

Please reopen if it still does not work and you have a test available, thanks 

> Custom resource comparator not called on sub-resource classes
> -------------------------------------------------------------
>
>                 Key: CXF-7333
>                 URL: https://issues.apache.org/jira/browse/CXF-7333
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 3.1.11
>         Environment: Mac OS X 10.12.4
> Oracle Java Runtime 1.8.0_60-b27
> Tomcat 8.5.11
> debugged and executed via Eclipse Neon.3 Release (4.6.3) 
>            Reporter: Thomas Iguchi
>            Assignee: Sergey Beryozkin
>            Priority: Major
>
> I created a custom `ResourceComparator` according to the documentation: https://cxf.apache.org/docs/jax-rs-basics.html#JAX-RSBasics-Customselectionbetweenmultipleresourcesoroperations
> Its method for comparing resource classes gets called just fine, but the one for comparing two instances of OperationResourceInfo never gets called when I want to invoke a method of a sub-resource class such as the following example for illustration:
> ```
> @Path("subpath")
> public class SubResource {
>     @POST
>     public Response createSomething() {
>         // ... this is the method I want to compare, since there's a "competitor" with the same method signature in  an abstract base class
>     }
> }
> @Path("/rootpath")
> public class RootResource {
>     @Path("subpath")
>     public SubResource subResource() {
>          return new SubResource();
>     }
> }
> ```
> I stepped through the CXF code and could narrow down the problem to the following line of code:
> In line 48 of `org.apache.cxf.jaxrs.model.OperationResourceInfoComparator` the looked up custom comparator from the environment returns as `null`. It appears as if the message endpoint object for the sub-resource class contains incomplete information about the environment.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)