[ https://issues.apache.org/jira/browse/CXF-8097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17008109#comment-17008109 ]
Andriy Redko commented on CXF-8097: ----------------------------------- Thanks for checking it out, [~carsten.d]! I have done a minor refactorings to extract the base comparison logic into *OperationResourceInfoComparatorBase* so the example would look like: {noformat} public class QueryResourceInfoComparator extends OperationResourceInfoComparatorBase implements ResourceComparator { @Override public int compare(OperationResourceInfo oper1, OperationResourceInfo oper2, Message message) { // HTTP method final String httpMethod = HttpUtils.getProtocolHeader(message, Message.HTTP_REQUEST_METHOD, HttpMethod.POST, true); // Check if CXF can make a decision final int cxfResult = compare(oper1, oper2, httpMethod); if (cxfResult != 0) { return cxfResult; } ... } }{noformat} Unfortunately it is going to be available in the next release only (the documentation will be updated accordingly as well), hopefully in a few weeks timeframe. The in-place instantiation + delegation is more like a workaround to address the issue at hand. Thank you! > Equal candidates for handling the current request (HEAD / GET) > -------------------------------------------------------------- > > Key: CXF-8097 > URL: https://issues.apache.org/jira/browse/CXF-8097 > Project: CXF > Issue Type: Bug > Components: JAX-RS > Affects Versions: 3.3.2, 3.3.3, 3.3.4 > Reporter: Carsten D > Assignee: Andriy Redko > Priority: Major > Attachments: Screenshot 2019-12-17 at 08.44.29.png, cxf-8097-mcve.zip > > > I have just migrated a very outdated Spring backend to Spring 5 and with it > upgraded CXF to first 3.3.2 and just now 3.3.3. I have a REST service class > defining two different methods with the same path defined via > {{javax.ws.rs.Path}} annotation, differentiated by {{javax.ws.rs.HEAD}} and > {{javax.ws.rs.GET}} annotations. Both methods are annotated with > {{@Produces(MediaType.APPLICATION_OCTET_STREAM)}}. > When this method is called I get (redacted): > {{WARN [JAXRSUtils.compare:129] Both ServiceRestImpl#getFile and > ServiceRestImpl#getFileAsHeadRequest are equal candidates for handling the > current request which can lead to unpredictable results}} > The differentiation works: HEAD requests are handled by the {{@HEAD}} > annotated method and GET requests by the {{@GET}} annotated one (this has > always worked). Therefore the warning is false but will severely clutter > production log output, possibly affect performance. > Relevant dependencies: > * Spring framework 5.1.8 > * "org.apache.cxf", "cxf-rt-rs-service-description", "3.3.3" > * "javax.servlet", "javax.servlet-api", "4.0.1" > * "javax.ws.rs", "javax.ws.rs-api", "2.0.1" > I'd appreciate support. May be linked to: > * CXF-7670 > * CXF-6684 -- This message was sent by Atlassian Jira (v8.3.4#803005)