]> source.dussan.org Git - vaadin-framework.git/commitdiff
Pass internal errors to application terminalError
authorArtur Signell <artur.signell@itmill.com>
Tue, 21 Oct 2008 06:27:58 +0000 (06:27 +0000)
committerArtur Signell <artur.signell@itmill.com>
Tue, 21 Oct 2008 06:27:58 +0000 (06:27 +0000)
svn changeset:5677/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/server/ApplicationServlet.java

index 8a56275d608df00cc2fe75959cb60b6b3ba6ff9e..57afcbd30493b55109fa8f88a07af9810e9de6f6 100644 (file)
@@ -39,6 +39,7 @@ import com.itmill.toolkit.external.org.apache.commons.fileupload.servlet.Servlet
 import com.itmill.toolkit.service.FileTypeResolver;
 import com.itmill.toolkit.terminal.DownloadStream;
 import com.itmill.toolkit.terminal.ParameterHandler;
+import com.itmill.toolkit.terminal.Terminal;
 import com.itmill.toolkit.terminal.ThemeResource;
 import com.itmill.toolkit.terminal.URIHandler;
 import com.itmill.toolkit.ui.Window;
@@ -538,6 +539,11 @@ public class ApplicationServlet extends HttpServlet {
                 criticalNotification(request, response, ci
                         .getInternalErrorCaption(), ci
                         .getInternalErrorMessage(), ci.getInternalErrorURL());
+                if (application != null) {
+                    application.terminalError(new RequestError(e));
+                } else {
+                    throw new ServletException(e);
+                }
             } else {
                 // Re-throw other exceptions
                 throw new ServletException(e);
@@ -1671,4 +1677,18 @@ public class ApplicationServlet extends HttpServlet {
         return resultPath;
     }
 
+    public class RequestError implements Terminal.ErrorEvent {
+
+        private final Throwable throwable;
+
+        public RequestError(Throwable throwable) {
+            this.throwable = throwable;
+        }
+
+        public Throwable getThrowable() {
+            return throwable;
+        }
+
+    }
+
 }
\ No newline at end of file