From cd8e02351b78099614b2f8feddb15fc5eef071b8 Mon Sep 17 00:00:00 2001 From: Adrien Grand Date: Tue, 14 Oct 2014 12:15:29 +0200 Subject: [PATCH] Internal: Fix serialization of PendingClusterTask.timeInQueue. This parameter is serialized as a vLong while it could sometimes be negative. Close #8077 --- .../cluster/service/PendingClusterTask.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/elasticsearch/cluster/service/PendingClusterTask.java b/src/main/java/org/elasticsearch/cluster/service/PendingClusterTask.java index 9896d885945..bd85ff43ca3 100644 --- a/src/main/java/org/elasticsearch/cluster/service/PendingClusterTask.java +++ b/src/main/java/org/elasticsearch/cluster/service/PendingClusterTask.java @@ -79,7 +79,11 @@ public class PendingClusterTask implements Streamable { insertOrder = in.readVLong(); priority = Priority.readFrom(in); source = in.readText(); - timeInQueue = in.readVLong(); + if (in.getVersion().onOrAfter(Version.V_1_4_0)) { + timeInQueue = in.readLong(); + } else { + timeInQueue = in.readVLong(); + } if (in.getVersion().onOrAfter(Version.V_1_3_0)) { executing = in.readBoolean(); } @@ -90,7 +94,12 @@ public class PendingClusterTask implements Streamable { out.writeVLong(insertOrder); Priority.writeTo(priority, out); out.writeText(source); - out.writeVLong(timeInQueue); + if (out.getVersion().onOrAfter(Version.V_1_4_0)) { + // timeInQueue is set to -1 when unknown and can be negative if time goes backwards + out.writeLong(timeInQueue); + } else { + out.writeVLong(timeInQueue); + } if (out.getVersion().onOrAfter(Version.V_1_3_0)) { out.writeBoolean(executing); }