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/11/22 08:48:33 UTC
svn commit: r1816013 -
/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java
Author: tripod
Date: Wed Nov 22 08:48:33 2017
New Revision: 1816013
URL: http://svn.apache.org/viewvc?rev=1816013&view=rev
Log:
JCRVLT-235 Refuse to create snapshot for empty or root filters.
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=1816013&r1=1816012&r2=1816013&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 Wed Nov 22 08:48:33 2017
@@ -49,6 +49,7 @@ import org.apache.jackrabbit.vault.fs.ap
import org.apache.jackrabbit.vault.fs.api.PathFilterSet;
import org.apache.jackrabbit.vault.fs.api.ProgressTrackerListener;
import org.apache.jackrabbit.vault.fs.api.VaultInputSource;
+import org.apache.jackrabbit.vault.fs.api.WorkspaceFilter;
import org.apache.jackrabbit.vault.fs.config.DefaultMetaInf;
import org.apache.jackrabbit.vault.fs.io.AccessControlHandling;
import org.apache.jackrabbit.vault.fs.io.Archive;
@@ -858,6 +859,13 @@ public class JcrPackageImpl implements J
node.getSession().save();
}
}
+ JcrPackageDefinitionImpl myDef = (JcrPackageDefinitionImpl) getDefinition();
+ WorkspaceFilter filter = myDef.getMetaInf().getFilter();
+ if (filter == null || filter.getFilterSets().isEmpty()) {
+ log.info("Refusing to create snapshot {} due to empty filters", id);
+ return null;
+ }
+
log.debug("Creating snapshot for {}.", id);
JcrPackageManagerImpl packMgr = new JcrPackageManagerImpl(node.getSession());
String path = JcrPackageRegistry.getInstallationPath(id);
@@ -865,9 +873,8 @@ public class JcrPackageImpl implements J
Node folder = packMgr.mkdir(parentPath, true);
JcrPackage snap = mgr.createNew(folder, id, null, true);
JcrPackageDefinitionImpl snapDef = (JcrPackageDefinitionImpl) snap.getDefinition();
- JcrPackageDefinitionImpl myDef = (JcrPackageDefinitionImpl) getDefinition();
snapDef.setId(id, false);
- snapDef.setFilter(myDef.getMetaInf().getFilter(), false);
+ snapDef.setFilter(filter, false);
snapDef.set(JcrPackageDefinition.PN_DESCRIPTION, "Snapshot of package " + myDef.getId().toString(), false);
if (acHandling == null) {
snapDef.set(JcrPackageDefinition.PN_AC_HANDLING, myDef.get(JcrPackageDefinition.PN_AC_HANDLING), false);