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"));
+ }
}