summaryrefslogtreecommitdiff
path: root/core/src/test/java/org/elasticsearch/index
diff options
context:
space:
mode:
authorAdrien Grand <jpountz@gmail.com>2017-06-09 14:56:23 +0200
committerGitHub <noreply@github.com>2017-06-09 14:56:23 +0200
commit87d19b21c7515352f7dce4097aca88033130cc79 (patch)
treeff695f57d3c8872586de3b4053628964a0d752e1 /core/src/test/java/org/elasticsearch/index
parent5e8b5692556365c5dd2463d85264b5fde07db265 (diff)
`type` and `id` are lost upon serialization of `Translog.Delete`. (#24586)
This was introduced in #24460: the constructor of `Translog.Delete` that takes a `StreamInput` does not set the type and id. To make it a bit more robust, I made fields final so that forgetting to set them would make the compiler complain.
Diffstat (limited to 'core/src/test/java/org/elasticsearch/index')
-rw-r--r--core/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java2
-rw-r--r--core/src/test/java/org/elasticsearch/index/translog/TranslogTests.java22
2 files changed, 19 insertions, 5 deletions
diff --git a/core/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java b/core/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java
index 31a99063fb..16e746a67f 100644
--- a/core/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java
+++ b/core/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java
@@ -1939,7 +1939,7 @@ public class InternalEngineTests extends ESTestCase {
indexResult = engine.index(index);
assertFalse(indexResult.isCreated());
- engine.delete(new Engine.Delete(null, "1", newUid(doc)));
+ engine.delete(new Engine.Delete("doc", "1", newUid(doc)));
index = indexForDoc(doc);
indexResult = engine.index(index);
diff --git a/core/src/test/java/org/elasticsearch/index/translog/TranslogTests.java b/core/src/test/java/org/elasticsearch/index/translog/TranslogTests.java
index b911e9a5a4..ee7073fd53 100644
--- a/core/src/test/java/org/elasticsearch/index/translog/TranslogTests.java
+++ b/core/src/test/java/org/elasticsearch/index/translog/TranslogTests.java
@@ -354,24 +354,24 @@ public class TranslogTests extends ESTestCase {
{
final TranslogStats stats = stats();
assertThat(stats.estimatedNumberOfOperations(), equalTo(2L));
- assertThat(stats.getTranslogSizeInBytes(), equalTo(139L));
+ assertThat(stats.getTranslogSizeInBytes(), equalTo(146L));
}
translog.add(new Translog.Delete("test", "3", 2, newUid("3")));
{
final TranslogStats stats = stats();
assertThat(stats.estimatedNumberOfOperations(), equalTo(3L));
- assertThat(stats.getTranslogSizeInBytes(), equalTo(181L));
+ assertThat(stats.getTranslogSizeInBytes(), equalTo(195L));
}
translog.add(new Translog.NoOp(3, 1, randomAlphaOfLength(16)));
{
final TranslogStats stats = stats();
assertThat(stats.estimatedNumberOfOperations(), equalTo(4L));
- assertThat(stats.getTranslogSizeInBytes(), equalTo(223L));
+ assertThat(stats.getTranslogSizeInBytes(), equalTo(237L));
}
- final long expectedSizeInBytes = 266L;
+ final long expectedSizeInBytes = 280L;
translog.rollGeneration();
{
final TranslogStats stats = stats();
@@ -2263,6 +2263,20 @@ public class TranslogTests extends ESTestCase {
in = out.bytes().streamInput();
Translog.Delete serializedDelete = new Translog.Delete(in);
assertEquals(delete, serializedDelete);
+
+ // simulate legacy delete serialization
+ out = new BytesStreamOutput();
+ out.writeVInt(Translog.Delete.FORMAT_5_0);
+ out.writeString(UidFieldMapper.NAME);
+ out.writeString("my_type#my_id");
+ out.writeLong(3); // version
+ out.writeByte(VersionType.INTERNAL.getValue());
+ out.writeLong(2); // seq no
+ out.writeLong(0); // primary term
+ in = out.bytes().streamInput();
+ serializedDelete = new Translog.Delete(in);
+ assertEquals("my_type", serializedDelete.type());
+ assertEquals("my_id", serializedDelete.id());
}
public void testRollGeneration() throws IOException {