}
private final AtomicInteger nextRequestNumber = new AtomicInteger(Packet.END_REQUEST_NUMBER);
@Override protected Object invoke(final ClientInvocation invocation) throws Throwable {
return invocation.invoke(sessionInterceptor, new Tunnel() {
@Override public Reply invoke(final Request request) {
int requestNumber;
do { // we can't use END_REQUEST_NUMBER as regular requestNumber
requestNumber = nextRequestNumber.incrementAndGet();
} while (requestNumber == Packet.END_REQUEST_NUMBER);