Repository: tomee Updated Branches: refs/heads/master 0d95e3d23 -> ffe6bb8b8
writer/reader providers should get the same sorting more or less (adding wildcard handling) Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/ffe6bb8b Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/ffe6bb8b Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/ffe6bb8b Branch: refs/heads/master Commit: ffe6bb8b81ceef0afd3f682c648947313b94887c Parents: 0d95e3d Author: Romain Manni-Bucau <rmann...@starbucks.com> Authored: Mon Aug 10 20:18:42 2015 -0700 Committer: Romain Manni-Bucau <rmann...@starbucks.com> Committed: Mon Aug 10 20:18:42 2015 -0700 ---------------------------------------------------------------------- .../apache/openejb/server/cxf/rs/CxfRsHttpListener.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/ffe6bb8b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java ---------------------------------------------------------------------- diff --git a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java index d335c2a..5ba7faf 100644 --- a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java +++ b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java @@ -1036,13 +1036,19 @@ public class CxfRsHttpListener implements RsHttpListener { if (result != 0) { return result; } - } - if (MessageBodyReader.class.isInstance(o1.getProvider())) { + } else if (MessageBodyReader.class.isInstance(o1.getProvider())) { // else is not super good but using both is not sa well so let it be for now final List<MediaType> types1 = JAXRSUtils.sortMediaTypes(JAXRSUtils.getProviderConsumeTypes(MessageBodyReader.class.cast(o1.getProvider())), null); final List<MediaType> types2 = JAXRSUtils.sortMediaTypes(JAXRSUtils.getProviderConsumeTypes(MessageBodyReader.class.cast(o2.getProvider())), null); + if (types1.contains(MediaType.WILDCARD_TYPE) && !types2.contains(MediaType.WILDCARD_TYPE)) { + return 1; + } + if (types2.contains(MediaType.WILDCARD_TYPE) && !types1.contains(MediaType.WILDCARD_TYPE)) { + return -1; + } + result = JAXRSUtils.compareSortedMediaTypes(types1, types2, JAXRSUtils.MEDIA_TYPE_QS_PARAM); if (result != 0) { return result;