SLING-7747: send http response error code when package cannot be opened
diff --git a/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java b/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java
index 66fd0b3..3248e88 100644
--- a/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java
+++ b/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java
@@ -164,6 +164,10 @@
@Override
protected DistributionPackage getPackageInternal(@Nonnull ResourceResolver resourceResolver, @Nonnull String id) {
- return new FileDistributionPackage(new File(tempDirectory, id), getType(), null, null);
+ File file = new File(tempDirectory, id);
+ if (!file.exists()) {
+ return null;
+ }
+ return new FileDistributionPackage(file, getType(), null, null);
}
}
diff --git a/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java b/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java
index 6662b13..272227e 100644
--- a/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java
+++ b/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java
@@ -113,8 +113,6 @@
}
}
- } catch (Exception ex) {
- log.error("Error exporting package", ex);
} finally {
DistributionPackageUtils.closeSafely(distributionPackage);
}
diff --git a/src/main/java/org/apache/sling/distribution/servlet/DistributionPackageExporterServlet.java b/src/main/java/org/apache/sling/distribution/servlet/DistributionPackageExporterServlet.java
index c7ba4de..9c98878 100644
--- a/src/main/java/org/apache/sling/distribution/servlet/DistributionPackageExporterServlet.java
+++ b/src/main/java/org/apache/sling/distribution/servlet/DistributionPackageExporterServlet.java
@@ -107,7 +107,7 @@
bytesCopied = IOUtils.copy(inputStream, response.getOutputStream());
} catch (IOException e) {
- log.error("cannot process package", e);
+ throw new RuntimeException("cannot process package", e);
} finally {
IOUtils.closeQuietly(inputStream);
}