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 {

Reply via email to