Defining a qualified Runtime exception for indicating interruption of
code download.


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@9025 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/core/client/CodeDownloadException.java b/user/src/com/google/gwt/core/client/CodeDownloadException.java
new file mode 100644
index 0000000..72f98eb
--- /dev/null
+++ b/user/src/com/google/gwt/core/client/CodeDownloadException.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.google.gwt.core.client;
+
+/**
+ * Exception indicating an interruption while downloading resources.
+ */
+public final class CodeDownloadException extends RuntimeException {
+
+  /**
+   * Reason codes for the interruption of code down load. These
+   * can be due to missing resource or server not responding or user
+   * switching to a new page indicating resource doesn't
+   * need to be down loaded.
+   */
+  public enum Reason {
+    /**
+     * Generic code for terminating the download.
+     */
+    TERMINATED
+  }
+
+  private final Reason reason;
+
+  public CodeDownloadException(String message, Reason reason) {
+    super(message);
+    this.reason = reason;
+  }
+
+  public final Reason getReason() {
+    return reason;
+  }
+}
diff --git a/user/src/com/google/gwt/core/client/impl/CrossSiteIframeLoadingStrategy.java b/user/src/com/google/gwt/core/client/impl/CrossSiteIframeLoadingStrategy.java
index c43bfae..e13e41c 100644
--- a/user/src/com/google/gwt/core/client/impl/CrossSiteIframeLoadingStrategy.java
+++ b/user/src/com/google/gwt/core/client/impl/CrossSiteIframeLoadingStrategy.java
@@ -1,12 +1,12 @@
 /*
  * Copyright 2010 Google Inc.
- * 
+ *
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  * use this file except in compliance with the License. You may obtain a copy of
  * the License at
- * 
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
@@ -16,6 +16,7 @@
 
 package com.google.gwt.core.client.impl;
 
+import com.google.gwt.core.client.CodeDownloadException;
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.core.client.JavaScriptObject;
 import com.google.gwt.core.client.impl.AsyncFragmentLoader.LoadTerminatedHandler;
@@ -24,7 +25,7 @@
 /**
  * Load runAsync code using a script tag. Intended for use with the
  * {@link com.google.gwt.core.linker.CrossSiteIframeLinker}.
- * 
+ *
  * <p>
  * The linker wraps its selection script code with a function refered to by
  * <code>__gwtModuleFunction</code>. On that function is a property
@@ -52,15 +53,15 @@
     public native int get(int x) /*-{
       return this[x] ? this[x] : 0;
     }-*/;
-    
+
     public native void put(int x, int y) /*-{
       this[x] = y;
     }-*/;
   }
 
-  @SuppressWarnings("unused")
-  private static RuntimeException LoadTerminated = new RuntimeException(
-      "Code download terminated");
+  private static final RuntimeException LoadTerminated =
+      new CodeDownloadException("Code download terminated",
+                                CodeDownloadException.Reason.TERMINATED);
 
   /**
    * Clear callbacks on script objects. This is important on IE 6 and 7 to