summaryrefslogtreecommitdiff
path: root/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumZooKeeperServer.java
diff options
context:
space:
mode:
Diffstat (limited to 'zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumZooKeeperServer.java')
-rw-r--r--zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumZooKeeperServer.java14
1 files changed, 6 insertions, 8 deletions
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumZooKeeperServer.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumZooKeeperServer.java
index 2f24347b7..240936956 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumZooKeeperServer.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumZooKeeperServer.java
@@ -20,7 +20,6 @@ package org.apache.zookeeper.server.quorum;
import java.io.IOException;
import java.io.PrintWriter;
-import java.nio.ByteBuffer;
import java.util.Objects;
import java.util.function.BiConsumer;
import java.util.stream.Collectors;
@@ -32,10 +31,12 @@ import org.apache.zookeeper.ZooDefs.OpCode;
import org.apache.zookeeper.metrics.MetricsContext;
import org.apache.zookeeper.proto.CreateRequest;
import org.apache.zookeeper.server.Request;
+import org.apache.zookeeper.server.RequestRecord;
import org.apache.zookeeper.server.ServerMetrics;
import org.apache.zookeeper.server.ZKDatabase;
import org.apache.zookeeper.server.ZooKeeperServer;
import org.apache.zookeeper.server.persistence.FileTxnSnapLog;
+import org.apache.zookeeper.txn.CreateSessionTxn;
/**
* Abstract base class for all ZooKeeperServers that participate in
@@ -76,8 +77,7 @@ public abstract class QuorumZooKeeperServer extends ZooKeeperServer {
}
if (OpCode.multi == request.type) {
- MultiOperationRecord multiTransactionRecord = new MultiOperationRecord();
- request.readRequestRecord(multiTransactionRecord);
+ MultiOperationRecord multiTransactionRecord = request.readRequestRecord(MultiOperationRecord::new);
boolean containsEphemeralCreate = false;
for (Op op : multiTransactionRecord) {
if (op.getType() == OpCode.create || op.getType() == OpCode.create2) {
@@ -93,8 +93,7 @@ public abstract class QuorumZooKeeperServer extends ZooKeeperServer {
return null;
}
} else {
- CreateRequest createRequest = new CreateRequest();
- request.readRequestRecord(createRequest);
+ CreateRequest createRequest = request.readRequestRecord(CreateRequest::new);
CreateMode createMode = CreateMode.fromFlag(createRequest.getFlags());
if (!createMode.isEphemeral()) {
return null;
@@ -116,9 +115,8 @@ public abstract class QuorumZooKeeperServer extends ZooKeeperServer {
synchronized (upgradeableSessionTracker) {
if (upgradeableSessionTracker.isLocalSession(sessionId)) {
int timeout = upgradeableSessionTracker.upgradeSession(sessionId);
- ByteBuffer to = ByteBuffer.allocate(4);
- to.putInt(timeout);
- return new Request(null, sessionId, 0, OpCode.createSession, to, null);
+ CreateSessionTxn txn = new CreateSessionTxn(timeout);
+ return new Request(null, sessionId, 0, OpCode.createSession, RequestRecord.fromRecord(txn), null);
}
}
return null;