From e3f07f8af74d9a29be82bd5b35020b4cee8d5ce7 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Tue, 23 May 2023 11:44:59 +0200 Subject: [PATCH] Improve osgi-uninstall --- src/org/argeo/build/Make.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/org/argeo/build/Make.java b/src/org/argeo/build/Make.java index 70bf8b5..9b06aa8 100644 --- a/src/org/argeo/build/Make.java +++ b/src/org/argeo/build/Make.java @@ -354,11 +354,11 @@ public class Make { if (uninstall) { // uninstall if (Files.exists(targetJarP)) { Files.delete(targetJarP); - Path targetParent = targetJarP.getParent(); - deleteEmptyParents(targetA2, targetParent); logger.log(DEBUG, "Removed " + targetJarP); count++; } + Path targetParent = targetJarP.getParent(); + deleteEmptyParents(targetA2, targetParent); } else { // install Files.createDirectories(targetJarP.getParent()); boolean update = Files.exists(targetJarP); @@ -374,9 +374,10 @@ public class Make { void deleteEmptyParents(Path targetA2, Path targetParent) throws IOException { if (!Files.isDirectory(targetParent)) throw new IllegalArgumentException(targetParent + " must be a directory"); + boolean isA2target = Files.isSameFile(targetA2, targetParent); if (!Files.list(targetParent).iterator().hasNext()) { Files.delete(targetParent); - if (Files.isSameFile(targetA2, targetParent)) + if (isA2target) return;// stop after deleting A2 base deleteEmptyParents(targetA2, targetParent.getParent()); } -- 2.30.2