[hibernate-commits] Hibernate SVN: r17101 - validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Wed Jul 15 11:24:21 EDT 2009


Author: hardy.ferentschik
Date: 2009-07-15 11:24:21 -0400 (Wed, 15 Jul 2009)
New Revision: 17101

Modified:
   validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java
Log:
fixed handling of maps in conjunction with @Valid

Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java	2009-07-15 14:52:23 UTC (rev 17100)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java	2009-07-15 15:24:21 UTC (rev 17101)
@@ -387,7 +387,7 @@
 		}
 		else if ( ReflectionHelper.isMap( type ) ) {
 			Map<?, ?> map = ( Map<?, ?> ) value;
-			iter = map.values().iterator();
+			iter = map.entrySet().iterator();
 			context.markCurrentPropertyAsIterable();
 		}
 		else if ( TypeUtils.isArray( type ) ) {
@@ -437,16 +437,13 @@
 			if ( value instanceof Map.Entry ) {
 				mapKey = ( ( Map.Entry ) value ).getKey();
 				value = ( ( Map.Entry ) value ).getValue();
+				currentPath.getLeafNode().setKey( mapKey );
 			}
-
-			if ( isIndexable ) {
-				// only one of the two values index/mapKey will be set. The other will stay null.
+			else if ( isIndexable ) {
 				currentPath.getLeafNode().setIndex( index );
-				currentPath.getLeafNode().setKey( mapKey );
 			}
 
 			if ( !context.isAlreadyValidated( value, currentGroup, currentPath ) ) {
-
 				GroupChain groupChain = groupChainGenerator.getGroupChainFor(
 						Arrays.asList(
 								new Class<?>[] {




More information about the hibernate-commits mailing list