You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pe...@apache.org on 2011/01/27 12:30:05 UTC

svn commit: r1064091 - in /wicket/branches/wicket-1.4.x/wicket/src: main/java/org/apache/wicket/util/lang/PropertyResolver.java test/java/org/apache/wicket/util/lang/PropertyResolverTest.java

Author: pedro
Date: Thu Jan 27 11:30:05 2011
New Revision: 1064091

URL: http://svn.apache.org/viewvc?rev=1064091&view=rev
Log:
merging message improvement on PropertyResolver from trunk
Issue: WICKET-1802

Modified:
    wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java   (contents, props changed)
    wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java   (contents, props changed)

Modified: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java
URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java?rev=1064091&r1=1064090&r2=1064091&view=diff
==============================================================================
--- wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java (original)
+++ wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java Thu Jan 27 11:30:05 2011
@@ -71,6 +71,10 @@ public final class PropertyResolver
 	/** Log. */
 	private static final Logger log = LoggerFactory.getLogger(PropertyResolver.class);
 
+	private static final String GET = "get";
+	private static final String IS = "is";
+	private static final String SET = "set";
+
 	/**
 	 * Looks up the value from the object with the given expression. If the expression, the object
 	 * itself or one property evaluates to null then a null will be returned.
@@ -93,8 +97,8 @@ public final class PropertyResolver
 		{
 			return null;
 		}
-		return getter.getValue();
 
+		return getter.getValue();
 	}
 
 	/**
@@ -113,8 +117,8 @@ public final class PropertyResolver
 	 * @param converter
 	 *            The converter to convert the value if needed to the right type.
 	 */
-	public final static void setValue(final String expression, final Object object, Object value,
-		PropertyResolverConverter converter)
+	public final static void setValue(final String expression, final Object object,
+		final Object value, final PropertyResolverConverter converter)
 	{
 		if (expression == null || expression.equals(""))
 		{
@@ -143,7 +147,7 @@ public final class PropertyResolver
 	 * @param object
 	 * @return class of the target property object
 	 */
-	public final static Class<?> getPropertyClass(String expression, Object object)
+	public final static Class<?> getPropertyClass(final String expression, final Object object)
 	{
 		ObjectAndGetSetter setter = getObjectAndGetSetter(expression, object, RESOLVE_CLASS);
 		if (setter == null)
@@ -160,7 +164,8 @@ public final class PropertyResolver
 	 * @param clz
 	 * @return class of the target Class property expression
 	 */
-	public static <T> Class<T> getPropertyClass(String expression, Class<?> clz)
+	@SuppressWarnings("unchecked")
+	public static <T> Class<T> getPropertyClass(final String expression, final Class<?> clz)
 	{
 		ObjectAndGetSetter setter = getObjectAndGetSetter(expression, null, RESOLVE_CLASS, clz);
 		if (setter == null)
@@ -177,7 +182,7 @@ public final class PropertyResolver
 	 * @return Field for the property expression or null if such field doesn't exist (only getters
 	 *         and setters)
 	 */
-	public final static Field getPropertyField(String expression, Object object)
+	public final static Field getPropertyField(final String expression, final Object object)
 	{
 		ObjectAndGetSetter setter = getObjectAndGetSetter(expression, object, RESOLVE_CLASS);
 		if (setter == null)
@@ -194,7 +199,7 @@ public final class PropertyResolver
 	 * @return Getter method for the property expression or null if such getter doesn't exist (only
 	 *         field)
 	 */
-	public final static Method getPropertyGetter(String expression, Object object)
+	public final static Method getPropertyGetter(final String expression, final Object object)
 	{
 		ObjectAndGetSetter setter = getObjectAndGetSetter(expression, object, RESOLVE_CLASS);
 		if (setter == null)
@@ -211,7 +216,7 @@ public final class PropertyResolver
 	 * @return Setter method for the property expression or null if such setter doesn't exist (only
 	 *         field)
 	 */
-	public final static Method getPropertySetter(String expression, Object object)
+	public final static Method getPropertySetter(final String expression, final Object object)
 	{
 		ObjectAndGetSetter setter = getObjectAndGetSetter(expression, object, RESOLVE_CLASS);
 		if (setter == null)
@@ -237,7 +242,6 @@ public final class PropertyResolver
 		return getObjectAndGetSetter(expression, object, tryToCreateNull, object.getClass());
 	}
 
-
 	/**
 	 * Receives the class parameter also, since this method can resolve the type for some
 	 * expression, only knowing the target class
@@ -249,10 +253,9 @@ public final class PropertyResolver
 	 * @return {@link ObjectAndGetSetter}
 	 */
 	private static ObjectAndGetSetter getObjectAndGetSetter(final String expression,
-		final Object object, int tryToCreateNull, Class<?> clz)
+		final Object object, final int tryToCreateNull, Class<?> clz)
 	{
-		final String expressionBracketsSeperated = Strings.replaceAll(expression, "[", ".[")
-			.toString();
+		String expressionBracketsSeperated = Strings.replaceAll(expression, "[", ".[").toString();
 		int index = getNextDotIndex(expressionBracketsSeperated, 0);
 		int lastIndex = 0;
 		Object value = object;
@@ -273,7 +276,6 @@ public final class PropertyResolver
 			}
 			catch (WicketRuntimeException ex)
 			{
-
 				// expression by it self can't be found. try to find a
 				// setPropertyByIndex(int,value) method
 				index = getNextDotIndex(expressionBracketsSeperated, index + 1);
@@ -331,8 +333,13 @@ public final class PropertyResolver
 		return new ObjectAndGetSetter(getAndSetter, value);
 	}
 
-
-	private static int getNextDotIndex(String expression, int start)
+	/**
+	 * 
+	 * @param expression
+	 * @param start
+	 * @return next dot index
+	 */
+	private static int getNextDotIndex(final String expression, final int start)
 	{
 		boolean insideBracket = false;
 		for (int i = start; i < expression.length(); i++)
@@ -354,7 +361,7 @@ public final class PropertyResolver
 		return -1;
 	}
 
-	private final static IGetAndSet getGetAndSetter(String exp, Class<?> clz)
+	private final static IGetAndSet getGetAndSetter(String exp, final Class<?> clz)
 	{
 		IClassCache classesToGetAndSetters = getClassesToGetAndSetters();
 		Map<String, IGetAndSet> getAndSetters = classesToGetAndSetters.get(clz);
@@ -441,8 +448,8 @@ public final class PropertyResolver
 						}
 						else
 						{
-							throw new WicketRuntimeException("can't parse the exp " + exp +
-								" as an index for an array lookup");
+							throw new WicketRuntimeException("Can't parse the expression '" + exp +
+								"' as an index for an array lookup");
 						}
 					}
 				}
@@ -461,21 +468,18 @@ public final class PropertyResolver
 								String propertyIndex = exp.substring(index + 1);
 								try
 								{
-
 									int parsedIndex = Integer.parseInt(propertyIndex);
-									// if so then it could be a
-									// getPropertyIndex(int)
+									// if so then it could be a getPropertyIndex(int)
 									// and setPropertyIndex(int, object)
 									String name = Character.toUpperCase(propertyName.charAt(0)) +
 										propertyName.substring(1);
-									method = clz.getMethod("get" + name, new Class[] { int.class });
+									method = clz.getMethod(GET + name, new Class[] { int.class });
 									getAndSetter = new ArrayPropertyGetSet(method, parsedIndex);
-
 								}
 								catch (Exception e)
 								{
 									throw new WicketRuntimeException(
-										"no get method defined for class: " + clz +
+										"No get method defined for class: " + clz +
 											" expression: " + propertyName);
 								}
 							}
@@ -519,7 +523,7 @@ public final class PropertyResolver
 	 * @param expression
 	 * @return introspected field
 	 */
-	private static Field findField(Class<?> clz, String expression)
+	private static Field findField(final Class<?> clz, final String expression)
 	{
 		Field field = null;
 		try
@@ -552,13 +556,13 @@ public final class PropertyResolver
 	 * @param expression
 	 * @return The method for the expression null if not found
 	 */
-	private final static Method findGetter(Class<?> clz, String expression)
+	private final static Method findGetter(final Class<?> clz, final String expression)
 	{
 		String name = Character.toUpperCase(expression.charAt(0)) + expression.substring(1);
 		Method method = null;
 		try
 		{
-			method = clz.getMethod("get" + name, (Class[])null);
+			method = clz.getMethod(GET + name, (Class[])null);
 		}
 		catch (Exception e)
 		{
@@ -567,7 +571,7 @@ public final class PropertyResolver
 		{
 			try
 			{
-				method = clz.getMethod("is" + name, (Class[])null);
+				method = clz.getMethod(IS + name, (Class[])null);
 			}
 			catch (Exception e)
 			{
@@ -577,7 +581,7 @@ public final class PropertyResolver
 		return method;
 	}
 
-	private final static Method findMethod(Class<?> clz, String expression)
+	private final static Method findMethod(final Class<?> clz, String expression)
 	{
 		if (expression.endsWith("()"))
 		{
@@ -608,7 +612,6 @@ public final class PropertyResolver
 	 */
 	private final static class ObjectAndGetSetter
 	{
-
 		private final IGetAndSet getAndSetter;
 		private final Object value;
 
@@ -670,10 +673,8 @@ public final class PropertyResolver
 		{
 			return getAndSetter.getSetter();
 		}
-
 	}
 
-
 	/**
 	 * @author jcompagner
 	 */
@@ -727,7 +728,7 @@ public final class PropertyResolver
 	private static abstract class AbstractGetAndSet implements IGetAndSet
 	{
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getField()
+		 * {@inheritDoc}
 		 */
 		public Field getField()
 		{
@@ -735,7 +736,7 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getGetter()
+		 * {@inheritDoc}
 		 */
 		public Method getGetter()
 		{
@@ -743,7 +744,7 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getSetter()
+		 * {@inheritDoc}
 		 */
 		public Method getSetter()
 		{
@@ -751,7 +752,7 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getTargetClass()
+		 * {@inheritDoc}
 		 */
 		public Class<?> getTargetClass()
 		{
@@ -761,7 +762,7 @@ public final class PropertyResolver
 
 	private static final class MapGetSet extends AbstractGetAndSet
 	{
-		final private String key;
+		private final String key;
 
 		MapGetSet(String key)
 		{
@@ -769,27 +770,27 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getValue(java.lang.Object)
+		 * {@inheritDoc}
 		 */
-		public Object getValue(Object object)
+		public Object getValue(final Object object)
 		{
 			return ((Map<?, ?>)object).get(key);
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#setValue(Object, Object,
-		 *      PropertyResolverConverter)
+		 * {@inheritDoc}
 		 */
 		@SuppressWarnings("unchecked")
-		public void setValue(Object object, Object value, PropertyResolverConverter converter)
+		public void setValue(final Object object, final Object value,
+			final PropertyResolverConverter converter)
 		{
 			((Map<String, Object>)object).put(key, value);
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#newValue(Object)
+		 * {@inheritDoc}
 		 */
-		public Object newValue(Object object)
+		public Object newValue(final Object object)
 		{
 			// Map can't make a newValue or should it look what is more in the
 			// map and try to make one of the class if finds?
@@ -807,21 +808,23 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getValue(java.lang.Object)
+		 * {@inheritDoc}
 		 */
-		public Object getValue(Object object)
+		public Object getValue(final Object object)
 		{
 			if (((List<?>)object).size() <= index)
+			{
 				return null;
+			}
 			return ((List<?>)object).get(index);
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#setValue(Object, Object,
-		 *      PropertyResolverConverter)
+		 * {@inheritDoc}
 		 */
 		@SuppressWarnings("unchecked")
-		public void setValue(Object object, Object value, PropertyResolverConverter converter)
+		public void setValue(final Object object, final Object value,
+			final PropertyResolverConverter converter)
 		{
 			List<Object> lst = (List<Object>)object;
 
@@ -844,7 +847,7 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#newValue(Object)
+		 * {@inheritDoc}
 		 */
 		public Object newValue(Object object)
 		{
@@ -866,7 +869,7 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getValue(java.lang.Object)
+		 * {@inheritDoc}
 		 */
 		public Object getValue(Object object)
 		{
@@ -878,8 +881,7 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#setValue(Object, Object,
-		 *      PropertyResolverConverter)
+		 * {@inheritDoc}
 		 */
 		public void setValue(Object object, Object value, PropertyResolverConverter converter)
 		{
@@ -888,7 +890,7 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#newValue(java.lang.Object)
+		 * {@inheritDoc}
 		 */
 		public Object newValue(Object object)
 		{
@@ -907,7 +909,7 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getTargetClass()
+		 * {@inheritDoc}
 		 */
 		@Override
 		public Class<?> getTargetClass()
@@ -923,32 +925,33 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getValue(java.lang.Object)
+		 * {@inheritDoc}
 		 */
-		public Object getValue(Object object)
+		public Object getValue(final Object object)
 		{
 			return new Integer(Array.getLength(object));
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#setValue(Object, Object,
-		 *      PropertyResolverConverter)
+		 * {@inheritDoc}
 		 */
-		public void setValue(Object object, Object value, PropertyResolverConverter converter)
+		public void setValue(final Object object, final Object value,
+			final PropertyResolverConverter converter)
 		{
-			throw new WicketRuntimeException("Cant set the length on an array");
+			throw new WicketRuntimeException("You can't set the length on an array:" + object);
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#newValue(java.lang.Object)
+		 * {@inheritDoc}
 		 */
-		public Object newValue(Object object)
+		public Object newValue(final Object object)
 		{
-			throw new WicketRuntimeException("Cant get a new value from a length of an array");
+			throw new WicketRuntimeException("Can't get a new value from a length of an array: " +
+				object);
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getTargetClass()
+		 * {@inheritDoc}
 		 */
 		@Override
 		public Class<?> getTargetClass()
@@ -963,30 +966,30 @@ public final class PropertyResolver
 		final private Method getMethod;
 		private Method setMethod;
 
-		ArrayPropertyGetSet(Method method, int index)
+		ArrayPropertyGetSet(final Method method, final int index)
 		{
 			this.index = new Integer(index);
 			getMethod = method;
 			getMethod.setAccessible(true);
 		}
 
-		private final static Method findSetter(Method getMethod, Class<?> clz)
+		private final static Method findSetter(final Method getMethod, final Class<?> clz)
 		{
 			String name = getMethod.getName();
-			name = "set" + name.substring(3);
+			name = SET + name.substring(3);
 			try
 			{
 				return clz.getMethod(name, new Class[] { int.class, getMethod.getReturnType() });
 			}
 			catch (Exception e)
 			{
-				log.debug("Cannot find setter method corresponding to " + getMethod);
+				log.debug("Can't find setter method corresponding to " + getMethod);
 			}
 			return null;
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getValue(java.lang.Object)
+		 * {@inheritDoc}
 		 */
 		public Object getValue(Object object)
 		{
@@ -1009,10 +1012,10 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#setValue(Object, Object,
-		 *      PropertyResolverConverter)
+		 * {@inheritDoc}
 		 */
-		public void setValue(Object object, Object value, PropertyResolverConverter converter)
+		public void setValue(final Object object, final Object value,
+			final PropertyResolverConverter converter)
 		{
 			if (setMethod == null)
 			{
@@ -1044,13 +1047,13 @@ public final class PropertyResolver
 			}
 			else
 			{
-				throw new WicketRuntimeException("no set method defined for value: " + value +
+				throw new WicketRuntimeException("No set method defined for value: " + value +
 					" on object: " + object);
 			}
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getTargetClass()
+		 * {@inheritDoc}
 		 */
 		@Override
 		public Class<?> getTargetClass()
@@ -1059,7 +1062,7 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#newValue(java.lang.Object)
+		 * {@inheritDoc}
 		 */
 		public Object newValue(Object object)
 		{
@@ -1104,7 +1107,7 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getValue(java.lang.Object)
+		 * {@inheritDoc}
 		 */
 		public final Object getValue(final Object object)
 		{
@@ -1155,15 +1158,15 @@ public final class PropertyResolver
 				{
 					if (value != null)
 					{
-						throw new ConversionException("Can't convert value: " + value +
-							" to class: " + getMethod.getReturnType() + " for setting it on " +
-							object);
+						throw new ConversionException("Method [" + getMethod +
+							"]. Can't convert value: " + value + " to class: " +
+							getMethod.getReturnType() + " for setting it on " + object);
 					}
 					else if (getMethod.getReturnType().isPrimitive())
 					{
-						throw new ConversionException(
-							"Can't convert null value to a primitive class: " +
-								getMethod.getReturnType() + " for setting it on " + object);
+						throw new ConversionException("Method [" + getMethod +
+							"]. Can't convert null value to a primitive class: " +
+							getMethod.getReturnType() + " for setting it on " + object);
 					}
 				}
 			}
@@ -1208,13 +1211,13 @@ public final class PropertyResolver
 		private final static Method findSetter(Method getMethod, Class<?> clz)
 		{
 			String name = getMethod.getName();
-			if (name.startsWith("get"))
+			if (name.startsWith(GET))
 			{
-				name = "set" + name.substring(3);
+				name = SET + name.substring(3);
 			}
 			else
 			{
-				name = "set" + name.substring(2);
+				name = SET + name.substring(2);
 			}
 			try
 			{
@@ -1252,7 +1255,7 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#newValue(java.lang.Object)
+		 * {@inheritDoc}
 		 */
 		public Object newValue(Object object)
 		{
@@ -1277,7 +1280,7 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getTargetClass()
+		 * {@inheritDoc}
 		 */
 		@Override
 		public Class<?> getTargetClass()
@@ -1286,7 +1289,7 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.AbstractGetAndSet#getGetter()
+		 * {@inheritDoc}
 		 */
 		@Override
 		public Method getGetter()
@@ -1295,7 +1298,7 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.AbstractGetAndSet#getSetter()
+		 * {@inheritDoc}
 		 */
 		@Override
 		public Method getSetter()
@@ -1304,7 +1307,7 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.AbstractGetAndSet#getField()
+		 * {@inheritDoc}
 		 */
 		@Override
 		public Field getField()
@@ -1318,7 +1321,6 @@ public final class PropertyResolver
 	 */
 	private static class FieldGetAndSetter extends AbstractGetAndSet
 	{
-
 		private final Field field;
 
 		/**
@@ -1326,7 +1328,7 @@ public final class PropertyResolver
 		 * 
 		 * @param field
 		 */
-		public FieldGetAndSetter(Field field)
+		public FieldGetAndSetter(final Field field)
 		{
 			super();
 			this.field = field;
@@ -1334,9 +1336,9 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getValue(java.lang.Object)
+		 * {@inheritDoc}
 		 */
-		public Object getValue(Object object)
+		public Object getValue(final Object object)
 		{
 			try
 			{
@@ -1350,9 +1352,9 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#newValue(java.lang.Object)
+		 * {@inheritDoc}
 		 */
-		public Object newValue(Object object)
+		public Object newValue(final Object object)
 		{
 			Class<?> clz = field.getType();
 			Object value = null;
@@ -1369,10 +1371,10 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#setValue(Object, Object,
-		 *      PropertyResolverConverter)
+		 * {@inheritDoc}
 		 */
-		public void setValue(Object object, Object value, PropertyResolverConverter converter)
+		public void setValue(final Object object, Object value,
+			final PropertyResolverConverter converter)
 		{
 			value = converter.convert(value, field.getType());
 			try
@@ -1387,7 +1389,7 @@ public final class PropertyResolver
 		}
 
 		/**
-		 * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getTargetClass()
+		 * {@inheritDoc}
 		 */
 		@Override
 		public Class<?> getTargetClass()
@@ -1395,6 +1397,9 @@ public final class PropertyResolver
 			return field.getType();
 		}
 
+		/**
+		 * {@inheritDoc}
+		 */
 		@Override
 		public Field getField()
 		{
@@ -1431,7 +1436,6 @@ public final class PropertyResolver
 		applicationToClassesToGetAndSetters.remove(application);
 	}
 
-
 	/**
 	 * Sets the {@link IClassCache} for the given application.
 	 * 
@@ -1444,7 +1448,7 @@ public final class PropertyResolver
 	 *            to use or null if the default must be set.
 	 * @param classCache
 	 */
-	public static void setClassCache(Application application, IClassCache classCache)
+	public static void setClassCache(final Application application, final IClassCache classCache)
 	{
 		if (application != null)
 		{
@@ -1456,7 +1460,6 @@ public final class PropertyResolver
 		}
 	}
 
-
 	/**
 	 * An implementation of the class can be set on the
 	 * {@link PropertyResolver#setClassCacheCreator(Application, IClassCache)} method for a specific

Propchange: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Thu Jan 27 11:30:05 2011
@@ -0,0 +1,4 @@
+/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java:653208,653212,653215,653226,653231,654304,655446,655466,655786,658141,658189,659118,659120,662360,663058,671549,671885,687144-688996,698530-698577,701132-701133,701843,701850-701877,704231,708127,722099-722105,726536,728467-728490,731960,734478,739647,739951,745468-745497,749817,755171-755176,759905,760374,764756,769389,769440,774373,781715,781719,790879
+/wicket/sandbox/jthomerson/experimental/wicket-devutils/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java:760296-760351,760353-760355
+/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java:1062291
+/wicket/trunk/wicket-devutils/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java:760352

Modified: wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java
URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java?rev=1064091&r1=1064090&r2=1064091&view=diff
==============================================================================
--- wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java (original)
+++ wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java Thu Jan 27 11:30:05 2011
@@ -630,4 +630,30 @@ public class PropertyResolverTest extend
 			return String.valueOf(value);
 		}
 	}
+
+	/**
+	 * @see <a href="https://issues.apache.org/jira/browse/WICKET-1802">WICKET-1802</a>
+	 */
+	public void testConversionExceptionMessageContainsTheObjectPropertyBeingSet()
+	{
+		try
+		{
+			PropertyResolverConverter convertToNull = new PropertyResolverConverter(null, null)
+			{
+				private static final long serialVersionUID = 1L;
+
+				@Override
+				public Object convert(Object object, Class<?> clz)
+				{
+					return null;
+				}
+			};
+			PropertyResolver.setValue("name", person, "", convertToNull);
+			fail("Should have thrown an ConversionException");
+		}
+		catch (ConversionException e)
+		{
+			assertTrue(e.getMessage().toLowerCase().contains("name"));
+		}
+	}
 }

Propchange: wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Thu Jan 27 11:30:05 2011
@@ -0,0 +1,4 @@
+/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java:653208,653212,653215,653226,653231,654304,655446,655466,655786,658141,658189,659118,659120,662360,663058,671549,671885,687144-688996,698530-698577,701132-701133,701843,701850-701877,704231,708127,722099-722105,726536,728467-728490,731960,734478,739647,739951,745468-745497,749817,755171-755176,759905,760374,764756,769389,769440,774373,781715,781719,790879
+/wicket/sandbox/jthomerson/experimental/wicket-devutils/wicket/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java:760296-760351,760353-760355
+/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java:1063296
+/wicket/trunk/wicket-devutils/wicket/src/test/java/org/apache/wicket/util/lang/PropertyResolverTest.java:760352