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());
         }

Reply via email to