Prevent Index & Delete request primaryTerm getter/setter, setShardId setter
This commit is contained in:
parent
6d9ce957d4
commit
0b3be42c10
|
@ -28,6 +28,7 @@ import org.elasticsearch.common.io.stream.StreamInput;
|
|||
import org.elasticsearch.common.io.stream.StreamOutput;
|
||||
import org.elasticsearch.common.lucene.uid.Versions;
|
||||
import org.elasticsearch.index.VersionType;
|
||||
import org.elasticsearch.index.shard.ShardId;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
|
@ -221,4 +222,34 @@ public class DeleteRequest extends ReplicatedWriteRequest<DeleteRequest> impleme
|
|||
public String toString() {
|
||||
return "delete {[" + index + "][" + type + "][" + id + "]}";
|
||||
}
|
||||
|
||||
/**
|
||||
* Override this method from ReplicationAction, this is where we are storing our state in the request object (which we really shouldn't
|
||||
* do). Once the transport client goes away we can move away from making this available, but in the meantime this is dangerous to set or
|
||||
* use because the DeleteRequest object will always be wrapped in a bulk request envelope, which is where this *should* be set.
|
||||
*/
|
||||
@Override
|
||||
public long primaryTerm() {
|
||||
throw new UnsupportedOperationException("primary term should never be set on DeleteRequest");
|
||||
}
|
||||
|
||||
/**
|
||||
* Override this method from ReplicationAction, this is where we are storing our state in the request object (which we really shouldn't
|
||||
* do). Once the transport client goes away we can move away from making this available, but in the meantime this is dangerous to set or
|
||||
* use because the DeleteRequest object will always be wrapped in a bulk request envelope, which is where this *should* be set.
|
||||
*/
|
||||
@Override
|
||||
public void primaryTerm(long term) {
|
||||
throw new UnsupportedOperationException("primary term should never be set on DeleteRequest");
|
||||
}
|
||||
|
||||
/**
|
||||
* Override this method from ReplicationAction, this is where we are storing our state in the request object (which we really shouldn't
|
||||
* do). Once the transport client goes away we can move away from making this available, but in the meantime this is dangerous to set or
|
||||
* use because the DeleteRequest object will always be wrapped in a bulk request envelope, which is where this *should* be set.
|
||||
*/
|
||||
@Override
|
||||
public DeleteRequest setShardId(ShardId shardId) {
|
||||
throw new UnsupportedOperationException("shard id should never be set on DeleteRequest");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,6 +44,7 @@ import org.elasticsearch.common.xcontent.XContentFactory;
|
|||
import org.elasticsearch.common.xcontent.XContentHelper;
|
||||
import org.elasticsearch.common.xcontent.XContentType;
|
||||
import org.elasticsearch.index.VersionType;
|
||||
import org.elasticsearch.index.shard.ShardId;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
@ -608,4 +609,35 @@ public class IndexRequest extends ReplicatedWriteRequest<IndexRequest> implement
|
|||
public long getAutoGeneratedTimestamp() {
|
||||
return autoGeneratedTimestamp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override this method from ReplicationAction, this is where we are storing our state in the request object (which we really shouldn't
|
||||
* do). Once the transport client goes away we can move away from making this available, but in the meantime this is dangerous to set or
|
||||
* use because the IndexRequest object will always be wrapped in a bulk request envelope, which is where this *should* be set.
|
||||
*/
|
||||
@Override
|
||||
public long primaryTerm() {
|
||||
throw new UnsupportedOperationException("primary term should never be set on IndexRequest");
|
||||
}
|
||||
|
||||
/**
|
||||
* Override this method from ReplicationAction, this is where we are storing our state in the request object (which we really shouldn't
|
||||
* do). Once the transport client goes away we can move away from making this available, but in the meantime this is dangerous to set or
|
||||
* use because the IndexRequest object will always be wrapped in a bulk request envelope, which is where this *should* be set.
|
||||
*/
|
||||
@Override
|
||||
public void primaryTerm(long term) {
|
||||
throw new UnsupportedOperationException("primary term should never be set on IndexRequest");
|
||||
}
|
||||
|
||||
/**
|
||||
* Override this method from ReplicationAction, this is where we are storing our state in the request object (which we really shouldn't
|
||||
* do). Once the transport client goes away we can move away from making this available, but in the meantime this is dangerous to set or
|
||||
* use because the IndexRequest object will always be wrapped in a bulk request envelope, which is where this *should* be set.
|
||||
*/
|
||||
@Override
|
||||
public IndexRequest setShardId(ShardId shardId) {
|
||||
throw new UnsupportedOperationException("shard id should never be set on IndexRequest");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue