diff --git a/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/internal/rj/servi/LocalNodeFactory.java b/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/internal/rj/servi/LocalNodeFactory.java
index 1f6e438..5698e1b 100644
--- a/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/internal/rj/servi/LocalNodeFactory.java
+++ b/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/internal/rj/servi/LocalNodeFactory.java
@@ -685,21 +685,33 @@
 			}
 		}
 		
-		if (!this.verbose && handler.dir != null
-				&& handler.dir.exists() && handler.dir.isDirectory() ) {
-			for (int i= 0; i < 20; i++) {
-				try {
-					Thread.sleep(200);
-				}
-				catch (final InterruptedException e) {
-				}
-				
-				if (!handler.dir.exists() || ServerUtils.delDir(handler.dir)) {
-					return;
+		if (!this.verbose && handler.dir != null) {
+			cleanupNode(handler);
+		}
+	}
+	
+	private void cleanupNode(final NodeHandler handler) {
+		Throwable deleteException= null;
+		try {
+			if (handler.dir.exists() && handler.dir.isDirectory()) {
+				for (int i= 0; i < 20; i++) {
+					try {
+						Thread.sleep(200);
+					}
+					catch (final InterruptedException e) {
+					}
+					
+					if (!handler.dir.exists() || ServerUtils.delDir(handler.dir)) {
+						return;
+					}
 				}
 			}
-			Utils.logWarning("Failed to delete the RServi node working directory '" + handler.dir.toString() + "'.");
 		}
+		catch (final Throwable e) {
+			deleteException= e;
+		}
+		Utils.logWarning("Failed to delete the RServi node working directory '" + handler.dir.toString() + "'.",
+				deleteException );
 	}
 	
 }
diff --git a/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/internal/rj/servi/Utils.java b/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/internal/rj/servi/Utils.java
index c2ad446..c1de0ef 100644
--- a/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/internal/rj/servi/Utils.java
+++ b/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/internal/rj/servi/Utils.java
@@ -176,7 +176,7 @@
 		CommonsRuntime.log(new WarningStatus(RServiUtils.RJ_SERVI_ID, message));
 	}
 	
-	public static void logWarning(final String message, final Throwable e) {
+	public static void logWarning(final String message, final @Nullable Throwable e) {
 		CommonsRuntime.log(new WarningStatus(RServiUtils.RJ_SERVI_ID, message, e));
 	}
 	
