diff --git a/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/jdbc/TraceListenerStrategy.java b/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/jdbc/TraceListenerStrategy.java index 21562bee7..a1060b070 100644 --- a/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/jdbc/TraceListenerStrategy.java +++ b/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/jdbc/TraceListenerStrategy.java @@ -143,13 +143,16 @@ class TraceListenerStrategy { parseAndSetServerIpAndPort(connectionInfo, connection, dataSourceName); if (connectionSpan != null) { connectionSpan.getSpan().remoteServiceName(connectionInfo.remoteServiceName); - connectionSpan.getSpan().remoteIpAndPort(connectionInfo.url.getHost(), connectionInfo.url.getPort()); + if (connectionInfo.url != null) { + connectionSpan.getSpan().remoteIpAndPort(connectionInfo.url.getHost(), + connectionInfo.url.getPort()); + } } } else if (t != null) { this.openConnections.remove(connectionKey); if (isCurrent(connectionInfo)) { - this.currentConnection.set(null); + this.currentConnection.remove(); } if (connectionSpan != null) { if (log.isTraceEnabled()) { @@ -408,7 +411,7 @@ class TraceListenerStrategy { } ConnectionInfo connectionInfo = this.openConnections.remove(connectionKey); if (isCurrent(connectionInfo)) { - this.currentConnection.set(null); + this.currentConnection.remove(); } if (connectionInfo == null) { // connection is already closed @@ -498,8 +501,10 @@ class TraceListenerStrategy { final Map nestedResultSetSpans = new ConcurrentHashMap<>(); + @Nullable URI url; + @Nullable String remoteServiceName; ConnectionInfo(@Nullable SpanAndScope span) {