You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ph...@apache.org on 2018/05/10 20:15:06 UTC
zookeeper git commit: ZOOKEEPER-3039: TxnLogToolkit uses Scanner badly
Repository: zookeeper
Updated Branches:
refs/heads/master 6e64125f2 -> 2fa315b7d
ZOOKEEPER-3039: TxnLogToolkit uses Scanner badly
Fixed by creating a single Scanner for all queries in the main() method.
Author: Andor Molnar <an...@cloudera.com>
Reviewers: phunt@apache.org
Closes #517 from anmolnar/ZOOKEEPER-3039 and squashes the following commits:
a35e2e280 [Andor Molnar] ZOOKEEPER-3039. Optimize imports
a196443cb [Andor Molnar] ZOOKEEPER-3039. Use the same Scanner for all queries
Change-Id: Icf66888d4e6ad902615ed8ffde58a5a8fdd41237
Project: http://git-wip-us.apache.org/repos/asf/zookeeper/repo
Commit: http://git-wip-us.apache.org/repos/asf/zookeeper/commit/2fa315b7
Tree: http://git-wip-us.apache.org/repos/asf/zookeeper/tree/2fa315b7
Diff: http://git-wip-us.apache.org/repos/asf/zookeeper/diff/2fa315b7
Branch: refs/heads/master
Commit: 2fa315b7d0ed65828479fcdcc9e76ca8552fba4a
Parents: 6e64125
Author: Andor Molnar <an...@cloudera.com>
Authored: Thu May 10 13:14:24 2018 -0700
Committer: Patrick Hunt <ph...@apache.org>
Committed: Thu May 10 13:14:24 2018 -0700
----------------------------------------------------------------------
.../server/persistence/TxnLogToolkit.java | 32 +++++++++-----------
.../server/persistence/TxnLogToolkitTest.java | 4 +--
2 files changed, 16 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/zookeeper/blob/2fa315b7/src/java/main/org/apache/zookeeper/server/persistence/TxnLogToolkit.java
----------------------------------------------------------------------
diff --git a/src/java/main/org/apache/zookeeper/server/persistence/TxnLogToolkit.java b/src/java/main/org/apache/zookeeper/server/persistence/TxnLogToolkit.java
index c6703ea..887d98b 100644
--- a/src/java/main/org/apache/zookeeper/server/persistence/TxnLogToolkit.java
+++ b/src/java/main/org/apache/zookeeper/server/persistence/TxnLogToolkit.java
@@ -39,8 +39,6 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
import java.text.DateFormat;
import java.util.Date;
import java.util.Scanner;
@@ -98,7 +96,7 @@ public class TxnLogToolkit implements Closeable {
*/
public static void main(String[] args) throws Exception {
try (final TxnLogToolkit lt = parseCommandLine(args)) {
- lt.dump(new InputStreamReader(System.in));
+ lt.dump(new Scanner(System.in));
lt.printStat();
} catch (TxnLogToolkitParseException e) {
System.err.println(e.getMessage() + "\n");
@@ -131,7 +129,7 @@ public class TxnLogToolkit implements Closeable {
}
}
- public void dump(Reader input) throws Exception {
+ public void dump(Scanner scanner) throws Exception {
crcFixed = 0;
FileHeader fhdr = new FileHeader();
@@ -172,7 +170,7 @@ public class TxnLogToolkit implements Closeable {
if (recoveryMode) {
if (!force) {
printTxn(bytes, "CRC ERROR");
- if (askForFix(input)) {
+ if (askForFix(scanner)) {
crcValue = crc.getValue();
++crcFixed;
}
@@ -201,19 +199,17 @@ public class TxnLogToolkit implements Closeable {
}
}
- private boolean askForFix(Reader input) throws TxnLogToolkitException {
- try (Scanner scanner = new Scanner(input)) {
- while (true) {
- System.out.print("Would you like to fix it (Yes/No/Abort) ? ");
- char answer = Character.toUpperCase(scanner.next().charAt(0));
- switch (answer) {
- case 'Y':
- return true;
- case 'N':
- return false;
- case 'A':
- throw new TxnLogToolkitException(0, "Recovery aborted.");
- }
+ private boolean askForFix(Scanner scanner) throws TxnLogToolkitException {
+ while (true) {
+ System.out.print("Would you like to fix it (Yes/No/Abort) ? ");
+ char answer = Character.toUpperCase(scanner.next().charAt(0));
+ switch (answer) {
+ case 'Y':
+ return true;
+ case 'N':
+ return false;
+ case 'A':
+ throw new TxnLogToolkitException(0, "Recovery aborted.");
}
}
}
http://git-wip-us.apache.org/repos/asf/zookeeper/blob/2fa315b7/src/java/test/org/apache/zookeeper/server/persistence/TxnLogToolkitTest.java
----------------------------------------------------------------------
diff --git a/src/java/test/org/apache/zookeeper/server/persistence/TxnLogToolkitTest.java b/src/java/test/org/apache/zookeeper/server/persistence/TxnLogToolkitTest.java
index dd34fa5..79a69c4 100644
--- a/src/java/test/org/apache/zookeeper/server/persistence/TxnLogToolkitTest.java
+++ b/src/java/test/org/apache/zookeeper/server/persistence/TxnLogToolkitTest.java
@@ -29,7 +29,7 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintStream;
-import java.io.StringReader;
+import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -138,7 +138,7 @@ public class TxnLogToolkitTest {
TxnLogToolkit lt = new TxnLogToolkit(true, false, logfile.toString(), false);
// Act
- lt.dump(new StringReader("y\n"));
+ lt.dump(new Scanner("y\n"));
// Assert
String output = outContent.toString();