apache/seatunnel · error · UnsupportedOperationException
Not implement
Error message
Not implement
What it means
HbaseCatalog.getTable is unimplemented: it unconditionally throws UnsupportedOperationException("Not implement"). Any code path that resolves a CatalogTable through this catalog will fail regardless of input.
Source
Thrown at seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/catalog/HbaseCatalog.java:119
return hbaseClient.listTables(databaseName);
}
@Override
public boolean tableExists(TablePath tablePath) throws CatalogException {
checkNotNull(tablePath);
String databaseName = tablePath.getDatabaseName();
String tableName = tablePath.getTableName();
String fullTableName =
(databaseName == null || databaseName.isEmpty())
? tableName
: databaseName + ":" + tableName;
return hbaseClient.tableExists(fullTableName);
}
@Override
public CatalogTable getTable(TablePath tablePath)
throws CatalogException, TableNotExistException {
throw new UnsupportedOperationException("Not implement");
}
@Override
public void createTable(TablePath tablePath, CatalogTable table, boolean ignoreIfExists)
throws TableAlreadyExistException, DatabaseNotExistException, CatalogException {
checkNotNull(tablePath, "tablePath cannot be null");
if (tableExists(tablePath)) {
if (!ignoreIfExists) {
throw new TableAlreadyExistException(catalogName, tablePath);
}
return;
}
hbaseClient.createTable(
tablePath.getDatabaseName(),
tablePath.getTableName(),
hbaseParameters.getFamilyNames().values().stream()
.filter(value -> !"all_columns".equals(value))
.collect(Collectors.toList()),View on GitHub (pinned to cf67b549a7)
Solutions
- Avoid code paths that require getTable on the HBase catalog; define schema explicitly in the SeaTunnel job config (schema = { ... }).
- Wait for / upgrade to a connector version implementing getTable.
- Contribute or patch HbaseCatalog.getTable to build a CatalogTable from HBase table metadata.
Example fix
// before
CatalogTable table = catalog.getTable(TablePath.of("ns", "tbl"));
// after
// Define schema in job config instead of querying the catalog
source {
Hbase {
schema = { fields { id: string, cf:name: string } }
}
} Defensive patterns
Strategy: fallback
Validate before calling
// Avoid the call entirely; getTable is not supported by HbaseCatalog boolean tableSchemaSupported = !(catalog instanceof HbaseCatalog);
Try / catch
try {
return catalog.getTable(tablePath);
} catch (UnsupportedOperationException e) {
LOG.warn("HbaseCatalog.getTable not implemented; using schema from job config");
return schemaFromJobConfig(tablePath); // fallback path
} Prevention
- Do not rely on catalog metadata retrieval for HBase; declare schema explicitly in the job config.
- Check connector docs/version for getTable support before using catalog-driven flows.
- Wrap getTable in a fallback that builds the schema from config.
When it happens
Trigger: Calling HbaseCatalog.getTable(tablePath), e.g. during schema retrieval in catalog-based sink/source initialization or metadata APIs.
Common situations: Frameworks or tools that automatically call getTable to fetch schema; users expecting full catalog read support from the HBase connector; version where schema inference was never implemented.
Related errors
- Failed to open catalog %s
- DatabaseNotExistException: database '${databaseName}' does n
- TableAlreadyExistException: table '${tablePath}' already exi
- TableNotExistException: table '${tablePath}' does not exist
- DatabaseAlreadyExistException: database '${databaseName}' al
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/c50f032696656d86.
Report an issue: GitHub.