You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2009/12/22 17:29:10 UTC
svn commit: r893222 - in /wicket/trunk/wicket/src:
main/java/org/apache/wicket/util/convert/ConverterLocator.java
main/java/org/apache/wicket/util/lang/PropertyResolver.java
test/java/org/apache/wicket/util/lang/PropertyResolverTest.java
Author: jdonnerstag
Date: Tue Dec 22 16:29:09 2009
New Revision: 893222
URL: http://svn.apache.org/viewvc?rev=893222&view=rev
Log:
fixed MethodGetAndSet.setValue uses wrong source to determine which type to convert to when there's no setter
Issue: WICKET-2624
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/convert/ConverterLocator.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/convert/ConverterLocator.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/convert/ConverterLocator.java?rev=893222&r1=893221&r2=893222&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/convert/ConverterLocator.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/convert/ConverterLocator.java Tue Dec 22 16:29:09 2009
@@ -101,7 +101,7 @@
else
{
throw new ConversionException("Could not convert value: " + value +
- " to type: " + theType.getName() + "(Could not find compatible converter).").setSourceValue(value);
+ " to type: " + theType.getName() + ". Could not find compatible converter.").setSourceValue(value);
}
}
catch (Exception e)
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java?rev=893222&r1=893221&r2=893222&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java Tue Dec 22 16:29:09 2009
@@ -1094,6 +1094,9 @@
Class type = null;
if (setMethod != null)
{
+ // getMethod is always there and if the value will be set through a setMethod then
+ // the getMethod return type will be its type. Else we have to look at the
+ // parameters if the setter but getting the return type is quicker
type = getMethod.getReturnType();
}
else if (field != null)
@@ -1104,7 +1107,7 @@
Object converted = null;
if (type != null)
{
- converted = converter.convert(value, getMethod.getReturnType());
+ converted = converter.convert(value, type);
if (converted == null)
{
if (value != null)
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java?rev=893222&r1=893221&r2=893222&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java Tue Dec 22 16:29:09 2009
@@ -610,4 +610,24 @@
String value = (String)PropertyResolver.getValue("testValue", new InnerVectorPOJO());
assertEquals("vector", value);
}
+
+ /**
+ *
+ */
+ public void testDirectFieldSetWithDifferentTypeThanGetter()
+ {
+ final DirectFieldSetWithDifferentTypeThanGetter obj = new DirectFieldSetWithDifferentTypeThanGetter();
+ PropertyResolver.setValue("value", obj, 1, null);
+ assertEquals(1, obj.value);
+ }
+
+ private static class DirectFieldSetWithDifferentTypeThanGetter
+ {
+ private int value;
+
+ public String getValue()
+ {
+ return String.valueOf(value);
+ }
+ }
}