diff --git a/core/src/main/java/io/grpc/inprocess/InProcessTransport.java b/core/src/main/java/io/grpc/inprocess/InProcessTransport.java index 013c658324..77f94ad7d9 100644 --- a/core/src/main/java/io/grpc/inprocess/InProcessTransport.java +++ b/core/src/main/java/io/grpc/inprocess/InProcessTransport.java @@ -20,6 +20,7 @@ import static com.google.common.base.Preconditions.checkNotNull; import static io.grpc.internal.GrpcUtil.TIMEOUT_KEY; import static java.lang.Math.max; +import com.google.common.base.MoreObjects; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.SettableFuture; import io.grpc.Attributes; @@ -210,7 +211,10 @@ final class InProcessTransport implements ServerTransport, ConnectionClientTrans @Override public String toString() { - return getLogId() + "(" + name + ")"; + return MoreObjects.toStringHelper(this) + .add("logId", logId.getId()) + .add("name", name) + .toString(); } @Override diff --git a/core/src/main/java/io/grpc/internal/InternalSubchannel.java b/core/src/main/java/io/grpc/internal/InternalSubchannel.java index c8103dbc1a..0664aa6dd4 100644 --- a/core/src/main/java/io/grpc/internal/InternalSubchannel.java +++ b/core/src/main/java/io/grpc/internal/InternalSubchannel.java @@ -23,6 +23,7 @@ import static io.grpc.ConnectivityState.SHUTDOWN; import static io.grpc.ConnectivityState.TRANSIENT_FAILURE; import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; import com.google.common.base.Stopwatch; import com.google.common.base.Supplier; @@ -390,6 +391,20 @@ final class InternalSubchannel implements Instrumented { } } + @Override + public String toString() { + // addressGroupCopy being a little stale is fine, just avoid calling toString with the lock + // since there may be many addresses. + Object addressGroupCopy; + synchronized (lock) { + addressGroupCopy = addressGroup; + } + return MoreObjects.toStringHelper(this) + .add("logId", logId.getId()) + .add("addressGroup", addressGroupCopy) + .toString(); + } + @GuardedBy("lock") private void handleTermination() { channelExecutor.executeLater(new Runnable() { diff --git a/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java b/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java index d21ad7f257..c2e0ba465b 100644 --- a/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java +++ b/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java @@ -1322,7 +1322,7 @@ final class ManagedChannelImpl extends ManagedChannel implements Instrumented