Fixed a bug causing to early completion of DDL operations on client node. This closes This closes
@@ -554,16 +554,6 @@ public class GridQueryProcessor extends GridProcessorAdapter {
// Clean stale IO messages from just-joined nodes.
cleanStaleStatusMessages(opId);
}
-
- // Complete client future (if any).
- SchemaOperationClientFuture cliFut = schemaCliFuts.remove(opId);
-
- if (cliFut != null) {
- if (msg.hasError())
- cliFut.onDone(msg.error());
- else
- cliFut.onDone();
- }
}
/**
@@ -2718,6 +2708,16 @@ private IgniteInternalFuture<Object> rebuildIndexesFromHash(@Nullable final Stri
assert op != null;
assert F.eq(op.id(), opId);
+ // Complete client future (if any).
+ SchemaOperationClientFuture cliFut = schemaCliFuts.remove(opId);
+
+ if (cliFut != null) {
+ if (finishMsg.hasError())
+ cliFut.onDone(finishMsg.error());
+ else
+ cliFut.onDone();
+ }
+
// Chain to the next operation (if any).
final SchemaOperation nextOp = op.next();
