diff --git a/akka-distributed-data/src/main/mima-filters/2.5.15.backwards.excludes b/akka-distributed-data/src/main/mima-filters/2.5.15.backwards.excludes new file mode 100644 index 0000000000..5d12fcc3e3 --- /dev/null +++ b/akka-distributed-data/src/main/mima-filters/2.5.15.backwards.excludes @@ -0,0 +1,4 @@ +# #25543 allow BigInt increment and decrements in PNCounter +ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.ddata.PNCounter.increment") +ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.ddata.PNCounter.decrement") +ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.cluster.ddata.PNCounter.change") \ No newline at end of file diff --git a/akka-distributed-data/src/main/scala/akka/cluster/ddata/PNCounter.scala b/akka-distributed-data/src/main/scala/akka/cluster/ddata/PNCounter.scala index cb9c2a699d..a6abf1ecf8 100644 --- a/akka-distributed-data/src/main/scala/akka/cluster/ddata/PNCounter.scala +++ b/akka-distributed-data/src/main/scala/akka/cluster/ddata/PNCounter.scala @@ -9,6 +9,8 @@ import akka.cluster.UniqueAddress import akka.util.HashCode import java.math.BigInteger +import akka.annotation.InternalApi + object PNCounter { val empty: PNCounter = new PNCounter(GCounter.empty, GCounter.empty) def apply(): PNCounter = empty @@ -122,12 +124,17 @@ final class PNCounter private[akka] ( def decrement(node: Cluster, n: java.math.BigInteger): PNCounter = decrement(node.selfUniqueAddress, n) - private[akka] def increment(key: UniqueAddress, n: BigInt): PNCounter = change(key, n) - private[akka] def increment(key: UniqueAddress): PNCounter = increment(key, 1) - private[akka] def decrement(key: UniqueAddress, n: BigInt): PNCounter = change(key, -n) - private[akka] def decrement(key: UniqueAddress): PNCounter = decrement(key, 1) + /** Internal API */ + @InternalApi private[akka] def increment(key: UniqueAddress, n: BigInt): PNCounter = change(key, n) + /** Internal API */ + @InternalApi private[akka] def increment(key: UniqueAddress): PNCounter = increment(key, 1) + /** Internal API */ + @InternalApi private[akka] def decrement(key: UniqueAddress, n: BigInt): PNCounter = change(key, -n) + /** Internal API */ + @InternalApi private[akka] def decrement(key: UniqueAddress): PNCounter = decrement(key, 1) - private[akka] def change(key: UniqueAddress, n: BigInt): PNCounter = + /** Internal API */ + @InternalApi private[akka] def change(key: UniqueAddress, n: BigInt): PNCounter = if (n > 0) copy(increments = increments.increment(key, n)) else if (n < 0) copy(decrements = decrements.increment(key, -n)) else this