{"record":{"id":"c50f032696656d86","repo":"apache/seatunnel","slug":"not-implement","errorCode":null,"errorMessage":"Not implement","messagePattern":"Not implement","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/catalog/HbaseCatalog.java","lineNumber":119,"sourceCode":"        return hbaseClient.listTables(databaseName);\n    }\n\n    @Override\n    public boolean tableExists(TablePath tablePath) throws CatalogException {\n        checkNotNull(tablePath);\n        String databaseName = tablePath.getDatabaseName();\n        String tableName = tablePath.getTableName();\n        String fullTableName =\n                (databaseName == null || databaseName.isEmpty())\n                        ? tableName\n                        : databaseName + \":\" + tableName;\n        return hbaseClient.tableExists(fullTableName);\n    }\n\n    @Override\n    public CatalogTable getTable(TablePath tablePath)\n            throws CatalogException, TableNotExistException {\n        throw new UnsupportedOperationException(\"Not implement\");\n    }\n\n    @Override\n    public void createTable(TablePath tablePath, CatalogTable table, boolean ignoreIfExists)\n            throws TableAlreadyExistException, DatabaseNotExistException, CatalogException {\n        checkNotNull(tablePath, \"tablePath cannot be null\");\n        if (tableExists(tablePath)) {\n            if (!ignoreIfExists) {\n                throw new TableAlreadyExistException(catalogName, tablePath);\n            }\n            return;\n        }\n        hbaseClient.createTable(\n                tablePath.getDatabaseName(),\n                tablePath.getTableName(),\n                hbaseParameters.getFamilyNames().values().stream()\n                        .filter(value -> !\"all_columns\".equals(value))\n                        .collect(Collectors.toList()),","sourceCodeStart":101,"sourceCodeEnd":137,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-hbase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/catalog/HbaseCatalog.java#L101-L137","documentation":"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.","triggerScenarios":"Calling HbaseCatalog.getTable(tablePath), e.g. during schema retrieval in catalog-based sink/source initialization or metadata APIs.","commonSituations":"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.","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."],"exampleFix":"// before\nCatalogTable table = catalog.getTable(TablePath.of(\"ns\", \"tbl\"));\n// after\n// Define schema in job config instead of querying the catalog\nsource {\n  Hbase {\n    schema = { fields { id: string, cf:name: string } }\n  }\n}","handlingStrategy":"fallback","validationCode":"// Avoid the call entirely; getTable is not supported by HbaseCatalog\nboolean tableSchemaSupported = !(catalog instanceof HbaseCatalog);","typeGuard":null,"tryCatchPattern":"try {\n    return catalog.getTable(tablePath);\n} catch (UnsupportedOperationException e) {\n    LOG.warn(\"HbaseCatalog.getTable not implemented; using schema from job config\");\n    return schemaFromJobConfig(tablePath); // fallback path\n}","preventionTips":["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."],"tags":["hbase","catalog","unimplemented"],"backgroundTag":"method-not-implemented","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}