mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-03-27 18:38:41 +00:00
Remove rest content unsafe usage
Original commit: elastic/x-pack-elasticsearch@4725a3de22
This commit is contained in:
parent
8fad9937f7
commit
02ad78743e
@ -34,7 +34,7 @@ public class RestPutWatchAction extends WatcherRestHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleRequest(final RestRequest request, RestChannel channel, WatcherClient client) throws Exception {
|
protected void handleRequest(final RestRequest request, RestChannel channel, WatcherClient client) throws Exception {
|
||||||
PutWatchRequest putWatchRequest = new PutWatchRequest(request.param("id"), request.content(), request.contentUnsafe());
|
PutWatchRequest putWatchRequest = new PutWatchRequest(request.param("id"), request.content());
|
||||||
putWatchRequest.masterNodeTimeout(request.paramAsTime("master_timeout", putWatchRequest.masterNodeTimeout()));
|
putWatchRequest.masterNodeTimeout(request.paramAsTime("master_timeout", putWatchRequest.masterNodeTimeout()));
|
||||||
client.putWatch(putWatchRequest, new RestBuilderListener<PutWatchResponse>(channel) {
|
client.putWatch(putWatchRequest, new RestBuilderListener<PutWatchResponse>(channel) {
|
||||||
@Override
|
@Override
|
||||||
|
@ -28,20 +28,17 @@ public class PutWatchRequest extends MasterNodeOperationRequest<PutWatchRequest>
|
|||||||
|
|
||||||
private String id;
|
private String id;
|
||||||
private BytesReference source;
|
private BytesReference source;
|
||||||
private boolean sourceUnsafe;
|
|
||||||
|
|
||||||
PutWatchRequest() {
|
PutWatchRequest() {
|
||||||
this(null, null, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public PutWatchRequest(String id, WatchSourceBuilder source) {
|
public PutWatchRequest(String id, WatchSourceBuilder source) {
|
||||||
this(id, source.buildAsBytes(XContentType.JSON), false);
|
this(id, source.buildAsBytes(XContentType.JSON));
|
||||||
}
|
}
|
||||||
|
|
||||||
public PutWatchRequest(String id, BytesReference source, boolean sourceUnsafe) {
|
public PutWatchRequest(String id, BytesReference source) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.source = source;
|
this.source = source;
|
||||||
this.sourceUnsafe = sourceUnsafe;
|
|
||||||
masterNodeTimeout(DEFAULT_TIMEOUT);
|
masterNodeTimeout(DEFAULT_TIMEOUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,22 +75,6 @@ public class PutWatchRequest extends MasterNodeOperationRequest<PutWatchRequest>
|
|||||||
*/
|
*/
|
||||||
public void setSource(BytesReference source) {
|
public void setSource(BytesReference source) {
|
||||||
this.source = source;
|
this.source = source;
|
||||||
this.sourceUnsafe = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the source of the watch with boolean to control source safety
|
|
||||||
*/
|
|
||||||
public void setSource(BytesReference source, boolean sourceUnsafe) {
|
|
||||||
this.source = source;
|
|
||||||
this.sourceUnsafe = sourceUnsafe;
|
|
||||||
}
|
|
||||||
|
|
||||||
void beforeLocalFork() {
|
|
||||||
if (sourceUnsafe) {
|
|
||||||
source = source.copyBytesArray();
|
|
||||||
sourceUnsafe = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -113,7 +94,6 @@ public class PutWatchRequest extends MasterNodeOperationRequest<PutWatchRequest>
|
|||||||
super.readFrom(in);
|
super.readFrom(in);
|
||||||
id = in.readString();
|
id = in.readString();
|
||||||
source = in.readBytesReference();
|
source = in.readBytesReference();
|
||||||
sourceUnsafe = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -62,7 +62,6 @@ public class TransportPutWatchAction extends WatcherTransportAction<PutWatchRequ
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ClusterBlockException checkBlock(PutWatchRequest request, ClusterState state) {
|
protected ClusterBlockException checkBlock(PutWatchRequest request, ClusterState state) {
|
||||||
request.beforeLocalFork(); // This is the best place to make the watch source safe
|
|
||||||
return state.blocks().indexBlockedException(ClusterBlockLevel.WRITE, WatchStore.INDEX);
|
return state.blocks().indexBlockedException(ClusterBlockLevel.WRITE, WatchStore.INDEX);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user