diff --git a/src/main/java/org/elasticsearch/action/update/UpdateRequest.java b/src/main/java/org/elasticsearch/action/update/UpdateRequest.java index ac23bbe59bc..d9e0559da75 100644 --- a/src/main/java/org/elasticsearch/action/update/UpdateRequest.java +++ b/src/main/java/org/elasticsearch/action/update/UpdateRequest.java @@ -571,9 +571,6 @@ public class UpdateRequest extends InstanceShardOperationRequest public void docAsUpsert(boolean shouldUpsertDoc) { this.docAsUpsert = shouldUpsertDoc; - if (this.doc != null && this.upsertRequest == null) { - upsert(doc); - } } @Override diff --git a/src/test/java/org/elasticsearch/test/integration/update/UpdateTests.java b/src/test/java/org/elasticsearch/test/integration/update/UpdateTests.java index 758eb2a3a49..cf7ada92757 100644 --- a/src/test/java/org/elasticsearch/test/integration/update/UpdateTests.java +++ b/src/test/java/org/elasticsearch/test/integration/update/UpdateTests.java @@ -183,6 +183,20 @@ public class UpdateTests extends AbstractSharedClusterTest { assertThat(updateResponse.getGetResult().sourceAsMap().get("bar").toString(), equalTo("baz")); } + @Test + public void testNotUpsertDoc() throws Exception { + createIndex(); + ClusterHealthResponse clusterHealth = client().admin().cluster().prepareHealth().setWaitForEvents(Priority.LANGUID).setWaitForGreenStatus().execute().actionGet(); + assertThat(clusterHealth.isTimedOut(), equalTo(false)); + assertThat(clusterHealth.getStatus(), equalTo(ClusterHealthStatus.GREEN)); + + assertThrows(client().prepareUpdate("test", "type1", "1") + .setDoc(XContentFactory.jsonBuilder().startObject().field("bar", "baz").endObject()) + .setDocAsUpsert(false) + .setFields("_source") + .execute(), DocumentMissingException.class); + } + @Test public void testUpsertFields() throws Exception { createIndex();