Handle custom constraint violation messages.
[JSR 303 TCK Result] 110 of 257 (42.80%) Pass with 20 Failures and 9 Errors.

Review at http://gwt-code-reviews.appspot.com/1379801

Review by: rchandia@google.com

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@9834 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/validation/client/impl/ConstraintValidatorContextImpl.java b/user/src/com/google/gwt/validation/client/impl/ConstraintValidatorContextImpl.java
index 1705c4a..07bde24 100644
--- a/user/src/com/google/gwt/validation/client/impl/ConstraintValidatorContextImpl.java
+++ b/user/src/com/google/gwt/validation/client/impl/ConstraintValidatorContextImpl.java
@@ -58,6 +58,7 @@
     }
 
     public ConstraintValidatorContext addConstraintViolation() {
+      messages.add(new MessageAndPath(context.basePath, messageTemplate));
       return context;
     }
 
@@ -180,7 +181,8 @@
   private final ConstraintDescriptor<A> descriptor;
 
   private boolean disableDefault;
-  private Set<ConstraintViolation<T>> violations = new HashSet<ConstraintViolation<T>>();
+  private final Set<ConstraintViolation<T>> violations = new HashSet<ConstraintViolation<T>>();
+  private final HashSet<MessageAndPath> messages = new HashSet<MessageAndPath>();
 
   public ConstraintValidatorContextImpl(PathImpl path,
       ConstraintDescriptor<A> descriptor) {
@@ -205,10 +207,10 @@
   }
 
   public Set<MessageAndPath> getMessageAndPaths() {
-    // TODO handle custom.
-    HashSet<MessageAndPath> messages = new HashSet<MessageAndPath>();
-    messages.add(new MessageAndPath(this.basePath,
-        this.getDefaultConstraintMessageTemplate()));
+    if (!disableDefault) {
+      messages.add(new MessageAndPath(this.basePath, this
+          .getDefaultConstraintMessageTemplate()));
+    }
     return messages;
   }
 
diff --git a/user/test/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/ConstraintCompositionGwtTest.java b/user/test/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/ConstraintCompositionGwtTest.java
index a2646e9..9c9692a 100644
--- a/user/test/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/ConstraintCompositionGwtTest.java
+++ b/user/test/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/ConstraintCompositionGwtTest.java
@@ -43,6 +43,7 @@
     delegate.testComposedConstraintsAreRecursive();
   }
 
+  @Failing(issue = 5799)
   public void testEachFailingConstraintCreatesConstraintViolation() {
     delegate.testEachFailingConstraintCreatesConstraintViolation();
   }
@@ -65,7 +66,6 @@
     delegate.testPayloadPropagationInComposedConstraints();
   }
 
-  @Failing(issue = 5799)
   public void testValidationOfMainAnnotationIsAlsoApplied() {
     delegate.testValidationOfMainAnnotationIsAlsoApplied();
   }