Skip to content

Commit 7057301

Browse files
committed
Pass AdminRequestHandler's custom payload at construction time
This allows having a single start() method, which will simplify throttling those requests.
1 parent c6bdbb4 commit 7057301

4 files changed

Lines changed: 19 additions & 11 deletions

File tree

core/src/main/java/com/datastax/oss/driver/internal/core/adminrequest/AdminRequestHandler.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ public static AdminRequestHandler query(
6262
if (!parameters.isEmpty()) {
6363
debugString += " with parameters " + parameters;
6464
}
65-
return new AdminRequestHandler(channel, message, timeout, logPrefix, debugString);
65+
return new AdminRequestHandler(
66+
channel, message, Frame.NO_PAYLOAD, timeout, logPrefix, debugString);
6667
}
6768

6869
public static AdminRequestHandler query(
@@ -72,6 +73,7 @@ public static AdminRequestHandler query(
7273

7374
private final DriverChannel channel;
7475
private final Message message;
76+
private final Map<String, ByteBuffer> customPayload;
7577
private final Duration timeout;
7678
private final String logPrefix;
7779
private final String debugString;
@@ -83,21 +85,19 @@ public static AdminRequestHandler query(
8385
public AdminRequestHandler(
8486
DriverChannel channel,
8587
Message message,
88+
Map<String, ByteBuffer> customPayload,
8689
Duration timeout,
8790
String logPrefix,
8891
String debugString) {
8992
this.channel = channel;
9093
this.message = message;
94+
this.customPayload = customPayload;
9195
this.timeout = timeout;
9296
this.logPrefix = logPrefix;
9397
this.debugString = debugString;
9498
}
9599

96100
public CompletionStage<AdminResult> start() {
97-
return start(Frame.NO_PAYLOAD);
98-
}
99-
100-
public CompletionStage<AdminResult> start(Map<String, ByteBuffer> customPayload) {
101101
LOG.debug("[{}] Executing {}", logPrefix, this);
102102
channel.write(message, false, customPayload, this).addListener(this::onWriteComplete);
103103
return result;
@@ -158,7 +158,12 @@ private AdminRequestHandler copy(ByteBuffer pagingState) {
158158
QueryOptions newOptions =
159159
buildQueryOptions(currentOptions.pageSize, currentOptions.namedValues, pagingState);
160160
return new AdminRequestHandler(
161-
channel, new Query(current.query, newOptions), timeout, logPrefix, debugString);
161+
channel,
162+
new Query(current.query, newOptions),
163+
customPayload,
164+
timeout,
165+
logPrefix,
166+
debugString);
162167
}
163168

164169
private static QueryOptions buildQueryOptions(

core/src/main/java/com/datastax/oss/driver/internal/core/cql/CqlPrepareHandlerBase.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,9 +283,11 @@ private CompletionStage<Void> prepareOnOtherNode(Node node) {
283283
return CompletableFuture.completedFuture(null);
284284
} else {
285285
AdminRequestHandler handler =
286-
new AdminRequestHandler(channel, message, timeout, logPrefix, message.toString());
286+
new AdminRequestHandler(
287+
channel, message, request.getCustomPayload(), timeout, logPrefix, message.toString());
288+
287289
return handler
288-
.start(request.getCustomPayload())
290+
.start()
289291
.handle(
290292
(result, error) -> {
291293
if (error == null) {

core/src/main/java/com/datastax/oss/driver/internal/core/cql/CqlRequestHandlerBase.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -476,11 +476,12 @@ private void processErrorResponse(Error errorMessage) {
476476
new AdminRequestHandler(
477477
channel,
478478
reprepareMessage,
479+
repreparePayload.customPayload,
479480
timeout,
480481
logPrefix,
481482
"Reprepare " + reprepareMessage.toString());
482483
reprepareHandler
483-
.start(repreparePayload.customPayload)
484+
.start()
484485
.handle(
485486
(result, exception) -> {
486487
if (exception != null) {

core/src/main/java/com/datastax/oss/driver/internal/core/session/ReprepareOnUp.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ private void startWorker() {
232232
protected CompletionStage<AdminResult> queryAsync(
233233
Message message, Map<String, ByteBuffer> customPayload, String debugString) {
234234
AdminRequestHandler reprepareHandler =
235-
new AdminRequestHandler(channel, message, timeout, logPrefix, debugString);
236-
return reprepareHandler.start(customPayload);
235+
new AdminRequestHandler(channel, message, customPayload, timeout, logPrefix, debugString);
236+
return reprepareHandler.start();
237237
}
238238
}

0 commit comments

Comments
 (0)