diff --git a/CHANGES.md b/CHANGES.md index 3129731e80..5c8ab0a549 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -20,6 +20,7 @@ Release Notes. * Add a netty-http 4.1.x plugin to trace HTTP requests. * Fix Impala Jdbc URL (including schema without properties) parsing exception. * Optimize byte-buddy type description performance. +* Make the beforeMethod of DriverConnectInterceptor compatible with unknown JDBC URLs. #### Documentation diff --git a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/connectionurl/parser/URLParser.java b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/connectionurl/parser/URLParser.java index ddf2f20fc7..5a46088313 100644 --- a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/connectionurl/parser/URLParser.java +++ b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/connectionurl/parser/URLParser.java @@ -60,7 +60,10 @@ public static ConnectionInfo parser(String url) { parser = new ImpalaJdbcURLParser(url); } else if (lowerCaseUrl.startsWith(CLICKHOUSE_JDBC_URK_PREFIX)) { parser = new ClickHouseURLParser(url); + } else { + return null; } + return parser.parse(); } } diff --git a/apm-sniffer/apm-sdk-plugin/mysql-common/src/main/java/org/apache/skywalking/apm/plugin/jdbc/mysql/ConnectionCache.java b/apm-sniffer/apm-sdk-plugin/mysql-common/src/main/java/org/apache/skywalking/apm/plugin/jdbc/mysql/ConnectionCache.java index 890af81cf4..fed82eb2dd 100644 --- a/apm-sniffer/apm-sdk-plugin/mysql-common/src/main/java/org/apache/skywalking/apm/plugin/jdbc/mysql/ConnectionCache.java +++ b/apm-sniffer/apm-sdk-plugin/mysql-common/src/main/java/org/apache/skywalking/apm/plugin/jdbc/mysql/ConnectionCache.java @@ -38,6 +38,9 @@ public static ConnectionInfo get(String hostPortPair, String databaseName) { } public static void save(ConnectionInfo connectionInfo) { + if (connectionInfo == null) { + return; + } for (String conn : connectionInfo.getDatabasePeer().split(CONNECTION_SPLIT_STR)) { if (!StringUtil.isEmpty(conn)) { CONNECTIONS_MAP.putIfAbsent(conn + "/" + connectionInfo.getDatabaseName(), connectionInfo);