{"record":{"id":"af03462ebe50b17c","repo":"apache/beam","slug":"readonlycatalogmanager-does-not-support-registering-a-table","errorCode":null,"errorMessage":"ReadOnlyCatalogManager does not support registering a table provider","messagePattern":"ReadOnlyCatalogManager does not support registering a table provider","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/catalog/EmptyCatalogManager.java","lineNumber":55,"sourceCode":"  @Override\n  public Catalog currentCatalog() {\n    return EMPTY;\n  }\n\n  @Override\n  public @Nullable Catalog getCatalog(String name) {\n    return name.equalsIgnoreCase(EMPTY.name()) ? EMPTY : null;\n  }\n\n  @Override\n  public void dropCatalog(String name) {\n    throw new UnsupportedOperationException(\n        \"ReadOnlyCatalogManager does not support removing a catalog\");\n  }\n\n  @Override\n  public void registerTableProvider(TableProvider tableProvider) {\n    throw new UnsupportedOperationException(\n        \"ReadOnlyCatalogManager does not support registering a table provider\");\n  }\n\n  @Override\n  public Map<String, TableProvider> tableProviders() {\n    return EMPTY.tableProviders;\n  }\n\n  @Override\n  public void createCatalog(String name, String type, Map<String, String> properties) {\n    throw new UnsupportedOperationException(\n        \"ReadOnlyCatalogManager does not support catalog creation\");\n  }\n\n  @Override\n  public Collection<Catalog> catalogs() {\n    return ImmutableSet.of(EMPTY);\n  }","sourceCodeStart":37,"sourceCodeEnd":73,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/catalog/EmptyCatalogManager.java#L37-L73","documentation":"registerTableProvider on EmptyCatalogManager is an unconditionally throwing guard: this read-only placeholder manager cannot accept new table providers, since it exposes no persistent catalog storage.","triggerScenarios":"Thrown at sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/catalog/EmptyCatalogManager.java:55 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Register table providers on a mutable catalog manager (e.g. InMemoryCatalogManager) instead.","If read-only usage is intended, remove the registration call; tables must already exist in the provider."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-20T03:17:13.778Z"}