You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by kw...@apache.org on 2022/01/11 10:41:47 UTC

[jackrabbit-filevault] 01/01: JCRVLT-590 remove finalizer and properly close ZipVaultPackage

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

kwin pushed a commit to branch bugfix/JCRVLT-590-remove-finalizer
in repository https://gitbox.apache.org/repos/asf/jackrabbit-filevault.git

commit 88d7762e0748ec10f87eaa0f18fc2deb7989b51b
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Tue Jan 11 11:41:36 2022 +0100

    JCRVLT-590 remove finalizer and properly close ZipVaultPackage
---
 .../packaging/impl/JcrPackageManagerImpl.java      | 35 +++++++++-------------
 .../vault/packaging/impl/ZipVaultPackage.java      |  9 ------
 2 files changed, 14 insertions(+), 30 deletions(-)

diff --git a/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageManagerImpl.java b/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageManagerImpl.java
index 30e137a..01d6e24 100644
--- a/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageManagerImpl.java
+++ b/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageManagerImpl.java
@@ -205,30 +205,24 @@ public class JcrPackageManagerImpl extends PackageManagerImpl implements JcrPack
         } else {
             archive = new ArchiveWrapper(archive);
         }
-        ZipVaultPackage pkg = new ZipVaultPackage(archive, true);
-
-        PackageId pid = pkg.getId();
-        JcrPackage jcrPack = registry.upload(pkg, replace);
-        jcrPack = new JcrPackageImpl(registry, jcrPack.getNode(), pkg);
-        jcrPack.extract(options);
-
         Set<PackageId> ids = new HashSet<>();
-        ids.add(pid);
-
-        if (spfArchive != null) {
-            for (Archive.Entry e: spfArchive.getSubPackageEntries()) {
-                InputStream in = spfArchive.openInputStream(e);
-                if (in != null) {
-                    try (Archive subArchive = new ZipStreamArchive(in)) {
-                        PackageId[] subIds = extract(subArchive, options, replace);
-                        ids.addAll(Arrays.asList(subIds));
+        try (ZipVaultPackage pkg = new ZipVaultPackage(archive, true)) {
+            PackageId pid = pkg.getId();
+            try (JcrPackage jcrPack = registry.upload(pkg, replace)) {
+                jcrPack.extract(options);
+                ids.add(pid);
+        
+                if (spfArchive != null) {
+                    for (Archive.Entry e: spfArchive.getSubPackageEntries()) {
+                        try (InputStream in = spfArchive.openInputStream(e);
+                             Archive subArchive = new ZipStreamArchive(in)) {
+                                PackageId[] subIds = extract(subArchive, options, replace);
+                                ids.addAll(Arrays.asList(subIds));
+                        }
                     }
                 }
             }
         }
-
-        pkg.close();
-        jcrPack.close();
         return ids.toArray(new PackageId[ids.size()]);
     }
 
@@ -248,8 +242,7 @@ public class JcrPackageManagerImpl extends PackageManagerImpl implements JcrPack
     @Override
     public JcrPackage upload(File file, boolean isTmpFile, boolean replace, String nameHint, boolean strict)
             throws RepositoryException, IOException {
-        ZipVaultPackage pack = new ZipVaultPackage(file, isTmpFile, strict);
-        try {
+        try (ZipVaultPackage pack = new ZipVaultPackage(file, isTmpFile, strict)) {
             return registry.upload(pack, replace);
         } catch (PackageExistsException e) {
             throw new ItemExistsException(e.getMessage(), e);
diff --git a/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/ZipVaultPackage.java b/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/ZipVaultPackage.java
index 67fd9c7..a608625 100644
--- a/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/ZipVaultPackage.java
+++ b/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/ZipVaultPackage.java
@@ -318,13 +318,4 @@ public class ZipVaultPackage extends PackagePropertiesImpl implements VaultPacka
         return getMetaInf().getProperties();
     }
 
-    @Override
-    protected void finalize() throws Throwable {
-        try {
-            close();
-        } catch (Throwable e) {
-            // ignore
-        }
-        super.finalize();
-    }
 }
\ No newline at end of file