@Test
    public void testSimpleManipulationAsync() throws Exception {
        final HelloService.AsyncIface client = ThriftClients.newClient(
                server.httpUri() + "/hello", HelloService.AsyncIface.class);

        final BlockingQueue<Object> result = new ArrayBlockingQueue<>(1);
        final Callback callback = new Callback(result);

        try (SafeCloseable ignored = Clients.withHeader(AUTHORIZATION, SECRET)) {
            client.hello("armeria", callback);
        }

        assertThat(result.poll(10, TimeUnit.SECONDS)).isEqualTo("Hello, armeria!");

        // Ensure that the header manipulator set in the thread-local variable has been cleared.
        client.hello("bar", callback);
        assertThat(result.poll(10, TimeUnit.SECONDS))
                .isInstanceOf(TException.class)
                .matches(o -> ((Throwable) o).getMessage().contains("not authorized"),
                         "must fail with authorization failure");
    }
Tests if Armeria decorators can alter the request/response timeout specified in Thrift call parameters.
thrift/thrift0.13/src/test/java/com/linecorp/armeria/it/thrift/ThriftHttpHeaderTest.java