int serverIndex = 0;
while (clientIndex < clientOp.size()) {
clientOp.applyComponent(clientIndex++, clientTarget);
while (clientPosition.get() > 0) {
if (serverIndex >= serverOp.size()) {
throw new TransformException("Ran out of " + serverOp.size()
+ " server op components after " + clientIndex + " of " + clientOp.size()
+ " client op components, with " + clientPosition.get() + " spare positions");
}
serverOp.applyComponent(serverIndex++, serverTarget);
}
}
while (serverIndex < serverOp.size()) {
serverOp.applyComponent(serverIndex++, serverTarget);
}
clientOp = clientTarget.finish();
serverOp = serverTarget.finish();
} catch (InternalTransformException e) {
throw new TransformException(e.getMessage());
}
return new OperationPair<DocOp>(clientOp, serverOp);
}