[ https://issues.apache.org/jira/browse/CXF-6412?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14550406#comment-14550406 ]
Sergey Beryozkin commented on CXF-6412: --------------------------------------- This is the current code: {code:java} private static class MessageBodyReaderComparator implements Comparator<ProviderInfo<MessageBodyReader<?>>> { public int compare(ProviderInfo<MessageBodyReader<?>> p1, ProviderInfo<MessageBodyReader<?>> p2) { MessageBodyReader<?> e1 = p1.getProvider(); MessageBodyReader<?> e2 = p2.getProvider(); List<MediaType> types1 = JAXRSUtils.getProviderConsumeTypes(e1); types1 = JAXRSUtils.sortMediaTypes(types1, null); List<MediaType> types2 = JAXRSUtils.getProviderConsumeTypes(e2); types2 = JAXRSUtils.sortMediaTypes(types2, null); int result = JAXRSUtils.compareSortedMediaTypes(types1, types2, null); if (result != 0) { return result; } return compareClasses(e1, e2); } } {code} > MessageBodyReader and MessageBodyWritter should follow different sorting rule > ----------------------------------------------------------------------------- > > Key: CXF-6412 > URL: https://issues.apache.org/jira/browse/CXF-6412 > Project: CXF > Issue Type: Bug > Components: JAX-RS > Affects Versions: 3.0.4, 2.7.15, 3.0.5 > Reporter: iris ding > > According to JSR-339 spec, section 4.2.1 and 4.2.2, we need follow different > sorting rule for MessageBodyReader and MessageBodyWritter: > For MessageBodyReader, it is: > <h3> 2. Identify the Java type of the parameter whose value will be mapped > from the entity body. Section 3.7</h3> > describes how the Java method is chosen. > <h3>3. Select the set of MessageBodyReader classes that support the media > type of the request, see Section 4.2.3. </h3> > For MessageBodyWritter, it is: > <h3>4. Sort the selected MessageBodyWriter providers with a primary key of > generic type where providers whose generic type is the nearest superclass of > the object class are sorted first and a secondary key of media type (see > Section 4.2.3).</h3> > But in our implementation, we use the same sorting rule: > 1. compareClasses() ->compareSortedMediaTypes() > This caused an issue in https://issues.apache.org/jira/browse/CXF-6380. > Actually we need to adjust the MessageBodyReader sorting method. -- This message was sent by Atlassian JIRA (v6.3.4#6332)