You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2015/12/03 16:40:28 UTC

cxf git commit: [CXF-6701] Checking field annotations on super classes

Repository: cxf
Updated Branches:
  refs/heads/master 11dce0b37 -> 8ad8ea6ed


[CXF-6701] Checking field annotations on super classes


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

Branch: refs/heads/master
Commit: 8ad8ea6ed5a2b722a306fb44b60e71aecc0aec14
Parents: 11dce0b
Author: Sergey Beryozkin <sb...@gmail.com>
Authored: Thu Dec 3 15:40:13 2015 +0000
Committer: Sergey Beryozkin <sb...@gmail.com>
Committed: Thu Dec 3 15:40:13 2015 +0000

----------------------------------------------------------------------
 .../cxf/jaxrs/client/ClientProxyImpl.java       | 13 ++++++++++-
 .../org/apache/cxf/systest/jaxrs/BookStore.java | 24 ++++++++++++--------
 2 files changed, 26 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/8ad8ea6e/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
----------------------------------------------------------------------
diff --git a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
index 37b798f..4f25895 100644
--- a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
+++ b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
@@ -534,7 +534,7 @@ public class ClientProxyImpl extends AbstractClient implements
                         }
                     } else {
                         String fieldName = StringUtils.uncapitalize(propertyName);
-                        Field f = ReflectionUtil.getDeclaredField(bean.getClass(), fieldName);
+                        Field f = getDeclaredField(bean.getClass(), fieldName);
                         if (f == null) {
                             continue;
                         }
@@ -560,6 +560,17 @@ public class ClientProxyImpl extends AbstractClient implements
         return values;
     }
     
+    private static Field getDeclaredField(Class<?> cls, String fieldName) {
+        if (cls == null || cls == Object.class) {
+            return null;
+        }
+        Field f = ReflectionUtil.getDeclaredField(cls, fieldName);
+        if (f != null) {
+            return f;
+        }
+        return getDeclaredField(cls.getSuperclass(), fieldName);
+    }
+    
     private void handleMatrixes(Method m,
                                 Object[] params,
                                 MultivaluedMap<ParameterType, Parameter> map,

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ad8ea6e/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java
----------------------------------------------------------------------
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java
index a0d506b..4192ee1 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java
@@ -1775,10 +1775,22 @@ public class BookStore {
                                     handler);
     }
     
-    public static class BookBean {
-        private long id;
+    public abstract static class AbstractBookBean {
         @QueryParam("id_2")
         private long id2;
+        public long getId2() {
+            return id2;
+        }
+
+        public void setId2(long id2) {
+            this.id2 = id2;
+        }
+    }
+    
+    public static class BookBean extends AbstractBookBean {
+        private long id;
+        
+        
         private long id3;
         private BookBeanNested nested;
 
@@ -1791,14 +1803,6 @@ public class BookStore {
             this.id = id;
         }
         
-        public long getId2() {
-            return id2;
-        }
-
-        public void setId2(long id2) {
-            this.id2 = id2;
-        }
-        
         @Context
         public void setUriInfo(UriInfo ui) {
             String id3Value = ui.getQueryParameters().getFirst("id3");