You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by tr...@apache.org on 2017/03/03 02:32:46 UTC

svn commit: r1785214 - /jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java

Author: tripod
Date: Fri Mar  3 02:32:46 2017
New Revision: 1785214

URL: http://svn.apache.org/viewvc?rev=1785214&view=rev
Log:
JCRVLT-162 package installation should not fully open the package when retrieving the package id

Modified:
    jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java?rev=1785214&r1=1785213&r2=1785214&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java Fri Mar  3 02:32:46 2017
@@ -80,6 +80,11 @@ import org.slf4j.LoggerFactory;
 public class JcrPackageImpl implements JcrPackage {
 
     /**
+     * max allowed package size for using a memory archive
+     */
+    public static final long MAX_MEMORY_ARCHIVE_SIZE = 1024*1024;
+
+    /**
      * default logger
      */
     private static final Logger log = LoggerFactory.getLogger(JcrPackageImpl.class);
@@ -300,7 +305,7 @@ public class JcrPackageImpl implements J
             } catch (RepositoryException e) {
                 // ignore
             }
-            if (!forceFileArchive && size >= 0 && size < 1024*1024) {
+            if (!forceFileArchive && size >= 0 && size < MAX_MEMORY_ARCHIVE_SIZE) {
                 MemoryArchive archive = new MemoryArchive(false);
                 InputStream in = getData().getStream();
                 try {
@@ -433,7 +438,11 @@ public class JcrPackageImpl implements J
 
                     // loop in the list of packages returned previously by package manager
                     for (JcrPackage listedPackage: listPackages) {
-                        PackageId listedPackageId = listedPackage.getPackage().getId();
+                        JcrPackageDefinition listedPackageDef = listedPackage.getDefinition();
+                        if (listedPackageDef == null) {
+                            continue;
+                        }
+                        PackageId listedPackageId = listedPackageDef.getId();
                         if (listedPackageId.equals(pId)) {
                             continue;
                         }
@@ -469,7 +478,7 @@ public class JcrPackageImpl implements J
             SubPackageHandling sb = pack.getSubPackageHandling();
             for (JcrPackageImpl p: subPacks) {
                 boolean skip = false;
-                PackageId id = p.getPackage().getId();
+                PackageId id = p.getDefinition().getId();
                 SubPackageHandling.Option option = sb.getOption(id);
                 String msg;
                 if (option == SubPackageHandling.Option.ADD || option == SubPackageHandling.Option.IGNORE) {