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;

Reply via email to