{"record":{"id":"c35e365ce4bd757e","repo":"apache/beam","slug":"readonlycatalogmanager-does-not-support-removing-a-catalog","errorCode":null,"errorMessage":"ReadOnlyCatalogManager does not support removing a catalog","messagePattern":"ReadOnlyCatalogManager does not support removing a catalog","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":49,"sourceCode":"  public void useCatalog(String name) {\n    if (!EMPTY.name().equalsIgnoreCase(name)) {\n      throw new IllegalArgumentException(\"Catalog not found: \" + name);\n    }\n  }\n\n  @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\");","sourceCodeStart":31,"sourceCodeEnd":67,"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#L31-L67","documentation":"EmptyCatalogManager is a read-only stub, so dropCatalog is a hardcoded guard that always throws UnsupportedOperationException: removing catalogs is not possible through this manager regardless of the name supplied.","triggerScenarios":"Thrown at sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/catalog/EmptyCatalogManager.java:49 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Avoid DDL against the empty/read-only catalog manager.","Use a mutable manager such as InMemoryCatalogManager if catalog removal is required."],"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"}