State setup/tearDown order guaranties

Aleksey Shipilev shade at redhat.com
Wed Jan 17 11:04:20 UTC 2018


On 01/17/2018 10:21 AM, Aleksey Shipilev wrote:
> On 01/17/2018 04:21 AM, Alexei Osipov wrote:
>> Are there any docs on execution order guaranties for "setup/tearDown" methods in @State objects with
>> dependencies?
>> [...]
>> So I wonder if I'm doing something wrong or JMH just does not provide order guaranties for the case
>> with @State(Scope.Thread) + @Setup(Level.Iteration). Any recommendations on what should I check?
> 
> You are not doing anything wrong: the @State dependencies should work as you would expect: all
> states that are coming as arguments should have their helper methods executed. Except that there is
> a JMH bug: it first runs all the helpers for Scope.Thread in DAG order, and then runs all the
> helpers for Scope.{Benchmark|Iteration} in DAG order, which obviously breaks this assumption.
> 
> Let me handle this.

Fixed as:
 https://bugs.openjdk.java.net/browse/CODETOOLS-7902096

-Aleksey



More information about the jmh-dev mailing list