Hi,

> void dumpState(final StringBuilder buf)

It feels to me like this would be nicer and more accurate:

void appendState(final StringBuilder buf)

Gary

On Tue, Nov 20, 2018 at 5:39 AM <[email protected]> wrote:

> Repository: httpcomponents-core
> Updated Branches:
>   refs/heads/master 0a31b7216 -> 71a7f4fba
>
>
> Added more state info to #toString output of HTTP/1.1 and HTTP/2 async
> protocol handlers
>
>
> Project: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/repo
> Commit:
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/commit/71a7f4fb
> Tree:
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/tree/71a7f4fb
> Diff:
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/diff/71a7f4fb
>
> Branch: refs/heads/master
> Commit: 71a7f4fbab46a1ae4455dece369c0cd6f4eefe1b
> Parents: 0a31b72
> Author: Oleg Kalnichevski <[email protected]>
> Authored: Tue Nov 20 11:30:28 2018 +0100
> Committer: Oleg Kalnichevski <[email protected]>
> Committed: Tue Nov 20 11:48:24 2018 +0100
>
> ----------------------------------------------------------------------
>  .../impl/nio/AbstractHttp2IOEventHandler.java   |  6 +--
>  .../nio/AbstractHttp2StreamMultiplexer.java     | 42 ++++++++++++++++----
>  .../impl/nio/ClientHttp2IOEventHandler.java     | 14 +++++++
>  .../impl/nio/ClientHttp2StreamMultiplexer.java  | 11 +++--
>  .../impl/nio/ClientHttpProtocolNegotiator.java  |  7 ++++
>  .../impl/nio/ServerHttp2IOEventHandler.java     | 14 +++++++
>  .../impl/nio/ServerHttp2StreamMultiplexer.java  | 11 +++--
>  .../impl/nio/ServerHttpProtocolNegotiator.java  |  8 ++++
>  .../http/examples/AsyncReverseProxyExample.java |  6 ++-
>  .../impl/nio/AbstractHttp1IOEventHandler.java   |  7 +---
>  .../impl/nio/AbstractHttp1StreamDuplexer.java   |  7 ++++
>  .../impl/nio/ClientHttp1IOEventHandler.java     | 14 +++++++
>  .../impl/nio/ClientHttp1StreamDuplexer.java     | 27 ++++++++++---
>  .../http/impl/nio/ClientHttp1StreamHandler.java | 17 ++++++--
>  .../impl/nio/ServerHttp1IOEventHandler.java     | 13 ++++++
>  .../impl/nio/ServerHttp1StreamDuplexer.java     | 26 +++++++++---
>  .../http/impl/nio/ServerHttp1StreamHandler.java | 18 ++++++---
>  .../hc/core5/reactor/IOSessionRequest.java      | 10 +++++
>  .../core5/reactor/InternalConnectChannel.java   |  6 +++
>  .../hc/core5/reactor/InternalDataChannel.java   | 13 +++++-
>  20 files changed, 222 insertions(+), 55 deletions(-)
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/AbstractHttp2IOEventHandler.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/AbstractHttp2IOEventHandler.java
> b/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/AbstractHttp2IOEventHandler.java
> index 7efa809..c66da29 100644
> ---
> a/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/AbstractHttp2IOEventHandler.java
> +++
> b/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/AbstractHttp2IOEventHandler.java
> @@ -43,7 +43,7 @@ import org.apache.hc.core5.util.Timeout;
>
>  class AbstractHttp2IOEventHandler implements HttpConnectionEventHandler {
>
> -    private final AbstractHttp2StreamMultiplexer streamMultiplexer;
> +    final AbstractHttp2StreamMultiplexer streamMultiplexer;
>
>      AbstractHttp2IOEventHandler(final AbstractHttp2StreamMultiplexer
> streamMultiplexer) {
>          this.streamMultiplexer = Args.notNull(streamMultiplexer, "Stream
> multiplexer");
> @@ -145,8 +145,4 @@ class AbstractHttp2IOEventHandler implements
> HttpConnectionEventHandler {
>          return streamMultiplexer.getLocalAddress();
>      }
>
> -    @Override
> -    public String toString() {
> -        return streamMultiplexer.toString();
> -    }
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/AbstractHttp2StreamMultiplexer.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/AbstractHttp2StreamMultiplexer.java
> b/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/AbstractHttp2StreamMultiplexer.java
> index 6d2cd3c..0615a83 100644
> ---
> a/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/AbstractHttp2StreamMultiplexer.java
> +++
> b/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/AbstractHttp2StreamMultiplexer.java
> @@ -1242,6 +1242,15 @@ abstract class AbstractHttp2StreamMultiplexer
> implements Identifiable, HttpConne
>          return ioSession.getLocalAddress();
>      }
>
> +    void dumpState(final StringBuilder buf) {
> +        buf.append("connState=").append(connState)
> +                .append(", connInputWindow=").append(connInputWindow)
> +                .append(", connOutputWindow=").append(connOutputWindow)
> +                .append(", outputQueue=").append(outputQueue.size())
> +                .append(", streamMap=").append(streamMap.size())
> +                .append(",
> processedRemoteStreamId=").append(processedRemoteStreamId);
> +    }
> +
>      private static class Continuation {
>
>          final int streamId;
> @@ -1458,15 +1467,22 @@ abstract class AbstractHttp2StreamMultiplexer
> implements Identifiable, HttpConne
>              }
>          }
>
> +        void dumpState(final StringBuilder buf) {
> +            buf.append("id=").append(id)
> +                    .append(", connState=").append(connState)
> +                    .append(", inputWindow=").append(inputWindow)
> +                    .append(", outputWindow=").append(outputWindow)
> +                    .append(", localEndStream=").append(localEndStream)
> +                    .append(", idle=").append(idle);
> +        }
> +
>          @Override
>          public String toString() {
> -            return "[" +
> -                    "id=" + id +
> -                    ", inputWindow=" + inputWindow +
> -                    ", outputWindow=" + outputWindow +
> -                    ", remoteEndStream=" + remoteEndStream +
> -                    ", localEndStream=" + localEndStream +
> -                    ']';
> +            final StringBuilder buf = new StringBuilder();
> +            buf.append("[");
> +            dumpState(buf);
> +            buf.append("]");
> +            return buf.toString();
>          }
>
>      }
> @@ -1603,9 +1619,19 @@ abstract class AbstractHttp2StreamMultiplexer
> implements Identifiable, HttpConne
>              channel.requestOutput();
>          }
>
> +        void dumpState(final StringBuilder buf) {
> +            buf.append("channel=[");
> +            channel.dumpState(buf);
> +            buf.append("]");
> +        }
> +
>          @Override
>          public String toString() {
> -            return channel.toString();
> +            final StringBuilder buf = new StringBuilder();
> +            buf.append("[");
> +            dumpState(buf);
> +            buf.append("]");
> +            return buf.toString();
>          }
>
>      }
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ClientHttp2IOEventHandler.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ClientHttp2IOEventHandler.java
> b/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ClientHttp2IOEventHandler.java
> index 7503d27..f8632ae 100644
> ---
> a/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ClientHttp2IOEventHandler.java
> +++
> b/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ClientHttp2IOEventHandler.java
> @@ -27,6 +27,8 @@
>
>  package org.apache.hc.core5.http2.impl.nio;
>
> +import org.apache.hc.core5.net.InetAddressUtils;
> +
>  /**
>   * {@link org.apache.hc.core5.reactor.IOEventHandler} that implements
>   * client side HTTP/2 messaging protocol with full support for
> @@ -40,4 +42,16 @@ public class ClientHttp2IOEventHandler extends
> AbstractHttp2IOEventHandler {
>          super(streamMultiplexer);
>      }
>
> +    @Override
> +    public String toString() {
> +        final StringBuilder buf = new StringBuilder();
> +        InetAddressUtils.formatAddress(buf, getLocalAddress());
> +        buf.append("->");
> +        InetAddressUtils.formatAddress(buf, getRemoteAddress());
> +        buf.append(" [");
> +        streamMultiplexer.dumpState(buf);
> +        buf.append("]");
> +        return buf.toString();
> +    }
> +
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ClientHttp2StreamMultiplexer.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ClientHttp2StreamMultiplexer.java
> b/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ClientHttp2StreamMultiplexer.java
> index 1f51a72..997a709 100644
> ---
> a/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ClientHttp2StreamMultiplexer.java
> +++
> b/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ClientHttp2StreamMultiplexer.java
> @@ -44,7 +44,6 @@ import org.apache.hc.core5.http2.config.H2Config;
>  import org.apache.hc.core5.http2.frame.DefaultFrameFactory;
>  import org.apache.hc.core5.http2.frame.FrameFactory;
>  import org.apache.hc.core5.http2.frame.StreamIdGenerator;
> -import org.apache.hc.core5.net.InetAddressUtils;
>  import org.apache.hc.core5.reactor.ProtocolIOSession;
>
>  /**
> @@ -138,11 +137,11 @@ public class ClientHttp2StreamMultiplexer extends
> AbstractHttp2StreamMultiplexer
>
>      @Override
>      public String toString() {
> -        final StringBuilder buffer = new StringBuilder();
> -        InetAddressUtils.formatAddress(buffer, getLocalAddress());
> -        buffer.append("->");
> -        InetAddressUtils.formatAddress(buffer, getRemoteAddress());
> -        return buffer.toString();
> +        final StringBuilder buf = new StringBuilder();
> +        buf.append("[");
> +        dumpState(buf);
> +        buf.append("]");
> +        return buf.toString();
>      }
>
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ClientHttpProtocolNegotiator.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ClientHttpProtocolNegotiator.java
> b/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ClientHttpProtocolNegotiator.java
> index 7934b76..003f118 100644
> ---
> a/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ClientHttpProtocolNegotiator.java
> +++
> b/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ClientHttpProtocolNegotiator.java
> @@ -261,4 +261,11 @@ public class ClientHttpProtocolNegotiator implements
> HttpConnectionEventHandler
>          ioSession.close(closeMode);
>      }
>
> +    @Override
> +    public String toString() {
> +        return "[" +
> +                "versionPolicy=" + versionPolicy +
> +                ']';
> +    }
> +
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ServerHttp2IOEventHandler.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ServerHttp2IOEventHandler.java
> b/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ServerHttp2IOEventHandler.java
> index bbd5c5c..73a0507 100644
> ---
> a/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ServerHttp2IOEventHandler.java
> +++
> b/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ServerHttp2IOEventHandler.java
> @@ -27,6 +27,8 @@
>
>  package org.apache.hc.core5.http2.impl.nio;
>
> +import org.apache.hc.core5.net.InetAddressUtils;
> +
>  /**
>   * {@link org.apache.hc.core5.reactor.IOEventHandler} that implements
>   * server side HTTP/2 messaging protocol with full support for
> @@ -40,4 +42,16 @@ public class ServerHttp2IOEventHandler extends
> AbstractHttp2IOEventHandler{
>          super(streamMultiplexer);
>      }
>
> +    @Override
> +    public String toString() {
> +        final StringBuilder buf = new StringBuilder();
> +        InetAddressUtils.formatAddress(buf, getRemoteAddress());
> +        buf.append("->");
> +        InetAddressUtils.formatAddress(buf, getLocalAddress());
> +        buf.append(" [");
> +        streamMultiplexer.dumpState(buf);
> +        buf.append("]");
> +        return buf.toString();
> +    }
> +
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ServerHttp2StreamMultiplexer.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ServerHttp2StreamMultiplexer.java
> b/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ServerHttp2StreamMultiplexer.java
> index e2fbc4d..336080c 100644
> ---
> a/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ServerHttp2StreamMultiplexer.java
> +++
> b/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ServerHttp2StreamMultiplexer.java
> @@ -43,7 +43,6 @@ import org.apache.hc.core5.http2.config.H2Config;
>  import org.apache.hc.core5.http2.frame.DefaultFrameFactory;
>  import org.apache.hc.core5.http2.frame.FrameFactory;
>  import org.apache.hc.core5.http2.frame.StreamIdGenerator;
> -import org.apache.hc.core5.net.InetAddressUtils;
>  import org.apache.hc.core5.reactor.ProtocolIOSession;
>  import org.apache.hc.core5.util.Args;
>
> @@ -116,11 +115,11 @@ public class ServerHttp2StreamMultiplexer extends
> AbstractHttp2StreamMultiplexer
>
>      @Override
>      public String toString() {
> -        final StringBuilder buffer = new StringBuilder();
> -        InetAddressUtils.formatAddress(buffer, getRemoteAddress());
> -        buffer.append("->");
> -        InetAddressUtils.formatAddress(buffer, getLocalAddress());
> -        return buffer.toString();
> +        final StringBuilder buf = new StringBuilder();
> +        buf.append("[");
> +        dumpState(buf);
> +        buf.append("]");
> +        return buf.toString();
>      }
>
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ServerHttpProtocolNegotiator.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ServerHttpProtocolNegotiator.java
> b/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ServerHttpProtocolNegotiator.java
> index f5d2315..3c811b7 100644
> ---
> a/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ServerHttpProtocolNegotiator.java
> +++
> b/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/ServerHttpProtocolNegotiator.java
> @@ -231,4 +231,12 @@ public class ServerHttpProtocolNegotiator implements
> HttpConnectionEventHandler
>          ioSession.close(closeMode);
>      }
>
> +    @Override
> +    public String toString() {
> +        return "[" +
> +                "versionPolicy=" + versionPolicy +
> +                ", expectValidH2Preface=" + expectValidH2Preface +
> +                ']';
> +    }
> +
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5/src/examples/org/apache/hc/core5/http/examples/AsyncReverseProxyExample.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5/src/examples/org/apache/hc/core5/http/examples/AsyncReverseProxyExample.java
> b/httpcore5/src/examples/org/apache/hc/core5/http/examples/AsyncReverseProxyExample.java
> index 564095c..20b3401 100644
> ---
> a/httpcore5/src/examples/org/apache/hc/core5/http/examples/AsyncReverseProxyExample.java
> +++
> b/httpcore5/src/examples/org/apache/hc/core5/http/examples/AsyncReverseProxyExample.java
> @@ -142,7 +142,8 @@ public class AsyncReverseProxyExample {
>
>                      @Override
>                      public void onExchangeComplete(final HttpConnection
> connection, final boolean keepAlive) {
> -                        System.out.println("[proxy<-origin] connection "
> + connection +
> +                        System.out.println("[proxy<-origin] connection " +
> +                                connection.getLocalAddress() + "->" +
> connection.getRemoteAddress() +
>                                  (keepAlive ? " kept alive" : " cannot be
> kept alive"));
>                      }
>
> @@ -167,7 +168,8 @@ public class AsyncReverseProxyExample {
>
>                      @Override
>                      public void onExchangeComplete(final HttpConnection
> connection, final boolean keepAlive) {
> -                        System.out.println("[client<-proxy] connection "
> + connection +
> +                        System.out.println("[client<-proxy] connection " +
> +                                connection.getLocalAddress() + "->" +
> connection.getRemoteAddress() +
>                                  (keepAlive ? " kept alive" : " cannot be
> kept alive"));
>                      }
>
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/AbstractHttp1IOEventHandler.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/AbstractHttp1IOEventHandler.java
> b/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/AbstractHttp1IOEventHandler.java
> index 32b4aa0..81211fa 100644
> ---
> a/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/AbstractHttp1IOEventHandler.java
> +++
> b/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/AbstractHttp1IOEventHandler.java
> @@ -42,7 +42,7 @@ import org.apache.hc.core5.util.Timeout;
>
>  class AbstractHttp1IOEventHandler implements HttpConnectionEventHandler {
>
> -    private final AbstractHttp1StreamDuplexer<?, ?> streamDuplexer;
> +    final AbstractHttp1StreamDuplexer<?, ?> streamDuplexer;
>
>      AbstractHttp1IOEventHandler(final AbstractHttp1StreamDuplexer<?, ?>
> streamDuplexer) {
>          this.streamDuplexer = Args.notNull(streamDuplexer, "Stream
> multiplexer");
> @@ -144,9 +144,4 @@ class AbstractHttp1IOEventHandler implements
> HttpConnectionEventHandler {
>          return streamDuplexer.getLocalAddress();
>      }
>
> -    @Override
> -    public String toString() {
> -        return streamDuplexer.toString();
> -    }
> -
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/AbstractHttp1StreamDuplexer.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/AbstractHttp1StreamDuplexer.java
> b/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/AbstractHttp1StreamDuplexer.java
> index 585cbed..4fc661c 100644
> ---
> a/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/AbstractHttp1StreamDuplexer.java
> +++
> b/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/AbstractHttp1StreamDuplexer.java
> @@ -623,4 +623,11 @@ abstract class
> AbstractHttp1StreamDuplexer<IncomingMessage extends HttpMessage,
>          return tlsDetails != null ? tlsDetails.getSSLSession() : null;
>      }
>
> +    void dumpState(final StringBuilder buf) {
> +        buf.append("connState=").append(connState)
> +                .append(", inbuf=").append(inbuf)
> +                .append(", outbuf=").append(outbuf)
> +                .append(", inputWindow=").append(inputWindow);
> +    }
> +
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ClientHttp1IOEventHandler.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ClientHttp1IOEventHandler.java
> b/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ClientHttp1IOEventHandler.java
> index 3cf7d8f..de7fa16 100644
> ---
> a/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ClientHttp1IOEventHandler.java
> +++
> b/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ClientHttp1IOEventHandler.java
> @@ -27,6 +27,8 @@
>
>  package org.apache.hc.core5.http.impl.nio;
>
> +import org.apache.hc.core5.net.InetAddressUtils;
> +
>  /**
>   * {@link org.apache.hc.core5.reactor.IOEventHandler} that implements
>   *  client side HTTP/1.1 messaging protocol with full support for
> @@ -40,5 +42,17 @@ public class ClientHttp1IOEventHandler extends
> AbstractHttp1IOEventHandler {
>          super(streamDuplexer);
>      }
>
> +    @Override
> +    public String toString() {
> +        final StringBuilder buf = new StringBuilder();
> +        InetAddressUtils.formatAddress(buf, getLocalAddress());
> +        buf.append("->");
> +        InetAddressUtils.formatAddress(buf, getRemoteAddress());
> +        buf.append(" [");
> +        streamDuplexer.dumpState(buf);
> +        buf.append("]");
> +        return buf.toString();
> +    }
> +
>  }
>
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ClientHttp1StreamDuplexer.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ClientHttp1StreamDuplexer.java
> b/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ClientHttp1StreamDuplexer.java
> index 86caed7..a2661c1 100644
> ---
> a/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ClientHttp1StreamDuplexer.java
> +++
> b/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ClientHttp1StreamDuplexer.java
> @@ -64,7 +64,6 @@ import
> org.apache.hc.core5.http.nio.command.RequestExecutionCommand;
>  import org.apache.hc.core5.http.protocol.HttpCoreContext;
>  import org.apache.hc.core5.http.protocol.HttpProcessor;
>  import org.apache.hc.core5.io.CloseMode;
> -import org.apache.hc.core5.net.InetAddressUtils;
>  import org.apache.hc.core5.reactor.ProtocolIOSession;
>  import org.apache.hc.core5.util.Args;
>  import org.apache.hc.core5.util.Asserts;
> @@ -388,12 +387,28 @@ public class ClientHttp1StreamDuplexer extends
> AbstractHttp1StreamDuplexer<HttpR
>      }
>
>      @Override
> +    void dumpState(final StringBuilder buf) {
> +        super.dumpState(buf);
> +        super.dumpState(buf);
> +        buf.append(", incoming=[");
> +        if (incoming != null) {
> +            incoming.dumpState(buf);
> +        }
> +        buf.append("], outgoing=[");
> +        if (outgoing != null) {
> +            outgoing.dumpState(buf);
> +        }
> +        buf.append("], pipeline=");
> +        buf.append(pipeline.size());
> +    }
> +
> +    @Override
>      public String toString() {
> -        final StringBuilder buffer = new StringBuilder();
> -        InetAddressUtils.formatAddress(buffer, getLocalAddress());
> -        buffer.append("->");
> -        InetAddressUtils.formatAddress(buffer, getRemoteAddress());
> -        return buffer.toString();
> +        final StringBuilder buf = new StringBuilder();
> +        buf.append("[");
> +        dumpState(buf);
> +        buf.append("]");
> +        return buf.toString();
>      }
>
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ClientHttp1StreamHandler.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ClientHttp1StreamHandler.java
> b/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ClientHttp1StreamHandler.java
> index 0a8fe04..58f7d1d 100644
> ---
> a/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ClientHttp1StreamHandler.java
> +++
> b/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ClientHttp1StreamHandler.java
> @@ -304,12 +304,21 @@ class ClientHttp1StreamHandler implements
> ResourceHolder {
>          }
>      }
>
> +    void dumpState(final StringBuilder buf) {
> +        buf.append("requestState=").append(requestState)
> +                .append(", responseState=").append(responseState)
> +                .append(", responseCommitted=").append(requestCommitted)
> +                .append(", keepAlive=").append(keepAlive)
> +                .append(", done=").append(done);
> +    }
> +
>      @Override
>      public String toString() {
> -        return "[" +
> -                "requestState=" + requestState +
> -                ", responseState=" + responseState +
> -                ']';
> +        final StringBuilder buf = new StringBuilder();
> +        buf.append("[");
> +        dumpState(buf);
> +        buf.append("]");
> +        return buf.toString();
>      }
>
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ServerHttp1IOEventHandler.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ServerHttp1IOEventHandler.java
> b/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ServerHttp1IOEventHandler.java
> index 8e16470..2e74a99 100644
> ---
> a/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ServerHttp1IOEventHandler.java
> +++
> b/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ServerHttp1IOEventHandler.java
> @@ -29,6 +29,7 @@ package org.apache.hc.core5.http.impl.nio;
>
>  import org.apache.hc.core5.annotation.Contract;
>  import org.apache.hc.core5.annotation.ThreadingBehavior;
> +import org.apache.hc.core5.net.InetAddressUtils;
>
>  /**
>   * {@link org.apache.hc.core5.reactor.IOEventHandler} that implements
> @@ -44,4 +45,16 @@ public class ServerHttp1IOEventHandler extends
> AbstractHttp1IOEventHandler {
>          super(streamDuplexer);
>      }
>
> +    @Override
> +    public String toString() {
> +        final StringBuilder buf = new StringBuilder();
> +        InetAddressUtils.formatAddress(buf, getRemoteAddress());
> +        buf.append("->");
> +        InetAddressUtils.formatAddress(buf, getLocalAddress());
> +        buf.append(" [");
> +        streamDuplexer.dumpState(buf);
> +        buf.append("]");
> +        return buf.toString();
> +    }
> +
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ServerHttp1StreamDuplexer.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ServerHttp1StreamDuplexer.java
> b/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ServerHttp1StreamDuplexer.java
> index c8f481c..9b249a2 100644
> ---
> a/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ServerHttp1StreamDuplexer.java
> +++
> b/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ServerHttp1StreamDuplexer.java
> @@ -63,7 +63,6 @@ import
> org.apache.hc.core5.http.nio.command.RequestExecutionCommand;
>  import org.apache.hc.core5.http.protocol.HttpCoreContext;
>  import org.apache.hc.core5.http.protocol.HttpProcessor;
>  import org.apache.hc.core5.io.CloseMode;
> -import org.apache.hc.core5.net.InetAddressUtils;
>  import org.apache.hc.core5.reactor.ProtocolIOSession;
>  import org.apache.hc.core5.util.Args;
>  import org.apache.hc.core5.util.Asserts;
> @@ -402,12 +401,27 @@ public class ServerHttp1StreamDuplexer extends
> AbstractHttp1StreamDuplexer<HttpR
>      }
>
>      @Override
> +    void dumpState(final StringBuilder buf) {
> +        super.dumpState(buf);
> +        buf.append(", incoming=[");
> +        if (incoming != null) {
> +            incoming.dumpState(buf);
> +        }
> +        buf.append("], outgoing=[");
> +        if (outgoing != null) {
> +            outgoing.dumpState(buf);
> +        }
> +        buf.append("], pipeline=");
> +        buf.append(pipeline.size());
> +    }
> +
> +    @Override
>      public String toString() {
> -        final StringBuilder buffer = new StringBuilder();
> -        InetAddressUtils.formatAddress(buffer, getRemoteAddress());
> -        buffer.append("->");
> -        InetAddressUtils.formatAddress(buffer, getLocalAddress());
> -        return buffer.toString();
> +        final StringBuilder buf = new StringBuilder();
> +        buf.append("[");
> +        dumpState(buf);
> +        buf.append("]");
> +        return buf.toString();
>      }
>
>      private static class DelayedOutputChannel implements
> Http1StreamChannel<HttpResponse> {
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ServerHttp1StreamHandler.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ServerHttp1StreamHandler.java
> b/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ServerHttp1StreamHandler.java
> index b87b04c..8478069 100644
> ---
> a/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ServerHttp1StreamHandler.java
> +++
> b/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/ServerHttp1StreamHandler.java
> @@ -315,13 +315,21 @@ class ServerHttp1StreamHandler implements
> ResourceHolder {
>          }
>      }
>
> +    void dumpState(final StringBuilder buf) {
> +        buf.append("requestState=").append(requestState)
> +                .append(", responseState=").append(responseState)
> +                .append(", responseCommitted=").append(responseCommitted)
> +                .append(", keepAlive=").append(keepAlive)
> +                .append(", done=").append(done);
> +    }
> +
>      @Override
>      public String toString() {
> -        return "[" +
> -                "requestState=" + requestState +
> -                ", responseState=" + responseState +
> -                ", outputChannel=" + outputChannel +
> -                ']';
> +        final StringBuilder buf = new StringBuilder();
> +        buf.append("[");
> +        dumpState(buf);
> +        buf.append("]");
> +        return buf.toString();
>      }
>
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5/src/main/java/org/apache/hc/core5/reactor/IOSessionRequest.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5/src/main/java/org/apache/hc/core5/reactor/IOSessionRequest.java
> b/httpcore5/src/main/java/org/apache/hc/core5/reactor/IOSessionRequest.java
> index 96f1bbd..1eafc0e 100644
> ---
> a/httpcore5/src/main/java/org/apache/hc/core5/reactor/IOSessionRequest.java
> +++
> b/httpcore5/src/main/java/org/apache/hc/core5/reactor/IOSessionRequest.java
> @@ -117,4 +117,14 @@ final class IOSessionRequest implements
> Future<IOSession> {
>          return future.get(timeout, unit);
>      }
>
> +    @Override
> +    public String toString() {
> +        return "[" +
> +                "remoteEndpoint=" + remoteEndpoint +
> +                ", remoteAddress=" + remoteAddress +
> +                ", localAddress=" + localAddress +
> +                ", attachment=" + attachment +
> +                ']';
> +    }
> +
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5/src/main/java/org/apache/hc/core5/reactor/InternalConnectChannel.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5/src/main/java/org/apache/hc/core5/reactor/InternalConnectChannel.java
> b/httpcore5/src/main/java/org/apache/hc/core5/reactor/InternalConnectChannel.java
> index edabe30..55e5fd7 100644
> ---
> a/httpcore5/src/main/java/org/apache/hc/core5/reactor/InternalConnectChannel.java
> +++
> b/httpcore5/src/main/java/org/apache/hc/core5/reactor/InternalConnectChannel.java
> @@ -111,4 +111,10 @@ final class InternalConnectChannel extends
> InternalChannel {
>          } catch (final IOException ignore) {
>          }
>      }
> +
> +    @Override
> +    public String toString() {
> +        return sessionRequest.toString();
> +    }
> +
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/71a7f4fb/httpcore5/src/main/java/org/apache/hc/core5/reactor/InternalDataChannel.java
> ----------------------------------------------------------------------
> diff --git
> a/httpcore5/src/main/java/org/apache/hc/core5/reactor/InternalDataChannel.java
> b/httpcore5/src/main/java/org/apache/hc/core5/reactor/InternalDataChannel.java
> index 0ef7d49..5c66daa 100644
> ---
> a/httpcore5/src/main/java/org/apache/hc/core5/reactor/InternalDataChannel.java
> +++
> b/httpcore5/src/main/java/org/apache/hc/core5/reactor/InternalDataChannel.java
> @@ -378,7 +378,18 @@ final class InternalDataChannel extends
> InternalChannel implements ProtocolIOSes
>
>      @Override
>      public String toString() {
> -        return getSessionImpl().toString();
> +        final StringBuilder buf = new StringBuilder();
> +        final SSLIOSession tlsSession = tlsSessionRef.get();
> +        if (tlsSession != null) {
> +            buf.append(tlsSession);
> +        } else {
> +            buf.append(ioSession);
> +        }
> +        final IOEventHandler handler = getHandler();
> +        if (handler != null) {
> +            buf.append(handler);
> +        }
> +        return buf.toString();
>      }
>
>  }
>
>

Reply via email to