Bug 571382: [RServi] Fix RServiRJComClient.handleServerStatus

Change-Id: I8e3c8495b6ad05a94284d236557b17c18fe91b28
diff --git a/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/internal/rj/servi/RServiImpl.java b/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/internal/rj/servi/RServiImpl.java
index d54b83d..f934b40 100644
--- a/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/internal/rj/servi/RServiImpl.java
+++ b/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/internal/rj/servi/RServiImpl.java
@@ -31,7 +31,6 @@
 import org.eclipse.statet.jcommons.lang.Nullable;
 import org.eclipse.statet.jcommons.runtime.CommonsRuntime;
 import org.eclipse.statet.jcommons.status.ErrorStatus;
-import org.eclipse.statet.jcommons.status.InfoStatus;
 import org.eclipse.statet.jcommons.status.ProgressMonitor;
 import org.eclipse.statet.jcommons.status.Status;
 import org.eclipse.statet.jcommons.status.StatusException;
@@ -103,10 +102,12 @@
 				throw new IllegalStateException();
 			}
 			
-			if (!isClosed()) {
-				setClosed(true);
-				handleStatus(new InfoStatus(RJ_SERVI_ID, "RServi is disconnected."),
-						m );
+			synchronized (RServiImpl.this) {
+				if (!isClosed()) {
+					CommonsRuntime.log(new WarningStatus(RJ_SERVI_ID,
+							"RServi is disconnected." ));
+					forceClose();
+				}
 			}
 			throw new StatusException(new ErrorStatus(RJ_SERVI_ID, "RServi is closed."));
 		}