Repository: cxf
Updated Branches:
  refs/heads/master f8439a921 -> bf5dee134


[CXF-7228] Using ClassHelper to get the real provider info class in some cases


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/bf5dee13
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/bf5dee13
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/bf5dee13

Branch: refs/heads/master
Commit: bf5dee1340b680f92f02d63d4801ed40af540dc5
Parents: f8439a9
Author: Sergey Beryozkin <sberyoz...@gmail.com>
Authored: Thu Jan 26 16:41:31 2017 +0000
Committer: Sergey Beryozkin <sberyoz...@gmail.com>
Committed: Thu Jan 26 16:41:31 2017 +0000

----------------------------------------------------------------------
 .../apache/cxf/jaxrs/provider/ProviderFactory.java    |  3 ++-
 .../cxf/jaxrs/provider/ServerProviderFactory.java     | 14 +++++++++-----
 2 files changed, 11 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/bf5dee13/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
----------------------------------------------------------------------
diff --git 
a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
 
b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
index fd850de..a038f84 100644
--- 
a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
+++ 
b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
@@ -1224,7 +1224,8 @@ public abstract class ProviderFactory {
             names = ((FilterProviderInfo<?>)p).getNameBinding();
         }
         if (names == null) {
-            names = 
AnnotationUtils.getNameBindings(p.getProvider().getClass().getAnnotations());
+            Class<?> pClass = ClassHelper.getRealClass(p.getBus(), 
p.getProvider());
+            names = AnnotationUtils.getNameBindings(pClass.getAnnotations());
         }
         if (names.isEmpty()) {
             names = Collections.singleton(DEFAULT_FILTER_NAME_BINDING);

http://git-wip-us.apache.org/repos/asf/cxf/blob/bf5dee13/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java
----------------------------------------------------------------------
diff --git 
a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java
 
b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java
index 13cae5a..9c8ef9f 100644
--- 
a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java
+++ 
b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java
@@ -563,8 +563,9 @@ public final class ServerProviderFactory extends 
ProviderFactory {
         }
         private boolean isRegistered(Collection<?> list, Class<?> cls) {
             Collection<ProviderInfo<?>> list2 = CastUtils.cast(list);
-            for (ProviderInfo<?> pi : list2) {
-                if (cls.isAssignableFrom(pi.getProvider().getClass())) {
+            for (ProviderInfo<?> p : list2) {
+                Class<?> pClass = ClassHelper.getRealClass(p.getBus(), 
p.getProvider());
+                if (cls.isAssignableFrom(pClass)) {
                     return true;
                 }
             }
@@ -572,9 +573,12 @@ public final class ServerProviderFactory extends 
ProviderFactory {
         }
         private Integer getPriority(Collection<?> list, Class<?> cls, Class<?> 
filterClass) {
             Collection<ProviderInfo<?>> list2 = CastUtils.cast(list);
-            for (ProviderInfo<?> pi : list2) {
-                if (pi instanceof FilterProviderInfo && 
pi.getProvider().getClass().isAssignableFrom(cls)) {
-                    return 
((FilterProviderInfo<?>)pi).getPriority(filterClass);
+            for (ProviderInfo<?> p : list2) {
+                if (p instanceof FilterProviderInfo) {
+                    Class<?> pClass = ClassHelper.getRealClass(p.getBus(), 
p.getProvider());
+                    if (cls.isAssignableFrom(pClass)) {
+                        return 
((FilterProviderInfo<?>)p).getPriority(filterClass);
+                    }
                 }
             }
             return Priorities.USER;

Reply via email to