Class ReleaseOnceChannelPool

java.lang.Object
software.amazon.awssdk.http.nio.netty.internal.ReleaseOnceChannelPool
All Implemented Interfaces:
io.netty.channel.pool.ChannelPool, Closeable, AutoCloseable, SdkChannelPool

public class ReleaseOnceChannelPool extends Object implements SdkChannelPool
Wrapper around a ChannelPool to protect it from having the same channel released twice. This can cause issues in FixedChannelPool and Http2MultiplexedChannelPool which has a simple mechanism to track leased connections.
  • Constructor Details

    • ReleaseOnceChannelPool

      public ReleaseOnceChannelPool(SdkChannelPool delegate)
  • Method Details

    • acquire

      public io.netty.util.concurrent.Future<io.netty.channel.Channel> acquire()
      Specified by:
      acquire in interface io.netty.channel.pool.ChannelPool
    • acquire

      public io.netty.util.concurrent.Future<io.netty.channel.Channel> acquire(io.netty.util.concurrent.Promise<io.netty.channel.Channel> promise)
      Specified by:
      acquire in interface io.netty.channel.pool.ChannelPool
    • release

      public io.netty.util.concurrent.Future<Void> release(io.netty.channel.Channel channel)
      Specified by:
      release in interface io.netty.channel.pool.ChannelPool
    • release

      public io.netty.util.concurrent.Future<Void> release(io.netty.channel.Channel channel, io.netty.util.concurrent.Promise<Void> promise)
      Specified by:
      release in interface io.netty.channel.pool.ChannelPool
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface io.netty.channel.pool.ChannelPool
      Specified by:
      close in interface Closeable
    • collectChannelPoolMetrics

      public CompletableFuture<Void> collectChannelPoolMetrics(MetricCollector metrics)
      Description copied from interface: SdkChannelPool
      Collect channel pool metrics into the provided MetricCollector collection, completing the returned future when all metric publishing is complete.
      Specified by:
      collectChannelPoolMetrics in interface SdkChannelPool
      Parameters:
      metrics - The collection to which all metrics should be added.
      Returns:
      A future that is completed when all metric publishing is complete.