This is an automated email from the ASF dual-hosted git repository.

mchades pushed a commit to branch branch-1.3
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/branch-1.3 by this push:
     new 8d71bbfdf8 [Cherry-pick to branch-1.3] [#11389] fix(core): use 
internal dispatchers for internal metadata loading   (#11605) (#11695)
8d71bbfdf8 is described below

commit 8d71bbfdf8ce7e4051b64e9c31933aa1abb85781
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Jun 17 09:45:36 2026 +0800

    [Cherry-pick to branch-1.3] [#11389] fix(core): use internal dispatchers 
for internal metadata loading   (#11605) (#11695)
    
    **Cherry-pick Information:**
    - Original commit: de8e0bb4f3b6031db132c36e226a1a6dfe93e63c
    - Target branch: `branch-1.3`
    - Status: ✅ Clean cherry-pick (no conflicts)
    
    Co-authored-by: Shane <[email protected]>
---
 .../ranger/RangerAuthorizationHDFSPlugin.java      | 10 +++----
 .../test/RangerAuthorizationHDFSPluginIT.java      | 18 +++++++++++-
 .../java/org/apache/gravitino/GravitinoEnv.java    | 32 ++++++++++++++++++++++
 .../authorization/AuthorizationUtils.java          | 20 ++++++++------
 .../catalog/TopicOperationDispatcher.java          |  4 +--
 .../authorization/TestAuthorizationUtils.java      | 12 +++++---
 .../catalog/TestTableOperationDispatcher.java      |  5 ++--
 .../catalog/TestTopicOperationDispatcher.java      |  2 +-
 .../catalog/TestViewOperationDispatcher.java       |  6 ++--
 .../provider/TestDynamicIcebergConfigProvider.java |  2 --
 10 files changed, 84 insertions(+), 27 deletions(-)

diff --git 
a/authorizations/authorization-ranger/src/main/java/org/apache/gravitino/authorization/ranger/RangerAuthorizationHDFSPlugin.java
 
b/authorizations/authorization-ranger/src/main/java/org/apache/gravitino/authorization/ranger/RangerAuthorizationHDFSPlugin.java
index c70344ba7d..82f731f526 100644
--- 
a/authorizations/authorization-ranger/src/main/java/org/apache/gravitino/authorization/ranger/RangerAuthorizationHDFSPlugin.java
+++ 
b/authorizations/authorization-ranger/src/main/java/org/apache/gravitino/authorization/ranger/RangerAuthorizationHDFSPlugin.java
@@ -550,7 +550,7 @@ public class RangerAuthorizationHDFSPlugin extends 
RangerAuthorizationPlugin {
     if (type == Entity.EntityType.METALAKE) {
       NameIdentifier[] catalogs =
           GravitinoEnv.getInstance()
-              .catalogDispatcher()
+              .internalCatalogDispatcher()
               .listCatalogs(Namespace.of(identifier.name()));
       for (NameIdentifier catalog : catalogs) {
         locations.addAll(
@@ -592,7 +592,7 @@ public class RangerAuthorizationHDFSPlugin extends 
RangerAuthorizationPlugin {
       boolean recursive) {
     NameIdentifier[] catalogs =
         GravitinoEnv.getInstance()
-            .catalogDispatcher()
+            .internalCatalogDispatcher()
             .listCatalogs(Namespace.of(identifier.name()));
     for (NameIdentifier catalog : catalogs) {
       AuthorizationUtils.getMetadataObjectLocation(catalog, 
Entity.EntityType.CATALOG)
@@ -668,7 +668,7 @@ public class RangerAuthorizationHDFSPlugin extends 
RangerAuthorizationPlugin {
     if (metadataObject.type() == MetadataObject.Type.METALAKE) {
       NameIdentifier[] catalogs =
           GravitinoEnv.getInstance()
-              .catalogDispatcher()
+              .internalCatalogDispatcher()
               .listCatalogs(Namespace.of(identifier.name()));
       for (NameIdentifier catalog : catalogs) {
         locations.addAll(
@@ -723,11 +723,11 @@ public class RangerAuthorizationHDFSPlugin extends 
RangerAuthorizationPlugin {
           NameIdentifier ident = MetadataObjectUtil.toEntityIdent(metalake, 
newMetadataObject);
           NameIdentifier catalogIdent = 
NameIdentifierUtil.getCatalogIdentifier(ident);
           if (GravitinoEnv.getInstance()
-              .catalogDispatcher()
+              .internalCatalogDispatcher()
               .loadCatalog(catalogIdent)
               .provider()
               .equals("hive")) {
-            Table table = 
GravitinoEnv.getInstance().tableDispatcher().loadTable(ident);
+            Table table = 
GravitinoEnv.getInstance().internalTableDispatcher().loadTable(ident);
             if (table.properties().get("table-type").equals("EXTERNAL_TABLE")) 
{
               continue;
             }
diff --git 
a/authorizations/authorization-ranger/src/test/java/org/apache/gravitino/authorization/ranger/integration/test/RangerAuthorizationHDFSPluginIT.java
 
b/authorizations/authorization-ranger/src/test/java/org/apache/gravitino/authorization/ranger/integration/test/RangerAuthorizationHDFSPluginIT.java
index 2ec989a23e..be81b39003 100644
--- 
a/authorizations/authorization-ranger/src/test/java/org/apache/gravitino/authorization/ranger/integration/test/RangerAuthorizationHDFSPluginIT.java
+++ 
b/authorizations/authorization-ranger/src/test/java/org/apache/gravitino/authorization/ranger/integration/test/RangerAuthorizationHDFSPluginIT.java
@@ -53,17 +53,33 @@ public class RangerAuthorizationHDFSPluginIT {
 
   private static RangerAuthorizationPlugin rangerAuthPlugin;
   private static final CatalogDispatcher manager = 
mock(CatalogDispatcher.class);
+  private static CatalogDispatcher previousCatalogDispatcher;
+  private static CatalogDispatcher previousInternalCatalogDispatcher;
 
   @BeforeAll
   public static void setup() throws Exception {
     RangerITEnv.init(RangerITEnv.currentFunName(), true);
     rangerAuthPlugin = RangerITEnv.rangerAuthHDFSPlugin;
+    previousCatalogDispatcher =
+        (CatalogDispatcher)
+            FieldUtils.readField(GravitinoEnv.getInstance(), 
"catalogDispatcher", true);
+    previousInternalCatalogDispatcher =
+        (CatalogDispatcher)
+            FieldUtils.readField(GravitinoEnv.getInstance(), 
"internalCatalogDispatcher", true);
     FieldUtils.writeField(GravitinoEnv.getInstance(), "catalogDispatcher", 
manager, true);
+    FieldUtils.writeField(GravitinoEnv.getInstance(), 
"internalCatalogDispatcher", manager, true);
     when(manager.listCatalogs(any())).thenReturn(new NameIdentifier[0]);
   }
 
   @AfterAll
-  public static void cleanup() {
+  public static void cleanup() throws IllegalAccessException {
+    FieldUtils.writeField(
+        GravitinoEnv.getInstance(), "catalogDispatcher", 
previousCatalogDispatcher, true);
+    FieldUtils.writeField(
+        GravitinoEnv.getInstance(),
+        "internalCatalogDispatcher",
+        previousInternalCatalogDispatcher,
+        true);
     RangerITEnv.cleanup();
   }
 
diff --git a/core/src/main/java/org/apache/gravitino/GravitinoEnv.java 
b/core/src/main/java/org/apache/gravitino/GravitinoEnv.java
index 700e187b89..11c1291129 100644
--- a/core/src/main/java/org/apache/gravitino/GravitinoEnv.java
+++ b/core/src/main/java/org/apache/gravitino/GravitinoEnv.java
@@ -137,8 +137,12 @@ public class GravitinoEnv {
 
   private FilesetDispatcher filesetDispatcher;
 
+  private FilesetDispatcher internalFilesetDispatcher;
+
   private TopicDispatcher topicDispatcher;
 
+  private TopicDispatcher internalTopicDispatcher;
+
   private ModelDispatcher modelDispatcher;
 
   private FunctionDispatcher functionDispatcher;
@@ -365,6 +369,17 @@ public class GravitinoEnv {
     return filesetDispatcher;
   }
 
+  /**
+   * Get the internal FilesetDispatcher associated with the Gravitino 
environment.
+   *
+   * @return The internal FilesetDispatcher instance.
+   */
+  public FilesetDispatcher internalFilesetDispatcher() {
+    Preconditions.checkArgument(
+        internalFilesetDispatcher != null, "GravitinoEnv is not initialized.");
+    return internalFilesetDispatcher;
+  }
+
   /**
    * Get the TopicDispatcher associated with the Gravitino environment.
    *
@@ -374,6 +389,17 @@ public class GravitinoEnv {
     return topicDispatcher;
   }
 
+  /**
+   * Get the internal TopicDispatcher associated with the Gravitino 
environment.
+   *
+   * @return The internal TopicDispatcher instance.
+   */
+  public TopicDispatcher internalTopicDispatcher() {
+    Preconditions.checkArgument(
+        internalTopicDispatcher != null, "GravitinoEnv is not initialized.");
+    return internalTopicDispatcher;
+  }
+
   /**
    * Get the MetalakeDispatcher associated with the Gravitino environment.
    *
@@ -652,6 +678,7 @@ public class GravitinoEnv {
     // CatalogManager registers its own change-log listener with the entity 
store (when the store
     // supports it), so no poller wiring is needed here.
     this.catalogManager = new CatalogManager(config, entityStore, idGenerator);
+    this.internalCatalogDispatcher = catalogManager;
     CatalogNormalizeDispatcher catalogNormalizeDispatcher =
         new CatalogNormalizeDispatcher(catalogManager);
     this.internalCatalogDispatcher = catalogNormalizeDispatcher;
@@ -664,6 +691,7 @@ public class GravitinoEnv {
 
     SchemaOperationDispatcher schemaOperationDispatcher =
         new SchemaOperationDispatcher(catalogManager, entityStore, 
idGenerator);
+    this.internalSchemaDispatcher = schemaOperationDispatcher;
     SchemaNormalizeDispatcher schemaNormalizeDispatcher =
         new SchemaNormalizeDispatcher(schemaOperationDispatcher, 
catalogManager);
     this.internalSchemaDispatcher = schemaNormalizeDispatcher;
@@ -673,6 +701,7 @@ public class GravitinoEnv {
 
     TableOperationDispatcher tableOperationDispatcher =
         new TableOperationDispatcher(catalogManager, entityStore, idGenerator);
+    this.internalTableDispatcher = tableOperationDispatcher;
     TableNormalizeDispatcher tableNormalizeDispatcher =
         new TableNormalizeDispatcher(tableOperationDispatcher, catalogManager);
     TableOperationDispatcher internalTableOperationDispatcher =
@@ -696,6 +725,7 @@ public class GravitinoEnv {
         new FilesetOperationDispatcher(catalogManager, entityStore, 
idGenerator);
     FilesetNormalizeDispatcher filesetNormalizeDispatcher =
         new FilesetNormalizeDispatcher(filesetOperationDispatcher, 
catalogManager);
+    this.internalFilesetDispatcher = filesetNormalizeDispatcher;
     FilesetEventDispatcher filesetEventDispatcher =
         new FilesetEventDispatcher(eventBus, filesetNormalizeDispatcher);
     this.filesetDispatcher = new FilesetHookDispatcher(filesetEventDispatcher);
@@ -704,6 +734,7 @@ public class GravitinoEnv {
         new TopicOperationDispatcher(catalogManager, entityStore, idGenerator);
     TopicNormalizeDispatcher topicNormalizeDispatcher =
         new TopicNormalizeDispatcher(topicOperationDispatcher, catalogManager);
+    this.internalTopicDispatcher = topicNormalizeDispatcher;
     TopicEventDispatcher topicEventDispatcher =
         new TopicEventDispatcher(eventBus, topicNormalizeDispatcher);
     this.topicDispatcher = new TopicHookDispatcher(topicEventDispatcher);
@@ -734,6 +765,7 @@ public class GravitinoEnv {
     // privilege support is finalized.
     ViewOperationDispatcher viewOperationDispatcher =
         new ViewOperationDispatcher(catalogManager, entityStore, idGenerator);
+    this.internalViewDispatcher = viewOperationDispatcher;
     ViewNormalizeDispatcher viewNormalizeDispatcher =
         new ViewNormalizeDispatcher(viewOperationDispatcher, catalogManager);
     ViewOperationDispatcher internalViewOperationDispatcher =
diff --git 
a/core/src/main/java/org/apache/gravitino/authorization/AuthorizationUtils.java 
b/core/src/main/java/org/apache/gravitino/authorization/AuthorizationUtils.java
index 2f5518ad84..7ac6008c1d 100644
--- 
a/core/src/main/java/org/apache/gravitino/authorization/AuthorizationUtils.java
+++ 
b/core/src/main/java/org/apache/gravitino/authorization/AuthorizationUtils.java
@@ -471,7 +471,8 @@ public class AuthorizationUtils {
 
   private static void checkCatalogType(
       NameIdentifier catalogIdent, Catalog.Type type, Privilege privilege) {
-    Catalog catalog = 
GravitinoEnv.getInstance().catalogDispatcher().loadCatalog(catalogIdent);
+    Catalog catalog =
+        
GravitinoEnv.getInstance().internalCatalogDispatcher().loadCatalog(catalogIdent);
     if (catalog.type() != type) {
       throw new IllegalPrivilegeException(
           "Catalog %s type %s doesn't support privilege %s",
@@ -505,7 +506,8 @@ public class AuthorizationUtils {
   private static String getHiveDefaultLocation(String metalakeName, String 
catalogName) {
     NameIdentifier defaultSchemaIdent =
         NameIdentifier.of(metalakeName, catalogName, "default" /*Hive default 
schema*/);
-    Schema schema = 
GravitinoEnv.getInstance().schemaDispatcher().loadSchema(defaultSchemaIdent);
+    Schema schema =
+        
GravitinoEnv.getInstance().internalSchemaDispatcher().loadSchema(defaultSchemaIdent);
     if (schema.properties().containsKey(HiveConstants.LOCATION)) {
       String defaultSchemaLocation = 
schema.properties().get(HiveConstants.LOCATION);
       if (defaultSchemaLocation != null && !defaultSchemaLocation.isEmpty()) {
@@ -533,7 +535,8 @@ public class AuthorizationUtils {
           break;
         case CATALOG:
           {
-            Catalog catalogObj = 
GravitinoEnv.getInstance().catalogDispatcher().loadCatalog(ident);
+            Catalog catalogObj =
+                
GravitinoEnv.getInstance().internalCatalogDispatcher().loadCatalog(ident);
             if (catalogObj.provider().equals("hive")) {
               // The Hive default schema location is Hive warehouse directory
               String defaultSchemaLocation =
@@ -547,10 +550,10 @@ public class AuthorizationUtils {
         case SCHEMA:
           Catalog catalogObj =
               GravitinoEnv.getInstance()
-                  .catalogDispatcher()
+                  .internalCatalogDispatcher()
                   .loadCatalog(
                       NameIdentifier.of(ident.namespace().level(0), 
ident.namespace().level(1)));
-          Schema schema = 
GravitinoEnv.getInstance().schemaDispatcher().loadSchema(ident);
+          Schema schema = 
GravitinoEnv.getInstance().internalSchemaDispatcher().loadSchema(ident);
 
           switch (catalogObj.type()) {
             case RELATIONAL:
@@ -594,11 +597,11 @@ public class AuthorizationUtils {
           {
             catalogObj =
                 GravitinoEnv.getInstance()
-                    .catalogDispatcher()
+                    .internalCatalogDispatcher()
                     .loadCatalog(
                         NameIdentifier.of(ident.namespace().level(0), 
ident.namespace().level(1)));
             if (catalogObj.provider().equals("hive")) {
-              Table table = 
GravitinoEnv.getInstance().tableDispatcher().loadTable(ident);
+              Table table = 
GravitinoEnv.getInstance().internalTableDispatcher().loadTable(ident);
               if (table.properties().containsKey(HiveConstants.LOCATION)) {
                 String tableLocation = 
table.properties().get(HiveConstants.LOCATION);
                 if (StringUtils.isNotBlank(tableLocation)) {
@@ -611,7 +614,8 @@ public class AuthorizationUtils {
           }
           break;
         case FILESET:
-          FilesetDispatcher filesetDispatcher = 
GravitinoEnv.getInstance().filesetDispatcher();
+          FilesetDispatcher filesetDispatcher =
+              GravitinoEnv.getInstance().internalFilesetDispatcher();
           Fileset fileset = filesetDispatcher.loadFileset(ident);
           Preconditions.checkArgument(
               fileset != null, String.format("Fileset %s is not found", 
ident));
diff --git 
a/core/src/main/java/org/apache/gravitino/catalog/TopicOperationDispatcher.java 
b/core/src/main/java/org/apache/gravitino/catalog/TopicOperationDispatcher.java
index 63711a393c..c68f33c682 100644
--- 
a/core/src/main/java/org/apache/gravitino/catalog/TopicOperationDispatcher.java
+++ 
b/core/src/main/java/org/apache/gravitino/catalog/TopicOperationDispatcher.java
@@ -98,7 +98,7 @@ public class TopicOperationDispatcher extends 
OperationDispatcher implements Top
     if (!topic.imported()) {
       // Load the schema to make sure the schema is imported.
       // This is not necessary for Kafka catalogs.
-      SchemaDispatcher schemaDispatcher = 
GravitinoEnv.getInstance().schemaDispatcher();
+      SchemaDispatcher schemaDispatcher = 
GravitinoEnv.getInstance().internalSchemaDispatcher();
       NameIdentifier schemaIdent = 
NameIdentifier.of(ident.namespace().levels());
       schemaDispatcher.loadSchema(schemaIdent);
 
@@ -134,7 +134,7 @@ public class TopicOperationDispatcher extends 
OperationDispatcher implements Top
       throws NoSuchSchemaException, TopicAlreadyExistsException {
 
     // Load the schema to make sure the schema exists.
-    SchemaDispatcher schemaDispatcher = 
GravitinoEnv.getInstance().schemaDispatcher();
+    SchemaDispatcher schemaDispatcher = 
GravitinoEnv.getInstance().internalSchemaDispatcher();
     NameIdentifier schemaIdent = NameIdentifier.of(ident.namespace().levels());
     schemaDispatcher.loadSchema(schemaIdent);
 
diff --git 
a/core/src/test/java/org/apache/gravitino/authorization/TestAuthorizationUtils.java
 
b/core/src/test/java/org/apache/gravitino/authorization/TestAuthorizationUtils.java
index e27b68bb91..c0ae444eb0 100644
--- 
a/core/src/test/java/org/apache/gravitino/authorization/TestAuthorizationUtils.java
+++ 
b/core/src/test/java/org/apache/gravitino/authorization/TestAuthorizationUtils.java
@@ -240,8 +240,10 @@ class TestAuthorizationUtils {
     
Mockito.when(catalogDispatcher.loadCatalog(Mockito.any())).thenReturn(catalog);
     Mockito.when(tableDispatcher.loadTable(Mockito.any())).thenReturn(table);
 
-    FieldUtils.writeField(GravitinoEnv.getInstance(), "catalogDispatcher", 
catalogDispatcher, true);
-    FieldUtils.writeField(GravitinoEnv.getInstance(), "tableDispatcher", 
tableDispatcher, true);
+    FieldUtils.writeField(
+        GravitinoEnv.getInstance(), "internalCatalogDispatcher", 
catalogDispatcher, true);
+    FieldUtils.writeField(
+        GravitinoEnv.getInstance(), "internalTableDispatcher", 
tableDispatcher, true);
     FieldUtils.writeField(
         GravitinoEnv.getInstance(), "accessControlDispatcher", 
accessControlDispatcher, true);
 
@@ -276,8 +278,10 @@ class TestAuthorizationUtils {
 
     FieldUtils.writeField(
         GravitinoEnv.getInstance(), "accessControlDispatcher", 
accessControlDispatcher, true);
-    FieldUtils.writeField(GravitinoEnv.getInstance(), "catalogDispatcher", 
catalogDispatcher, true);
-    FieldUtils.writeField(GravitinoEnv.getInstance(), "schemaDispatcher", 
schemaDispatcher, true);
+    FieldUtils.writeField(
+        GravitinoEnv.getInstance(), "internalCatalogDispatcher", 
catalogDispatcher, true);
+    FieldUtils.writeField(
+        GravitinoEnv.getInstance(), "internalSchemaDispatcher", 
schemaDispatcher, true);
 
     List<String> locations =
         AuthorizationUtils.getMetadataObjectLocation(
diff --git 
a/core/src/test/java/org/apache/gravitino/catalog/TestTableOperationDispatcher.java
 
b/core/src/test/java/org/apache/gravitino/catalog/TestTableOperationDispatcher.java
index 36c142cc4f..260d23a4c0 100644
--- 
a/core/src/test/java/org/apache/gravitino/catalog/TestTableOperationDispatcher.java
+++ 
b/core/src/test/java/org/apache/gravitino/catalog/TestTableOperationDispatcher.java
@@ -82,7 +82,8 @@ public class TestTableOperationDispatcher extends 
TestOperationDispatcher {
     schemaOperationDispatcher =
         new SchemaOperationDispatcher(catalogManager, entityStore, 
idGenerator);
     tableOperationDispatcher =
-        new TableOperationDispatcher(catalogManager, entityStore, idGenerator);
+        new TableOperationDispatcher(
+            catalogManager, entityStore, idGenerator, () -> 
schemaOperationDispatcher);
 
     Config config = mock(Config.class);
     doReturn(100000L).when(config).get(TREE_LOCK_MAX_NODE_IN_MEMORY);
@@ -90,7 +91,7 @@ public class TestTableOperationDispatcher extends 
TestOperationDispatcher {
     doReturn(36000L).when(config).get(TREE_LOCK_CLEAN_INTERVAL);
     FieldUtils.writeField(GravitinoEnv.getInstance(), "lockManager", new 
LockManager(config), true);
     FieldUtils.writeField(
-        GravitinoEnv.getInstance(), "schemaDispatcher", 
schemaOperationDispatcher, true);
+        GravitinoEnv.getInstance(), "internalSchemaDispatcher", 
schemaOperationDispatcher, true);
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/gravitino/catalog/TestTopicOperationDispatcher.java
 
b/core/src/test/java/org/apache/gravitino/catalog/TestTopicOperationDispatcher.java
index 0aea8c6604..50055ef183 100644
--- 
a/core/src/test/java/org/apache/gravitino/catalog/TestTopicOperationDispatcher.java
+++ 
b/core/src/test/java/org/apache/gravitino/catalog/TestTopicOperationDispatcher.java
@@ -76,7 +76,7 @@ public class TestTopicOperationDispatcher extends 
TestOperationDispatcher {
     doReturn(36000L).when(config).get(TREE_LOCK_CLEAN_INTERVAL);
     FieldUtils.writeField(GravitinoEnv.getInstance(), "lockManager", new 
LockManager(config), true);
     FieldUtils.writeField(
-        GravitinoEnv.getInstance(), "schemaDispatcher", 
schemaOperationDispatcher, true);
+        GravitinoEnv.getInstance(), "internalSchemaDispatcher", 
schemaOperationDispatcher, true);
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/gravitino/catalog/TestViewOperationDispatcher.java
 
b/core/src/test/java/org/apache/gravitino/catalog/TestViewOperationDispatcher.java
index 7f75fe1984..8f5b0403f1 100644
--- 
a/core/src/test/java/org/apache/gravitino/catalog/TestViewOperationDispatcher.java
+++ 
b/core/src/test/java/org/apache/gravitino/catalog/TestViewOperationDispatcher.java
@@ -73,7 +73,9 @@ public class TestViewOperationDispatcher extends 
TestOperationDispatcher {
   public static void initialize() throws IOException, IllegalAccessException {
     schemaOperationDispatcher =
         new SchemaOperationDispatcher(catalogManager, entityStore, 
idGenerator);
-    viewOperationDispatcher = new ViewOperationDispatcher(catalogManager, 
entityStore, idGenerator);
+    viewOperationDispatcher =
+        new ViewOperationDispatcher(
+            catalogManager, entityStore, idGenerator, () -> 
schemaOperationDispatcher);
 
     Config config = mock(Config.class);
     doReturn(100000L).when(config).get(TREE_LOCK_MAX_NODE_IN_MEMORY);
@@ -81,7 +83,7 @@ public class TestViewOperationDispatcher extends 
TestOperationDispatcher {
     doReturn(36000L).when(config).get(TREE_LOCK_CLEAN_INTERVAL);
     FieldUtils.writeField(GravitinoEnv.getInstance(), "lockManager", new 
LockManager(config), true);
     FieldUtils.writeField(
-        GravitinoEnv.getInstance(), "schemaDispatcher", 
schemaOperationDispatcher, true);
+        GravitinoEnv.getInstance(), "internalSchemaDispatcher", 
schemaOperationDispatcher, true);
   }
 
   public static ViewOperationDispatcher getViewOperationDispatcher() {
diff --git 
a/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/provider/TestDynamicIcebergConfigProvider.java
 
b/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/provider/TestDynamicIcebergConfigProvider.java
index 93f5be1b5f..d5b2024152 100644
--- 
a/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/provider/TestDynamicIcebergConfigProvider.java
+++ 
b/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/provider/TestDynamicIcebergConfigProvider.java
@@ -62,7 +62,6 @@ public class TestDynamicIcebergConfigProvider {
   @AfterEach
   public void tearDown() throws IllegalAccessException {
     // Clean up GravitinoEnv and IcebergRESTServerContext state after each test
-    FieldUtils.writeField(GravitinoEnv.getInstance(), "catalogDispatcher", 
null, true);
     FieldUtils.writeField(GravitinoEnv.getInstance(), 
"internalCatalogDispatcher", null, true);
     resetServerContext();
   }
@@ -371,7 +370,6 @@ public class TestDynamicIcebergConfigProvider {
     createMockServerContext(true);
 
     // Ensure internal CatalogDispatcher is null (simulating GravitinoEnv not 
initialized)
-    FieldUtils.writeField(GravitinoEnv.getInstance(), "catalogDispatcher", 
null, true);
     FieldUtils.writeField(GravitinoEnv.getInstance(), 
"internalCatalogDispatcher", null, true);
 
     // Initialize provider with required properties

Reply via email to