This is an automated email from the ASF dual-hosted git repository. kwin pushed a commit to branch bugfix/improve-exception-handling-for-invalid-packages in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-cpconverter.git
commit 962df2f8aa98058657501629a0785d26f196982b Author: Konrad Windszus <[email protected]> AuthorDate: Wed Aug 20 12:15:03 2025 +0200 SLING-12895 Improve exception handling for invalid content packages Prevents NPE for ZIP files not having a package id. --- .../feature/cpconverter/vltpkg/BaseVaultPackageScanner.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/BaseVaultPackageScanner.java b/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/BaseVaultPackageScanner.java index 6e15d74..5938753 100644 --- a/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/BaseVaultPackageScanner.java +++ b/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/BaseVaultPackageScanner.java @@ -53,9 +53,14 @@ public abstract class BaseVaultPackageScanner { this.strictValidation = strictValidation; } - public @NotNull VaultPackage open(@NotNull File vaultPackage) throws IOException, ConverterException { - requireNonNull(vaultPackage, "Impossible to process a null vault package"); - return packageManager.open(vaultPackage, strictValidation); + public @NotNull VaultPackage open(@NotNull File vaultPackagePath) throws IOException, ConverterException { + requireNonNull(vaultPackagePath, "Impossible to process a null vault package"); + VaultPackage vaultPackage = packageManager.open(vaultPackagePath, strictValidation); + if (!vaultPackage.isValid()) { + vaultPackage.close(); + throw new ConverterException("The package " + vaultPackagePath.getAbsolutePath() + " is not valid (does not contain a mandatory filter)."); + } + return vaultPackage; } public final void traverse(@NotNull File vaultPackageFile, boolean closeOnTraversed, String runMode) throws IOException, ConverterException {
