From 3ccaee2c18ac0c377b028dc46ebdfdf277c0bc84 Mon Sep 17 00:00:00 2001 From: Ivan Oreskovic Date: Wed, 1 Apr 2020 14:25:34 +0200 Subject: [PATCH] Expose capacity property on StashBuffer (#28739) --- .../scala/akka/actor/typed/scaladsl/StashBufferSpec.scala | 6 ++++++ .../pr-28739-expose-stashbuffer-capacity.excludes | 4 ++++ .../main/scala/akka/actor/typed/javadsl/StashBuffer.scala | 7 +++++++ .../main/scala/akka/actor/typed/scaladsl/StashBuffer.scala | 7 +++++++ 4 files changed, 24 insertions(+) create mode 100644 akka-actor-typed/src/main/mima-filters/2.6.3.backwards.excludes/pr-28739-expose-stashbuffer-capacity.excludes diff --git a/akka-actor-typed-tests/src/test/scala/akka/actor/typed/scaladsl/StashBufferSpec.scala b/akka-actor-typed-tests/src/test/scala/akka/actor/typed/scaladsl/StashBufferSpec.scala index 71e768b00a..9f648144df 100644 --- a/akka-actor-typed-tests/src/test/scala/akka/actor/typed/scaladsl/StashBufferSpec.scala +++ b/akka-actor-typed-tests/src/test/scala/akka/actor/typed/scaladsl/StashBufferSpec.scala @@ -241,5 +241,11 @@ class StashBufferSpec extends AnyWordSpec with Matchers with LogCapturing { intercept[IllegalArgumentException](stash.unstashAll(Behaviors.unhandled)) } + "answer thruthfully about its capacity" in { + val capacity = 42 + val stash = StashBuffer[String](context, capacity) + + stash.capacity should ===(capacity) + } } } diff --git a/akka-actor-typed/src/main/mima-filters/2.6.3.backwards.excludes/pr-28739-expose-stashbuffer-capacity.excludes b/akka-actor-typed/src/main/mima-filters/2.6.3.backwards.excludes/pr-28739-expose-stashbuffer-capacity.excludes new file mode 100644 index 0000000000..9fe23b3edc --- /dev/null +++ b/akka-actor-typed/src/main/mima-filters/2.6.3.backwards.excludes/pr-28739-expose-stashbuffer-capacity.excludes @@ -0,0 +1,4 @@ +# https://github.com/akka/akka/pull/28739#issuecomment-602527515 +# StashBuffer trait is not meant to be extended by external users, and is marked as such with a @DoNotInherit +ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.actor.typed.javadsl.StashBuffer.capacity") +ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.actor.typed.scaladsl.StashBuffer.capacity") \ No newline at end of file diff --git a/akka-actor-typed/src/main/scala/akka/actor/typed/javadsl/StashBuffer.scala b/akka-actor-typed/src/main/scala/akka/actor/typed/javadsl/StashBuffer.scala index 88a4534395..fac124ea41 100644 --- a/akka-actor-typed/src/main/scala/akka/actor/typed/javadsl/StashBuffer.scala +++ b/akka-actor-typed/src/main/scala/akka/actor/typed/javadsl/StashBuffer.scala @@ -42,6 +42,13 @@ import akka.japi.function.Procedure */ def size: Int + /** + * What is the capacity of this buffer. + * + * @return the capacity of this buffer + */ + def capacity: Int + /** * @return `true` if no more messages can be added, i.e. size equals the capacity of the stash buffer */ diff --git a/akka-actor-typed/src/main/scala/akka/actor/typed/scaladsl/StashBuffer.scala b/akka-actor-typed/src/main/scala/akka/actor/typed/scaladsl/StashBuffer.scala index 8f05a95e91..add12b5dac 100644 --- a/akka-actor-typed/src/main/scala/akka/actor/typed/scaladsl/StashBuffer.scala +++ b/akka-actor-typed/src/main/scala/akka/actor/typed/scaladsl/StashBuffer.scala @@ -55,6 +55,13 @@ import akka.annotation.{ DoNotInherit, InternalApi } */ def size: Int + /** + * What is the capacity of this buffer. + * + * @return the capacity of this buffer + */ + def capacity: Int + /** * @return `true` if no more messages can be added, i.e. size equals the capacity of the stash buffer */