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