Home / Class/ AcquireListener Class — netty Architecture

AcquireListener Class — netty Architecture

Architecture documentation for the AcquireListener class in FixedChannelPool.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  d8460a0c_276c_cf7c_d74b_b4ef6c2be6d1["AcquireListener"]
  4b30891f_00e9_b07c_2218_4f447886cfdd["FixedChannelPool.java"]
  d8460a0c_276c_cf7c_d74b_b4ef6c2be6d1 -->|defined in| 4b30891f_00e9_b07c_2218_4f447886cfdd
  eeb76f34_1a17_d512_4712_7714228787a2["AcquireListener()"]
  d8460a0c_276c_cf7c_d74b_b4ef6c2be6d1 -->|method| eeb76f34_1a17_d512_4712_7714228787a2
  a0e3ca45_7007_bd76_d79f_81a640f79d24["operationComplete()"]
  d8460a0c_276c_cf7c_d74b_b4ef6c2be6d1 -->|method| a0e3ca45_7007_bd76_d79f_81a640f79d24
  0838d3b3_52a9_65c1_0d21_2ababab8d237["acquired()"]
  d8460a0c_276c_cf7c_d74b_b4ef6c2be6d1 -->|method| 0838d3b3_52a9_65c1_0d21_2ababab8d237

Relationship Graph

Source Code

transport/src/main/java/io/netty/channel/pool/FixedChannelPool.java lines 397–442

    private class AcquireListener implements FutureListener<Channel> {
        private final Promise<Channel> originalPromise;
        protected boolean acquired;

        AcquireListener(Promise<Channel> originalPromise) {
            this.originalPromise = originalPromise;
        }

        @Override
        public void operationComplete(Future<Channel> future) throws Exception {
            try {
                assert executor.inEventLoop();

                if (closed) {
                    if (future.isSuccess()) {
                        // Since the pool is closed, we have no choice but to close the channel
                        future.getNow().close();
                    }
                    originalPromise.setFailure(new IllegalStateException("FixedChannelPool was closed"));
                    return;
                }

                if (future.isSuccess()) {
                    originalPromise.setSuccess(future.getNow());
                } else {
                    if (acquired) {
                        decrementAndRunTaskQueue();
                    } else {
                        runTaskQueue();
                    }

                    originalPromise.setFailure(future.cause());
                }
            } catch (Throwable cause) {
                originalPromise.tryFailure(cause);
            }
        }

        public void acquired() {
            if (acquired) {
                return;
            }
            acquiredChannelCount.incrementAndGet();
            acquired = true;
        }
    }

Frequently Asked Questions

What is the AcquireListener class?
AcquireListener is a class in the netty codebase, defined in transport/src/main/java/io/netty/channel/pool/FixedChannelPool.java.
Where is AcquireListener defined?
AcquireListener is defined in transport/src/main/java/io/netty/channel/pool/FixedChannelPool.java at line 397.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free