diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergMetadataCache.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergMetadataCache.java index 67d6e6cb6693d1..acda08b7378d58 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergMetadataCache.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergMetadataCache.java @@ -72,6 +72,9 @@ public IcebergMetadataCache(ExecutorService executor) { public List getSnapshotList(TIcebergMetadataParams params) throws UserException { CatalogIf catalog = Env.getCurrentEnv().getCatalogMgr().getCatalog(params.getCatalog()); + if (catalog == null) { + throw new UserException("The specified catalog does not exist:" + params.getCatalog()); + } IcebergMetadataCacheKey key = IcebergMetadataCacheKey.of(catalog, params.getDatabase(), params.getTable()); return snapshotListCache.get(key); diff --git a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java index 4948ea1f0ec4b7..616791151141c5 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java +++ b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java @@ -2153,15 +2153,20 @@ public TFrontendPingFrontendResult ping(TFrontendPingFrontendRequest request) th @Override public TFetchSchemaTableDataResult fetchSchemaTableData(TFetchSchemaTableDataRequest request) throws TException { - if (!request.isSetSchemaTableName()) { - return MetadataGenerator.errorResult("Fetch schema table name is not set"); - } - // tvf queries - if (request.getSchemaTableName() == TSchemaTableName.METADATA_TABLE) { - return MetadataGenerator.getMetadataTable(request); - } else { - // database information_schema's tables - return MetadataGenerator.getSchemaTableData(request); + try { + if (!request.isSetSchemaTableName()) { + return MetadataGenerator.errorResult("Fetch schema table name is not set"); + } + // tvf queries + if (request.getSchemaTableName() == TSchemaTableName.METADATA_TABLE) { + return MetadataGenerator.getMetadataTable(request); + } else { + // database information_schema's tables + return MetadataGenerator.getSchemaTableData(request); + } + } catch (Exception e) { + LOG.warn("Failed to fetchSchemaTableData", e); + return MetadataGenerator.errorResult(e.getMessage()); } }