Log extra information when AsyncFragmentLoader
sees an HTTP download failure.

Review by: fabbott


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@7257 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/core/client/impl/AsyncFragmentLoader.java b/user/src/com/google/gwt/core/client/impl/AsyncFragmentLoader.java
index e5070bf..02362eb 100644
--- a/user/src/com/google/gwt/core/client/impl/AsyncFragmentLoader.java
+++ b/user/src/com/google/gwt/core/client/impl/AsyncFragmentLoader.java
@@ -155,8 +155,9 @@
   private static class HttpDownloadFailure extends RuntimeException {
     private final int statusCode;
 
-    public HttpDownloadFailure(int statusCode) {
-      super("HTTP download failed with status " + statusCode);
+    public HttpDownloadFailure(String url, int statusCode, String statusText) {
+      super("Download of " + url + " failed with status " + statusCode + "("
+          + statusText + ")");
       this.statusCode = statusCode;
     }
 
@@ -263,7 +264,7 @@
   private static class XhrLoadingStrategy implements LoadingStrategy {
     public void startLoadingFragment(int fragment,
         final LoadErrorHandler loadErrorHandler) {
-      String fragmentUrl = gwtStartLoadingFragment(fragment, loadErrorHandler);
+      final String fragmentUrl = gwtStartLoadingFragment(fragment, loadErrorHandler);
 
       if (fragmentUrl == null) {
         // The download has already started; nothing more to do
@@ -289,8 +290,8 @@
                 loadErrorHandler.loadFailed(e);
               }
             } else {
-              loadErrorHandler.loadFailed(new HttpDownloadFailure(
-                  xhr.getStatus()));
+              loadErrorHandler.loadFailed(new HttpDownloadFailure(fragmentUrl,
+                  xhr.getStatus(), xhr.getStatusText()));
             }
           }
         }