From e0934166f5106bb0eb2abd4faecaba117dabb64e Mon Sep 17 00:00:00 2001 From: Guangdong Liu Date: Tue, 14 Nov 2023 10:47:37 +0800 Subject: [PATCH] [bugfix](es-catalog)fix exception when querying ES table (#26788) --- .../doris/external/elasticsearch/EsNodeInfo.java | 6 +++++- .../doris/external/elasticsearch/EsNodeInfoTest.java | 11 +++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/EsNodeInfo.java b/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/EsNodeInfo.java index 1893c49734..706024c2ed 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/EsNodeInfo.java +++ b/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/EsNodeInfo.java @@ -110,7 +110,11 @@ public class EsNodeInfo { String[] scratch = seed.split(":"); int port = 80; if (scratch.length == 3) { - port = Integer.parseInt(scratch[2]); + String portStr = scratch[2]; + if (portStr.contains("/")) { + portStr = portStr.substring(0, portStr.indexOf('/')); + } + port = Integer.parseInt(portStr); } String remoteHost = scratch[0] + ":" + scratch[1]; this.name = remoteHost; diff --git a/fe/fe-core/src/test/java/org/apache/doris/external/elasticsearch/EsNodeInfoTest.java b/fe/fe-core/src/test/java/org/apache/doris/external/elasticsearch/EsNodeInfoTest.java index e44ad9322e..9350521b62 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/external/elasticsearch/EsNodeInfoTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/external/elasticsearch/EsNodeInfoTest.java @@ -43,4 +43,15 @@ public class EsNodeInfoTest extends EsTestCase { } } } + + @Test + public void testEsNodeInfo() { + EsNodeInfo node = new EsNodeInfo("0", "http://127.0.0.1:9200/"); + Assert.assertEquals("http://127.0.0.1", node.getHost()); + Assert.assertEquals(9200, node.getPublishAddress().getPort()); + node = new EsNodeInfo("0", "http://127.0.0.1:9200"); + Assert.assertEquals("http://127.0.0.1", node.getHost()); + Assert.assertEquals(9200, node.getPublishAddress().getPort()); + + } }