Author: adulceanu
Date: Fri Feb  3 09:47:47 2017
New Revision: 1781520

URL: http://svn.apache.org/viewvc?rev=1781520&view=rev
Log:
OAK-5277 - The check command defines a useless default value for the bin option

Modified:
    jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/overview.md
    
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CheckCommand.java

Modified: 
jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/overview.md
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/overview.md?rev=1781520&r1=1781519&r2=1781520&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/overview.md 
(original)
+++ 
jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/overview.md 
Fri Feb  3 09:47:47 2017
@@ -548,9 +548,9 @@ If not specified, progress information m
 If `SECS` equals `0`, every progress information message is printed.
 
 If the `--bin` option is specified, the tool will scan the content of binary 
properties, up to the specified length `LENGTH`.
-The default value for `LENGTH` is `0`, effectively disabling the traversal of 
binary properties.
+If not specified, the full traversal of binary properties is enabled.
 If `LENGTH` is set to a value greater than `0`, only the initial `LENGTH` 
bytes of binary properties are traversed.
-If `LENGTH` is set to `-1`, binary properties are fully traversed.
+If `LENGTH` is set to `0`, the traversal is disabled.
 The `--bin` property has no effect on binary properties stored in an external 
Blob Store.
 
 ### <a name="compact"/> Compact

Modified: 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CheckCommand.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CheckCommand.java?rev=1781520&r1=1781519&r2=1781520&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CheckCommand.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CheckCommand.java
 Fri Feb  3 09:47:47 2017
@@ -20,6 +20,7 @@ package org.apache.jackrabbit.oak.run;
 import static 
org.apache.jackrabbit.oak.plugins.segment.FileStoreHelper.isValidFileStoreOrFail;
 
 import java.io.File;
+import java.io.IOException;
 
 import joptsimple.ArgumentAcceptingOptionSpec;
 import joptsimple.OptionParser;
@@ -40,23 +41,30 @@ class CheckCommand implements Command {
                 "notify", "number of seconds between progress notifications")
                 
.withRequiredArg().ofType(Long.class).defaultsTo(Long.MAX_VALUE);
         ArgumentAcceptingOptionSpec<Long> bin = parser.accepts(
-                "bin", "read the n first bytes from binary properties. -1 for 
all bytes.")
-                .withOptionalArg().ofType(Long.class).defaultsTo(0L);
+                "bin", "read the first n bytes from binary properties.")
+                .withRequiredArg().ofType(Long.class);
         OptionSpec segment = parser.accepts("segment", "Use oak-segment 
instead of oak-segment-tar");
 
         OptionSet options = parser.parse(args);
 
         if (options.nonOptionArguments().size() != 1) {
-            System.err.println("usage: check path/to/segmentstore <options>");
-            parser.printHelpOn(System.err);
-            System.exit(1);
+            printUsage(parser);
         }
 
         File dir = isValidFileStoreOrFail(new 
File(options.nonOptionArguments().get(0).toString()));
         String journalFileName = journal.value(options);
         boolean fullTraversal = options.has(deep);
         long debugLevel = notify.value(options);
-        long binLen = bin.value(options);
+
+        long binLen = -1L;
+        
+        if (options.has(bin)) {
+            binLen = bin.value(options);
+
+            if (binLen < 0) {
+                printUsage(parser, "The value for --bin option must be a 
positive number!");
+            }
+        }
 
         if (options.has(segment)) {
             SegmentUtils.check(dir, journalFileName, fullTraversal, 
debugLevel, binLen);
@@ -65,4 +73,14 @@ class CheckCommand implements Command {
         }
     }
 
+    private void printUsage(OptionParser parser, String... messages) throws 
IOException {
+        for (String message : messages) {
+            System.err.println(message);
+        }
+        
+        System.err.println("usage: check path/to/segmentstore <options>");
+        parser.printHelpOn(System.err);
+        System.exit(1);
+    }
+
 }


Reply via email to