Cherry-pick merging /releases/1.6 c4963 into trunk.

svn merge -c4963 https://google-web-toolkit.googlecode.com/svn/releases/1.6


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@4970 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/rebind/rpc/ProxyCreator.java b/user/src/com/google/gwt/user/rebind/rpc/ProxyCreator.java
index 627f774..0449c7e 100644
--- a/user/src/com/google/gwt/user/rebind/rpc/ProxyCreator.java
+++ b/user/src/com/google/gwt/user/rebind/rpc/ProxyCreator.java
@@ -445,21 +445,6 @@
       w.println("(" + asyncParam.getName() + ");");
     }
 
-    JParameter callbackParam = asyncParams[asyncParams.length - 1];
-    String callbackName = callbackParam.getName();
-    if (needsTryCatchBlock) {
-      w.outdent();
-      w.print("} catch (SerializationException ");
-      String exceptionName = nameFactory.createName("ex");
-      w.println(exceptionName + ") {");
-      w.indent();
-      w.println(callbackName + ".onFailure(" + exceptionName + ");");
-      w.outdent();
-      w.println("}");
-    }
-
-    w.println();
-
     String payloadName = nameFactory.createName("payload");
     w.println("String " + payloadName + " = " + streamWriterName
         + ".toString();");
@@ -486,11 +471,24 @@
           + asyncReturnType.getQualifiedSourceName());
     }
 
+    JParameter callbackParam = asyncParams[asyncParams.length - 1];
+    String callbackName = callbackParam.getName();
     JType returnType = syncMethod.getReturnType();
     w.print("ResponseReader." + getResponseReaderFor(returnType).name());
     w.println(", \"" + getProxySimpleName() + "." + syncMethod.getName()
         + "\", " + requestIdName + ", " + payloadName + ", " + callbackName
         + ");");
+
+    if (needsTryCatchBlock) {
+      w.outdent();
+      w.print("} catch (SerializationException ");
+      String exceptionName = nameFactory.createName("ex");
+      w.println(exceptionName + ") {");
+      w.indent();
+      w.println(callbackName + ".onFailure(" + exceptionName + ");");
+      w.outdent();
+      w.println("}");
+    }
     w.outdent();
     w.println("}");
   }