reproduce the equivalent protocol to the blocking version in java