Author: jawi
Date: Thu Jun  7 13:31:47 2012
New Revision: 1347607

URL: http://svn.apache.org/viewvc?rev=1347607&view=rev
Log:
When a login fails due to exceptions, destroy the session. Otherwise, users can 
no longer login after this.

Modified:
    
ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/VaadinClient.java

Modified: 
ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/VaadinClient.java
URL: 
http://svn.apache.org/viewvc/ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/VaadinClient.java?rev=1347607&r1=1347606&r2=1347607&view=diff
==============================================================================
--- 
ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/VaadinClient.java
 (original)
+++ 
ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/VaadinClient.java
 Thu Jun  7 13:31:47 2012
@@ -966,10 +966,23 @@ public class VaadinClient extends com.va
             m_admin.login(context);
             initGrid(user);
             m_admin.checkout();
+
             return true;
         }
         catch (Exception e) {
-            m_log.log(LogService.LOG_WARNING, "Login failed!", e);
+            m_log.log(LogService.LOG_WARNING, "Login failed! Destroying 
session...", e);
+            
+            try {
+                // Avoid errors when the user tries to login again (due to the 
stale session)...
+                m_admin.logout(true /* force */);
+            }
+            catch (IllegalStateException inner) {
+                // Ignore; probably we're not logged...
+            }
+            catch (IOException inner) {
+                m_log.log(LogService.LOG_WARNING, "Logout failed! Session 
possibly not destroyed...", inner);
+            }
+
             return false;
         }
     }


Reply via email to