]> source.dussan.org Git - vaadin-framework.git/commitdiff
Avoid infinite recursion in LegacyApplication.terminalError (#9581)
authorLeif Åstrand <leif@vaadin.com>
Wed, 12 Sep 2012 08:53:55 +0000 (11:53 +0300)
committerLeif Åstrand <leif@vaadin.com>
Wed, 12 Sep 2012 08:54:14 +0000 (11:54 +0300)
server/src/com/vaadin/LegacyApplication.java
server/src/com/vaadin/server/DefaultErrorListener.java

index ca9b196ff116dbdc965da12e55dd69910db90236..3a6ffaa39c299553139c6248f854cf6bb242c4df 100644 (file)
@@ -26,6 +26,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import com.vaadin.server.AbstractUIProvider;
+import com.vaadin.server.DefaultErrorListener;
 import com.vaadin.server.Terminal.ErrorEvent;
 import com.vaadin.server.Terminal.ErrorListener;
 import com.vaadin.server.VaadinSession;
@@ -105,8 +106,7 @@ public abstract class LegacyApplication extends AbstractUIProvider implements
     }
 
     @Override
-    public String getTheme(WrappedRequest request,
-            Class<? extends UI> uiClass) {
+    public String getTheme(WrappedRequest request, Class<? extends UI> uiClass) {
         return theme;
     }
 
@@ -282,7 +282,7 @@ public abstract class LegacyApplication extends AbstractUIProvider implements
 
     @Override
     public void terminalError(ErrorEvent event) {
-        VaadinSession.getCurrent().getErrorHandler().terminalError(event);
+        DefaultErrorListener.doDefault(event);
     }
 
     public VaadinSession getContext() {
index 46f96272fd9ec412b0f41ba70746ec1cd7a12364..f007bdad63d1a41dc4a253b2e5712cbe68ad13a5 100644 (file)
@@ -26,11 +26,15 @@ import com.vaadin.ui.AbstractComponent;
 public class DefaultErrorListener implements Terminal.ErrorListener {
     @Override
     public void terminalError(ErrorEvent event) {
+        doDefault(event);
+    }
+
+    public static void doDefault(ErrorEvent event) {
         final Throwable t = event.getThrowable();
         if (t instanceof SocketException) {
             // Most likely client browser closed socket
-            getLogger()
-                    .info("SocketException in CommunicationManager."
+            getLogger().info(
+                    "SocketException in CommunicationManager."
                             + " Most likely client (browser) closed socket.");
             return;
         }
@@ -45,16 +49,15 @@ public class DefaultErrorListener implements Terminal.ErrorListener {
 
         // Shows the error in AbstractComponent
         if (owner instanceof AbstractComponent) {
-            ((AbstractComponent) owner)
-                    .setComponentError(AbstractErrorMessage
-                            .getErrorMessageForException(t));
+            ((AbstractComponent) owner).setComponentError(AbstractErrorMessage
+                    .getErrorMessageForException(t));
         }
 
         // also print the error on console
         getLogger().log(Level.SEVERE, "Terminal error:", t);
     }
 
-    private Logger getLogger() {
+    private static Logger getLogger() {
         return Logger.getLogger(DefaultErrorListener.class.getName());
     }
 }
\ No newline at end of file