Author: epbernard
Date: 2009-09-23 12:25:07 -0400 (Wed, 23 Sep 2009)
New Revision: 17534
Modified:
core/trunk/annotations/src/main/java/org/hibernate/cfg/beanvalidation/BeanValidationEventListener.java
Log:
Fix unsafe use and copy data to Set<ConstraintViolation<?>>
Modified:
core/trunk/annotations/src/main/java/org/hibernate/cfg/beanvalidation/BeanValidationEventListener.java
===================================================================
---
core/trunk/annotations/src/main/java/org/hibernate/cfg/beanvalidation/BeanValidationEventListener.java 2009-09-23
16:12:46 UTC (rev 17533)
+++
core/trunk/annotations/src/main/java/org/hibernate/cfg/beanvalidation/BeanValidationEventListener.java 2009-09-23
16:25:07 UTC (rev 17534)
@@ -2,6 +2,7 @@
import java.util.Properties;
import java.util.Set;
+import java.util.HashSet;
import java.util.concurrent.ConcurrentHashMap;
import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
@@ -67,15 +68,16 @@
.getValidator();
final Class<?>[] groups = groupsPerOperation.get( operation );
if ( groups.length > 0 ) {
- final Set<ConstraintViolation<T>> constraintViolations =
- validator.validate( object, groups );
- //FIXME CV should no longer be generics
- Object unsafeViolations = constraintViolations;
+ final Set<ConstraintViolation<T>> constraintViolations =
validator.validate( object, groups );
if (constraintViolations.size() > 0 ) {
- //FIXME add Set<ConstraintViolation<?>>
+ Set<ConstraintViolation<?>> propagatedViolations =
+ new HashSet<ConstraintViolation<?>>( constraintViolations.size() );
+ for ( ConstraintViolation<?> violation : constraintViolations) {
+ propagatedViolations.add(violation);
+ }
throw new ConstraintViolationException(
"Invalid object at " + operation.getName() + " time for groups
" + toString( groups ),
- (Set<ConstraintViolation<?>>) unsafeViolations);
+ propagatedViolations);
}
}
}