Author: fmancinelli
Date: 2008-01-15 13:49:11 +0100 (Tue, 15 Jan 2008)
New Revision: 6842

Modified:
   
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/adapters/XWikiConnectionAdapter.java
   
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/adapters/XWikiSpaceAdapter.java
   
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/model/impl/XWikiCachedConnection.java
   
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/utils/XWikiEclipseUtil.java
Log:
XECLIPSE-87

Fix for the disconnection/reconnection bug.

Modified: 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/adapters/XWikiConnectionAdapter.java
===================================================================
--- 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/adapters/XWikiConnectionAdapter.java
 2008-01-15 09:57:49 UTC (rev 6841)
+++ 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/adapters/XWikiConnectionAdapter.java
 2008-01-15 12:49:11 UTC (rev 6842)
@@ -35,6 +35,7 @@
 import org.xwiki.eclipse.model.IXWikiConnection;
 import org.xwiki.eclipse.model.IXWikiSpace;
 import org.xwiki.eclipse.model.XWikiConnectionException;
+import org.xwiki.eclipse.utils.XWikiEclipseUtil;
 import org.xwiki.plugins.eclipse.XWikiEclipsePlugin;
 
 /**
@@ -57,6 +58,7 @@
                 result = xwikiConnection.getSpaces();
             } catch (XWikiConnectionException e) {
                 e.printStackTrace();
+                XWikiEclipseUtil.reconnect(xwikiConnection);
             }
 
             return result != null ? result.toArray() : 
XWikiEclipseConstants.NO_OBJECTS;

Modified: 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/adapters/XWikiSpaceAdapter.java
===================================================================
--- 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/adapters/XWikiSpaceAdapter.java
      2008-01-15 09:57:49 UTC (rev 6841)
+++ 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/adapters/XWikiSpaceAdapter.java
      2008-01-15 12:49:11 UTC (rev 6842)
@@ -32,6 +32,7 @@
 import org.xwiki.eclipse.model.IXWikiPage;
 import org.xwiki.eclipse.model.IXWikiSpace;
 import org.xwiki.eclipse.model.XWikiConnectionException;
+import org.xwiki.eclipse.utils.XWikiEclipseUtil;
 import org.xwiki.plugins.eclipse.XWikiEclipsePlugin;
 
 /**
@@ -59,6 +60,7 @@
                 }
             } catch (XWikiConnectionException e) {
                 e.printStackTrace();
+                XWikiEclipseUtil.reconnect(space.getConnection());
             }
 
             return result != null ? result.toArray() : 
XWikiEclipseConstants.NO_OBJECTS;

Modified: 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/model/impl/XWikiCachedConnection.java
===================================================================
--- 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/model/impl/XWikiCachedConnection.java
        2008-01-15 09:57:49 UTC (rev 6841)
+++ 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/model/impl/XWikiCachedConnection.java
        2008-01-15 12:49:11 UTC (rev 6842)
@@ -255,11 +255,13 @@
         }
 
         try {
-            remoteDAO.close();
-            remoteDAO = null;
+            remoteDAO.close();           
         } catch (XWikiDAOException e) {
             e.printStackTrace();
         }
+        finally {
+               remoteDAO = null;
+        }
 
         XWikiEclipseNotificationCenter.getDefault().fireEvent(this,
             XWikiEclipseEvent.CONNECTION_CLOSED, this);

Modified: 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/utils/XWikiEclipseUtil.java
===================================================================
--- 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/utils/XWikiEclipseUtil.java
  2008-01-15 09:57:49 UTC (rev 6841)
+++ 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/utils/XWikiEclipseUtil.java
  2008-01-15 12:49:11 UTC (rev 6842)
@@ -22,14 +22,18 @@
 
 import java.lang.reflect.InvocationTargetException;
 
+import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
 import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IEditorReference;
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.xwiki.eclipse.XWikiConnectionManager;
 import org.xwiki.eclipse.editors.XWikiPageEditor;
 import org.xwiki.eclipse.editors.XWikiPageEditorInput;
 import org.xwiki.eclipse.model.IXWikiConnection;
@@ -93,4 +97,20 @@
         }
     }
 
+       public static void reconnect(IXWikiConnection connection) {
+               try {
+                       connection.disconnect();
+                       
connection.connect(XWikiConnectionManager.getDefault().getPasswordForConnection(connection));
   
+               }
+               catch(Exception e) {
+                       e.printStackTrace();
+                       Display.getDefault().asyncExec(new Runnable() {
+
+                               public void run() {
+                                       
MessageDialog.openError(Display.getDefault().getActiveShell(), "Error", 
"Connection was lost. Cannot reconnect");                                       
        
+                               }                               
+                       });
+               }
+       }
+
 }

_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications

Reply via email to