You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cs...@apache.org on 2020/03/17 11:25:20 UTC

[sling-org-apache-sling-distribution-journal] branch master updated: SLING-9050 - Make sure exceptions are reported to upper layer

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

cschneider pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-distribution-journal.git


The following commit(s) were added to refs/heads/master by this push:
     new 2ed39f0  SLING-9050 - Make sure exceptions are reported to upper layer
2ed39f0 is described below

commit 2ed39f033d4fed7a3311cdfce1007b99253a7b3c
Author: Christian Schneider <cs...@adobe.com>
AuthorDate: Tue Mar 17 12:22:51 2020 +0100

    SLING-9050 - Make sure exceptions are reported to upper layer
---
 .../impl/subscriber/ContentPackageExtractor.java   | 39 +++++++++++-----------
 1 file changed, 19 insertions(+), 20 deletions(-)

diff --git a/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/ContentPackageExtractor.java b/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/ContentPackageExtractor.java
index 3196a2c..44037ab 100644
--- a/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/ContentPackageExtractor.java
+++ b/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/ContentPackageExtractor.java
@@ -20,6 +20,7 @@ package org.apache.sling.distribution.journal.impl.subscriber;
 
 import static java.util.Objects.requireNonNull;
 
+import java.io.IOException;
 import java.util.List;
 
 import javax.jcr.Node;
@@ -30,9 +31,11 @@ import javax.jcr.nodetype.NodeType;
 import org.apache.jackrabbit.vault.fs.io.ImportOptions;
 import org.apache.jackrabbit.vault.packaging.JcrPackage;
 import org.apache.jackrabbit.vault.packaging.JcrPackageManager;
+import org.apache.jackrabbit.vault.packaging.PackageException;
 import org.apache.jackrabbit.vault.packaging.Packaging;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.distribution.common.DistributionException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -54,7 +57,7 @@ public class ContentPackageExtractor {
         this.packageHandling = packageHandling;
     }
     
-    public void handle(ResourceResolver resourceResolver, List<String> paths) {
+    public void handle(ResourceResolver resourceResolver, List<String> paths) throws DistributionException {
         requireNonNull(resourceResolver, "Must provide resourceResolver");
         if (packageHandling == PackageHandling.Off) {
             return;
@@ -71,8 +74,8 @@ public class ContentPackageExtractor {
                 } else {
                     log.warn("Imported node {} does not exist. Skipping.", path);
                 }
-            } catch (RepositoryException e) {
-                log.warn("Error trying check if {} contains a content package to extract.", path, e);
+            } catch (Exception e) {
+                throw new DistributionException("Error trying to extract package at path " + path, e);
             }
         }
     }
@@ -81,24 +84,20 @@ public class ContentPackageExtractor {
         return path.startsWith(PACKAGE_BASE_PATH) && node.isNodeType(NodeType.NT_FILE);
     }
 
-    private void installPackage(String path, Node node) {
-        try {
-            log.info("Content package received at {}. Starting import.\n", path);
-            Session session = node.getSession();
-            JcrPackageManager packMgr = packageService.getPackageManager(session);
-            try (JcrPackage pack = packMgr.open(node)) {
-                if (pack == null) {
-                    return;
-                }
-                ImportOptions opts = new ImportOptions();
-                if (packageHandling == PackageHandling.Extract) {
-                    pack.extract(opts);
-                } else {
-                    pack.install(opts);
-                }
+    private void installPackage(String path, Node node) throws RepositoryException, PackageException, IOException {
+        log.info("Content package received at {}. Starting import.\n", path);
+        Session session = node.getSession();
+        JcrPackageManager packMgr = packageService.getPackageManager(session);
+        try (JcrPackage pack = packMgr.open(node)) {
+            if (pack == null) {
+                return;
+            }
+            ImportOptions opts = new ImportOptions();
+            if (packageHandling == PackageHandling.Extract) {
+                pack.extract(opts);
+            } else {
+                pack.install(opts);
             }
-        } catch (Exception e) {
-            log.warn("Error trying to extracting content package on path {}.", path, e);
         }
     }