[RJ-Servi] Add catch of all throwables when cleaning up node resourcers
Backport-of: 088b523af51d689ed014a8dc3aed58693f863636
Change-Id: I671fc207335992e29a171571757d950f1b15531e
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));
}