Author: dkulp
Date: Fri Jul 24 20:59:07 2009
New Revision: 797651

URL: http://svn.apache.org/viewvc?rev=797651&view=rev
Log:
Check parents for the Provider interface as well

Modified:
    
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsImplementorInfo.java

Modified: 
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsImplementorInfo.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsImplementorInfo.java?rev=797651&r1=797650&r2=797651&view=diff
==============================================================================
--- 
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsImplementorInfo.java
 (original)
+++ 
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsImplementorInfo.java
 Fri Jul 24 20:59:07 2009
@@ -309,13 +309,17 @@
 
     public Class<?> getProviderParameterType() {
         // The Provider Implementor inherits out of Provider<T>
-        Type intfTypes[] = implementorClass.getGenericInterfaces();
-        for (Type t : intfTypes) {
-            Class<?> clazz = JAXBEncoderDecoder.getClassFromType(t);
-            if (Provider.class == clazz) {
-                Type paramTypes[] = 
((ParameterizedType)t).getActualTypeArguments();
-                return JAXBEncoderDecoder.getClassFromType(paramTypes[0]);
+        Class<?> c = implementorClass;
+        while (c != null) {
+            Type intfTypes[] = c.getGenericInterfaces();
+            for (Type t : intfTypes) {
+                Class<?> clazz = JAXBEncoderDecoder.getClassFromType(t);
+                if (Provider.class == clazz) {
+                    Type paramTypes[] = 
((ParameterizedType)t).getActualTypeArguments();
+                    return JAXBEncoderDecoder.getClassFromType(paramTypes[0]);
+                }
             }
+            c = c.getSuperclass();
         }
         return null;
     }


Reply via email to