Revision: 10030
Author:   [email protected]
Date:     Tue Apr 19 09:13:32 2011
Log:      Cherry picking r10020 into releases/gwt/2.3

http://code.google.com/p/google-web-toolkit/source/detail?r=10030

Modified:
/releases/2.3/dev/core/src/com/google/gwt/dev/cfg/ConditionWhenTypeAssignableTo.java

=======================================
--- /releases/2.3/dev/core/src/com/google/gwt/dev/cfg/ConditionWhenTypeAssignableTo.java Wed Aug 11 09:22:23 2010 +++ /releases/2.3/dev/core/src/com/google/gwt/dev/cfg/ConditionWhenTypeAssignableTo.java Tue Apr 19 09:13:32 2011
@@ -27,6 +27,8 @@
  */
 public class ConditionWhenTypeAssignableTo extends Condition {

+  private static boolean warnedMissingValidationJar = false;
+
   private final String assignableToTypeName;

   public ConditionWhenTypeAssignableTo(String assignableToTypeName) {
@@ -59,7 +61,12 @@
       // This isn't a strict failure case because stale rules can reference
       // types that have been deleted.
       //
-      logger.log(TreeLogger.WARN, "Unknown type '" + assignableToTypeName
+      TreeLogger.Type level = TreeLogger.WARN;
+      if (shouldSuppressWarning(logger, assignableToTypeName)) {
+        // Suppress validation related errors
+        level = TreeLogger.DEBUG;
+      }
+      logger.log(level, "Unknown type '" + assignableToTypeName
           + "' specified in deferred binding rule", null);
       return false;
     }
@@ -85,4 +92,27 @@
     return toString();
   }

-}
+  /**
+   * Suppress multiple validation related messages and replace with a hint.
+   *
+   * @param typeName fully qualified type name to check for filtering
+   */
+ // TODO(zundel): Can be removed when javax.validation is included in the JRE + private boolean shouldSuppressWarning(TreeLogger logger, String typeName) {
+    if (typeName.startsWith("javax.validation.")
+        || typeName.startsWith("com.google.gwt.validation.")
+        || typeName.startsWith("com.google.gwt.editor.client")) {
+      if (!warnedMissingValidationJar) {
+        warnedMissingValidationJar = true;
+ logger.log(TreeLogger.WARN, "Detected warnings related to '" + typeName + "'. " + + " Is validation-api-<version>-sources.jar on the classpath?"); + logger.log(TreeLogger.INFO, "Specify -logLevel DEBUG to see all errors.");
+        // Show the first error that matches
+        return false;
+      }
+      // Suppress subsequent errors that match
+      return true;
+    }
+    return false;
+  }
+}

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to