Repository: cxf
Updated Branches:
  refs/heads/3.1.x-fixes e34c320e3 -> a7287694f


[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/a7287694
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/a7287694
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/a7287694

Branch: refs/heads/3.1.x-fixes
Commit: a7287694f81d87e299b331d6594740614331bfe1
Parents: e34c320
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:42:28 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/a7287694/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/a7287694/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 8354f13..db10701 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
@@ -560,8 +560,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;
                 }
             }
@@ -569,9 +570,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