From: Mathieu Baudier Date: Tue, 23 May 2023 09:44:59 +0000 (+0200) Subject: Improve osgi-uninstall X-Git-Tag: v2.3.6~5 X-Git-Url: https://git.argeo.org/?a=commitdiff_plain;h=e3f07f8af74d9a29be82bd5b35020b4cee8d5ce7;p=cc0%2Fargeo-build.git Improve osgi-uninstall --- 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()); }