Author: norman
Date: Wed Oct  7 15:32:43 2009
New Revision: 822779

URL: http://svn.apache.org/viewvc?rev=822779&view=rev
Log:
Take care of reconnect on closed imap socket (HUPA-34) and make sure 
connections get closed on removal from cache (HUPA-33)

Modified:
    
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/InMemoryIMAPStoreCache.java

Modified: 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/InMemoryIMAPStoreCache.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/InMemoryIMAPStoreCache.java?rev=822779&r1=822778&r2=822779&view=diff
==============================================================================
--- 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/InMemoryIMAPStoreCache.java
 (original)
+++ 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/InMemoryIMAPStoreCache.java
 Wed Oct  7 15:32:43 2009
@@ -86,9 +86,19 @@
                        cstore = createCachedIMAPStore();
                } else {
                        if (cstore.isExpired() == false) {
-                               cstore.validate();
+                           try {
+                               cstore.validate();
+                           } catch (MessagingException e) {
+                               
+                               cstore = createCachedIMAPStore();
+                           }
                        } else {
                                pool.remove(username);
+                               try {
+                                   if (cstore != null) 
cstore.getStore().close();
+                               } catch (MessagingException e) {
+                                   // ignore on close
+                               }
                                cstore = createCachedIMAPStore();
                        }
                }
@@ -154,7 +164,7 @@
                }
                
                public boolean isExpired() {
-                       if (validTo < System.currentTimeMillis()) {
+                       if (validTo < System.currentTimeMillis() && 
store.isConnected()) {
                                return false;
                        }
                        return true;



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to