You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by to...@apache.org on 2017/02/16 10:32:43 UTC
svn commit: r1783193 -
/jackrabbit/oak/branches/1.6/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/MigrationOptions.java
Author: tomekr
Date: Thu Feb 16 10:32:43 2017
New Revision: 1783193
URL: http://svn.apache.org/viewvc?rev=1783193&view=rev
Log:
OAK-5666: oak-upgrade should validate the paths
Modified:
jackrabbit/oak/branches/1.6/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/MigrationOptions.java
Modified: jackrabbit/oak/branches/1.6/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/MigrationOptions.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/MigrationOptions.java?rev=1783193&r1=1783192&r2=1783193&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.6/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/MigrationOptions.java (original)
+++ jackrabbit/oak/branches/1.6/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/MigrationOptions.java Thu Feb 16 10:32:43 2017
@@ -22,6 +22,7 @@ import java.text.SimpleDateFormat;
import java.util.Calendar;
import org.apache.commons.lang.StringUtils;
+import org.apache.jackrabbit.oak.commons.PathUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -89,7 +90,7 @@ public class MigrationOptions {
private final Boolean srcExternalBlobs;
- public MigrationOptions(MigrationCliArguments args) {
+ public MigrationOptions(MigrationCliArguments args) throws CliArgumentException {
this.disableMmap = args.hasOption(OptionParserFactory.DISABLE_MMAP);
this.copyBinaries = args.hasOption(OptionParserFactory.COPY_BINARIES);
if (args.hasOption(OptionParserFactory.CACHE_SIZE)) {
@@ -110,9 +111,9 @@ public class MigrationOptions {
} else {
this.copyOrphanedVersions = epoch;
}
- this.includePaths = args.getOptionList(OptionParserFactory.INCLUDE_PATHS);
- this.excludePaths = args.getOptionList(OptionParserFactory.EXCLUDE_PATHS);
- this.mergePaths = args.getOptionList(OptionParserFactory.MERGE_PATHS);
+ this.includePaths = checkPaths(args.getOptionList(OptionParserFactory.INCLUDE_PATHS));
+ this.excludePaths = checkPaths(args.getOptionList(OptionParserFactory.EXCLUDE_PATHS));
+ this.mergePaths = checkPaths(args.getOptionList(OptionParserFactory.MERGE_PATHS));
this.includeIndex = args.hasOption(OptionParserFactory.INCLUDE_INDEX);
this.failOnError = args.hasOption(OptionParserFactory.FAIL_ON_ERROR);
this.earlyShutdown = args.hasOption(OptionParserFactory.EARLY_SHUTDOWN);
@@ -369,4 +370,16 @@ public class MigrationOptions {
return srcExternalBlobs;
}
+ private static String[] checkPaths(String[] paths) throws CliArgumentException {
+ if (paths == null) {
+ return paths;
+ }
+ for (String p : paths) {
+ if (!PathUtils.isValid(p)) {
+ throw new CliArgumentException("Following path is not valid: " + p, 1);
+ }
+ }
+ return paths;
+ }
+
}