This is an automated email from the ASF dual-hosted git repository.
andor pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zookeeper.git
The following commit(s) were added to refs/heads/master by this push:
new 4b01c93 ZOOKEEPER-3332: TxnLogToolkit should print multi transactions
readably
4b01c93 is described below
commit 4b01c9374586423a96cc8ba1cdf707fe77880cf9
Author: maoling <[email protected]>
AuthorDate: Fri Apr 12 19:08:38 2019 +0200
ZOOKEEPER-3332: TxnLogToolkit should print multi transactions readably
- more details in
[ZOOKEEPER-3332](https://issues.apache.org/jira/browse/ZOOKEEPER-3332).
Author: maoling <[email protected]>
Reviewers: [email protected]
Closes #868 from maoling/ZOOKEEPER-3332
---
.../java/org/apache/zookeeper/server/LogFormatter.java | 3 +++
.../java/org/apache/zookeeper/server/TraceFormatter.java | 16 +++++++++++++++-
.../zookeeper/server/persistence/TxnLogToolkit.java | 14 ++++++++++++++
3 files changed, 32 insertions(+), 1 deletion(-)
diff --git
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/LogFormatter.java
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/LogFormatter.java
index 92ac503..e980fc1 100644
---
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/LogFormatter.java
+++
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/LogFormatter.java
@@ -37,6 +37,9 @@ import org.apache.zookeeper.server.persistence.FileTxnLog;
import org.apache.zookeeper.server.util.SerializeUtils;
import org.apache.zookeeper.txn.TxnHeader;
+/**
+ * @deprecated deprecated in 3.5.5, use @see TxnLogToolkit instead
+ */
@InterfaceAudience.Public
public class LogFormatter {
private static final Logger LOG =
LoggerFactory.getLogger(LogFormatter.class);
diff --git
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/TraceFormatter.java
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/TraceFormatter.java
index 473a3bf..0fbfd2c 100644
---
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/TraceFormatter.java
+++
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/TraceFormatter.java
@@ -48,7 +48,7 @@ public class TraceFormatter {
case OpCode.exists:
return "exists";
case OpCode.getData:
- return "getDate";
+ return "getData";
case OpCode.setData:
return "setData";
case OpCode.multi:
@@ -75,6 +75,20 @@ public class TraceFormatter {
return "error";
case OpCode.reconfig:
return "reconfig";
+ case OpCode.check:
+ return "check";
+ case OpCode.sync:
+ return "sync";
+ case OpCode.checkWatches:
+ return "checkWatches";
+ case OpCode.removeWatches:
+ return "removeWatches";
+ case OpCode.auth:
+ return "auth";
+ case OpCode.setWatches:
+ return "setWatches";
+ case OpCode.sasl:
+ return "sasl";
default:
return "unknown " + op;
}
diff --git
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/TxnLogToolkit.java
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/TxnLogToolkit.java
index 50ffe2f..41d71e3 100644
---
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/TxnLogToolkit.java
+++
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/TxnLogToolkit.java
@@ -35,7 +35,9 @@ import org.apache.zookeeper.server.util.SerializeUtils;
import org.apache.zookeeper.txn.CreateContainerTxn;
import org.apache.zookeeper.txn.CreateTTLTxn;
import org.apache.zookeeper.txn.CreateTxn;
+import org.apache.zookeeper.txn.MultiTxn;
import org.apache.zookeeper.txn.SetDataTxn;
+import org.apache.zookeeper.txn.Txn;
import org.apache.zookeeper.txn.TxnHeader;
import java.io.BufferedInputStream;
@@ -51,6 +53,7 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.text.DateFormat;
import java.util.Date;
+import java.util.List;
import java.util.Scanner;
import java.util.zip.Adler32;
import java.util.zip.Checksum;
@@ -312,6 +315,17 @@ public class TxnLogToolkit implements Closeable {
txnData.append(createTTLTxn.getPath() + "," + new
String(createTTLTxn.getData()))
.append("," + createTTLTxn.getAcl() + "," +
createTTLTxn.getParentCVersion())
.append("," + createTTLTxn.getTtl());
+ } else if (txn instanceof MultiTxn) {
+ MultiTxn multiTxn = ((MultiTxn) txn);
+ List<Txn> txnList = multiTxn.getTxns();
+ for (int i = 0; i < txnList.size(); i++ ) {
+ Txn t = txnList.get(i);
+ if (i == 0) {
+ txnData.append(TraceFormatter.op2String(t.getType()) + ":"
+ new String(t.getData()));
+ } else {
+ txnData.append(";" + TraceFormatter.op2String(t.getType())
+ ":" + new String(t.getData()));
+ }
+ }
} else {
txnData.append(txn.toString());
}