]> source.dussan.org Git - vaadin-framework.git/commitdiff
Cleaner error reporting (not full stacktrace) when client abruptly presses STOP butto...
authorJani Laakso <jani.laakso@itmill.com>
Sat, 8 Dec 2007 10:29:28 +0000 (10:29 +0000)
committerJani Laakso <jani.laakso@itmill.com>
Sat, 8 Dec 2007 10:29:28 +0000 (10:29 +0000)
svn changeset:3188/svn branch:trunk

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

index 591e3e19d03e7752d3075781448682074efd8d64..8e1af64a44529e4f028a601472008e5c12f3036f 100644 (file)
@@ -11,6 +11,7 @@ import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
+import java.net.SocketException;
 import java.text.DateFormatSymbols;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -35,6 +36,8 @@ import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.catalina.connector.ClientAbortException;
+
 import com.itmill.toolkit.Application;
 import com.itmill.toolkit.Application.WindowAttachEvent;
 import com.itmill.toolkit.Application.WindowDetachEvent;
@@ -106,7 +109,6 @@ public class CommunicationManager implements Paintable.RepaintRequestListener,
     public void takeControl() {
         application.addListener((Application.WindowAttachListener) this);
         application.addListener((Application.WindowDetachListener) this);
-
     }
 
     /**
@@ -426,7 +428,14 @@ public class CommunicationManager implements Paintable.RepaintRequestListener,
 
             out.flush();
             out.close();
-
+        } catch (ClientAbortException e) {
+            // Most likely client browser closed socket
+            System.err
+                    .println("Warning: ClientAbortException in ApplicationServlet");
+        } catch (SocketException e) {
+            // Most likely client browser closed socket
+            System.err
+                    .println("Warning: SocketException in ApplicationServlet");
         } catch (final Throwable e) {
             e.printStackTrace();
             // Writes the error report to client
@@ -818,7 +827,6 @@ public class CommunicationManager implements Paintable.RepaintRequestListener,
     }
 
     public synchronized boolean hasPaintableId(Paintable paintable) {
-
         return paintableIdMap.containsKey(paintable);
     }