Author: lindner
Date: Wed Mar 21 15:37:36 2012
New Revision: 1303445

URL: http://svn.apache.org/viewvc?rev=1303445&view=rev
Log:
SHINDIG-1736 | Patch from Doug Davies | Fix for synthetic methods resulting in 
duplicates

Modified:
    
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/JsonUtil.java
    
shindig/trunk/java/common/src/test/java/org/apache/shindig/common/JsonUtilTest.java

Modified: 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/JsonUtil.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/JsonUtil.java?rev=1303445&r1=1303444&r2=1303445&view=diff
==============================================================================
--- 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/JsonUtil.java 
(original)
+++ 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/JsonUtil.java 
Wed Mar 21 15:37:36 2012
@@ -47,7 +47,7 @@ public final class JsonUtil {
           ImmutableMap.Builder<String,Method> methods = ImmutableMap.builder();
 
           for (Method method : clazz.getMethods()) {
-            if (method.getParameterTypes().length == 0) {
+            if (method.getParameterTypes().length == 0 && 
!method.isSynthetic()) {
               String name = getPropertyName(method);
               if (name != null) {
                 methods.put(name, method);

Modified: 
shindig/trunk/java/common/src/test/java/org/apache/shindig/common/JsonUtilTest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/JsonUtilTest.java?rev=1303445&r1=1303444&r2=1303445&view=diff
==============================================================================
--- 
shindig/trunk/java/common/src/test/java/org/apache/shindig/common/JsonUtilTest.java
 (original)
+++ 
shindig/trunk/java/common/src/test/java/org/apache/shindig/common/JsonUtilTest.java
 Wed Mar 21 15:37:36 2012
@@ -61,4 +61,22 @@ public class JsonUtilTest {
     assertNull(JsonUtil.getProperty(pojo, "class"));
     assertNull(JsonUtil.getProperty(pojo, "declaringClass"));
   }
+
+  private class DuplicateBase<type> {
+    public type getValue() {
+      return null;
+    }
+  }
+
+  private class Duplicate extends DuplicateBase<String> {
+    public String getValue() {
+      return "duplicate";
+    }
+  }
+
+  @Test
+  public void duplicateMethodPojo() throws Exception {
+    Duplicate pojo = new Duplicate();
+    assertEquals("duplicate", JsonUtil.getProperty(pojo, "value"));
+  }
 }


Reply via email to