Fix a codegen bug for use of {0,localtime,predef:FOO}
format in Messages.

Patch by: jat
Review by: pdr

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


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@9779 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/i18n/rebind/MessagesMethodCreator.java b/user/src/com/google/gwt/i18n/rebind/MessagesMethodCreator.java
index 19c27e7..c726f58 100644
--- a/user/src/com/google/gwt/i18n/rebind/MessagesMethodCreator.java
+++ b/user/src/com/google/gwt/i18n/rebind/MessagesMethodCreator.java
@@ -433,7 +433,8 @@
           return true;
         }
         out.appendStringValuedExpression(
-            dtFormatClassName + ".getFormat(" + PredefinedFormat.class.getName() + "."
+            dtFormatClassName + ".getFormat("
+                + PredefinedFormat.class.getCanonicalName() + "."
                 + predef.toString() + ").format(" + argName + tzParam + ")");
         return false;
       }
diff --git a/user/test/com/google/gwt/i18n/client/I18N2Test.java b/user/test/com/google/gwt/i18n/client/I18N2Test.java
index 327835d..c1578c0 100644
--- a/user/test/com/google/gwt/i18n/client/I18N2Test.java
+++ b/user/test/com/google/gwt/i18n/client/I18N2Test.java
@@ -454,6 +454,13 @@
     assertEquals("nested underscore b", m.nestedUnderscore());
   }
 
+  @SuppressWarnings("deprecation")
+  public void testPredefDateFormat() {
+    TestAnnotatedMessages m = GWT.create(TestAnnotatedMessages.class);
+    Date date = new Date(Date.UTC(2010 - 1900, 1, 2, 3, 4, 5));
+    assertEquals("Short: 2010-02-01", m.predef(date));
+  }
+
   public void testSpecialPlurals() {
     TestAnnotatedMessages m = GWT.create(TestAnnotatedMessages.class);
     assertEquals("No widgets", m.specialPlurals(0));
diff --git a/user/test/com/google/gwt/i18n/client/TestAnnotatedMessages.java b/user/test/com/google/gwt/i18n/client/TestAnnotatedMessages.java
index ddc2dd6..6116347 100644
--- a/user/test/com/google/gwt/i18n/client/TestAnnotatedMessages.java
+++ b/user/test/com/google/gwt/i18n/client/TestAnnotatedMessages.java
@@ -99,6 +99,9 @@
   @DefaultMessage("in timezone: {0,localdatetime:tz=$tz,yMd hms}")
   SafeHtml inTimezoneAsSafeHtml(Date date, @Optional TimeZone tz);
 
+  @DefaultMessage("Short: {0,localdatetime,predef:DATE_SHORT}")
+  String predef(Date date);
+
   @DefaultMessage("Once more, with meaning")
   @Meaning("Mangled quote")
   String withMeaning();