This is an automated email from the ASF dual-hosted git repository.

pauls pushed a commit to branch issues/SLING-10209
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-extension-content.git

commit 819823953ac0b22f51fa7704ef4cb4e3e48fe35f
Author: Karl Pauls <[email protected]>
AuthorDate: Thu Mar 11 17:57:32 2021 +0100

    SLING-10209: don't reinstall packages already present in the registry.
---
 .../sling/feature/extension/content/ContentHandler.java      | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/feature/extension/content/ContentHandler.java 
b/src/main/java/org/apache/sling/feature/extension/content/ContentHandler.java
index 5bfe091..3ed80d9 100644
--- 
a/src/main/java/org/apache/sling/feature/extension/content/ContentHandler.java
+++ 
b/src/main/java/org/apache/sling/feature/extension/content/ContentHandler.java
@@ -30,6 +30,7 @@ import java.util.Set;
 import java.util.TreeMap;
 
 import org.apache.jackrabbit.vault.packaging.PackageId;
+import org.apache.jackrabbit.vault.packaging.PackageExistsException;
 import org.apache.jackrabbit.vault.packaging.SubPackageHandling;
 import org.apache.jackrabbit.vault.packaging.registry.ExecutionPlanBuilder;
 import org.apache.jackrabbit.vault.packaging.registry.PackageTask.Type;
@@ -74,11 +75,14 @@ public class ContentHandler implements ExtensionHandler {
         builder.with(satisfiedPackages);
 
         for (File pkgFile : packageReferences) {
+            try {
+                PackageId pid = registry.registerExternal(pkgFile, false);
+                extractSubPackages(registry, builder, pid);
 
-            PackageId pid = registry.registerExternal(pkgFile, true);
-            extractSubPackages(registry, builder, pid);
-
-            builder.addTask().with(pid).with(Type.EXTRACT);
+                builder.addTask().with(pid).with(Type.EXTRACT);
+            } catch (PackageExistsException ex) {
+                // Expected - the package is already present
+            }
         }
         builder.validate();
         satisfiedPackages.addAll(builder.preview());

Reply via email to