diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/connectivity/IcebergRestConnectivityTester.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/connectivity/IcebergRestConnectivityTester.java index ca00fba1501d2c..b1dd028067267f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/connectivity/IcebergRestConnectivityTester.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/connectivity/IcebergRestConnectivityTester.java @@ -22,7 +22,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.iceberg.CatalogProperties; -import org.apache.iceberg.rest.RESTSessionCatalog; +import org.apache.iceberg.rest.RESTCatalog; import java.util.Map; import java.util.regex.Pattern; @@ -46,16 +46,20 @@ public String getTestType() { @Override public String getErrorHint() { return "Please check Iceberg REST Catalog URI, authentication credentials (OAuth2 or SigV4), " - + "warehouse location, and endpoint connectivity"; + + "warehouse (location, catalog name, or S3 Tables ARN), and endpoint connectivity"; } @Override public void testConnection() throws Exception { Map restProps = ((IcebergRestProperties) properties).getIcebergRestCatalogProperties(); - try (RESTSessionCatalog catalog = new RESTSessionCatalog()) { + try (RESTCatalog catalog = new RESTCatalog()) { catalog.initialize("connectivity-test", restProps); + // Validate connection by listing namespaces. + // This verifies authentication and warehouse configuration. + catalog.listNamespaces(); + Map mergedProps = catalog.properties(); String location = mergedProps.get(CatalogProperties.WAREHOUSE_LOCATION); this.warehouseLocation = validateLocation(location);