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 */