You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jc...@apache.org on 2007/12/19 10:49:39 UTC
svn commit: r605492 - in /wicket/trunk/jdk-1.4/wicket/src:
main/java/org/apache/wicket/util/lang/ test/java/org/apache/wicket/util/lang/
Author: jcompagner
Date: Wed Dec 19 01:49:35 2007
New Revision: 605492
URL: http://svn.apache.org/viewvc?rev=605492&view=rev
Log:
fix for maurice, only visible in java5 and covariant return types. Then the setter can sometimes not be found if the getter has a different return type then the super getter method.
Modified:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/lang/Person.java
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/lang/Person2.java
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java
Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java?rev=605492&r1=605491&r2=605492&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java Wed Dec 19 01:49:35 2007
@@ -1123,6 +1123,25 @@
}
return method;
}
+ catch (NoSuchMethodException e)
+ {
+ Method[] methods = clz.getMethods();
+ for (int i = 0; i < methods.length; i++)
+ {
+ if (methods[i].getName().equals(name))
+ {
+ Class[] parameterTypes = methods[i].getParameterTypes();
+ if (parameterTypes.length == 1)
+ {
+ if (parameterTypes[0].isAssignableFrom(getMethod.getReturnType()))
+ {
+ return methods[i];
+ }
+ }
+ }
+ }
+ log.debug("Cannot find setter corresponding to " + getMethod, e);
+ }
catch (Exception e)
{
log.debug("Cannot find setter corresponding to " + getMethod, e);
Modified: wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/lang/Person.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/lang/Person.java?rev=605492&r1=605491&r2=605492&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/lang/Person.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/lang/Person.java Wed Dec 19 01:49:35 2007
@@ -26,7 +26,7 @@
*/
public class Person
{
- private String name;
+ private CharSequence name;
private Address address;
@@ -48,15 +48,15 @@
/**
* @return The name
*/
- public String getName()
+ public CharSequence getName()
{
- return this.name;
+ return name;
}
/**
* @param name
*/
- public void setName(String name)
+ public void setName(CharSequence name)
{
this.name = name;
}
@@ -66,7 +66,7 @@
*/
public Address getAddress()
{
- return this.address;
+ return address;
}
/**
@@ -82,7 +82,7 @@
*/
public List getAddressList()
{
- return this.addressList;
+ return addressList;
}
/**
@@ -124,7 +124,7 @@
*/
public Map getAddressMap()
{
- return this.addressMap;
+ return addressMap;
}
/**
@@ -140,7 +140,7 @@
*/
public Country getCountry()
{
- return this.country;
+ return country;
}
/**
@@ -156,7 +156,7 @@
*/
public Address[] getAddressArray()
{
- return this.addressArray;
+ return addressArray;
}
/**
Modified: wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/lang/Person2.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/lang/Person2.java?rev=605492&r1=605491&r2=605492&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/lang/Person2.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/lang/Person2.java Wed Dec 19 01:49:35 2007
@@ -22,4 +22,9 @@
public class Person2 extends Person
{
+// TODO ENABLE THIS IN WICKET 1.4 (Java5)
+// public String getName()
+// {
+// return (String)super.getName();
+// }
}
Modified: wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java?rev=605492&r1=605491&r2=605492&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java Wed Dec 19 01:49:35 2007
@@ -221,8 +221,7 @@
assertNotNull(hm.get("address.test"));
PropertyResolver.setValue("addressMap[address.test].street", person, "wicket-street",
CONVERTER);
- String street = (String)PropertyResolver
- .getValue("addressMap[address.test].street", person);
+ String street = (String)PropertyResolver.getValue("addressMap[address.test].street", person);
assertEquals(street, "wicket-street");
}
@@ -320,7 +319,7 @@
/**
* @throws Exception
*/
- public void testArraytSizeLookup() throws Exception
+ public void testArraySizeLookup() throws Exception
{
person.setAddressArray(new Address[] { new Address(), new Address() });
Object size = PropertyResolver.getValue("addressArray.length", person);
@@ -479,6 +478,24 @@
person.setAddressArray(new Address[] { new Address(), new Address() });
method = PropertyResolver.getPropertySetter("addressArray[0].number", person);
assertEquals(method.getName(), "setNumber");
+ }
+
+ /**
+ * @throws Exception
+ */
+ public void testOverriddenGetter() throws Exception
+ {
+ Person2 person = new Person2();
+ person.setName("foo");
+
+ String name = (String)PropertyResolver.getValue("name", person);
+ assertEquals("foo", name);
+
+ PropertyResolver.setValue("name", person, "bar", CONVERTER);
+
+ name = (String)PropertyResolver.getValue("name", person);
+ assertEquals("bar", name);
+
}
/**