Use full state for the ORSet and ORMap removals until #22648 is fixed

* some tests disabled, search for
  "FIXME use full state for removals, until issue #22648 is fixed"
  to find them
This commit is contained in:
Patrik Nordwall 2017-03-30 13:26:35 +02:00
parent dc070e4e1c
commit 5293666a30
11 changed files with 136 additions and 85 deletions

View file

@ -345,13 +345,15 @@ final class ORSet[A] private[akka] (
* INTERNAL API
*/
@InternalApi private[akka] def remove(node: UniqueAddress, element: A): ORSet[A] = {
val deltaDot = VersionVector(node, vvector.versionAt(node))
val rmOp = ORSet.RemoveDeltaOp(new ORSet(Map(element deltaDot), vvector))
val newDelta = delta match {
case None rmOp
case Some(d) d.merge(rmOp)
}
assignAncestor(copy(elementsMap = elementsMap - element, delta = Some(newDelta)))
// FIXME use full state for removals, until issue #22648 is fixed
// val deltaDot = VersionVector(node, vvector.versionAt(node))
// val rmOp = ORSet.RemoveDeltaOp(new ORSet(Map(element deltaDot), vvector))
// val newDelta = delta match {
// case None rmOp
// case Some(d) d.merge(rmOp)
// }
// assignAncestor(copy(elementsMap = elementsMap - element, delta = Some(newDelta)))
assignAncestor(copy(elementsMap = elementsMap - element, delta = None))
}
/**