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

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new 83cdd44d6ba branch-2.1: [fix](catalog) synchronize reset methods in 
catalog classes and remove Lombok annotations (#53168)
83cdd44d6ba is described below

commit 83cdd44d6bab2691ec2c97daa03db19fb49fe4f8
Author: zy-kkk <[email protected]>
AuthorDate: Wed Jul 16 12:28:50 2025 +0800

    branch-2.1: [fix](catalog) synchronize reset methods in catalog classes and 
remove Lombok annotations (#53168)
    
    pick (#51787)
---
 .../apache/doris/datasource/ExternalCatalog.java   | 36 +++++++++++++++++++---
 .../apache/doris/datasource/ExternalDatabase.java  |  2 +-
 .../org/apache/doris/datasource/ExternalTable.java | 34 ++++++++++++++++++--
 .../doris/datasource/hive/HMSExternalCatalog.java  |  2 +-
 .../doris/datasource/jdbc/JdbcExternalCatalog.java |  8 +++--
 .../datasource/iceberg/CreateIcebergTableTest.java |  4 +--
 .../paimon/PaimonExternalCatalogTest.java          |  2 +-
 .../apache/doris/planner/HiveTableSinkTest.java    |  2 +-
 8 files changed, 74 insertions(+), 16 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java
index 6052be35f57..527d08f94e0 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java
@@ -71,7 +71,6 @@ import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
 import com.google.gson.annotations.SerializedName;
-import lombok.Data;
 import org.apache.commons.lang3.NotImplementedException;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.conf.Configuration;
@@ -98,7 +97,6 @@ import java.util.stream.Collectors;
 /**
  * The abstract class for all types of external catalogs.
  */
-@Data
 public abstract class ExternalCatalog
         implements CatalogIf<ExternalDatabase<? extends ExternalTable>>, 
Writable, GsonPostProcessable {
     private static final Logger LOG = 
LogManager.getLogger(ExternalCatalog.class);
@@ -337,7 +335,7 @@ public abstract class ExternalCatalog
     // check if all required properties are set when creating catalog
     public void checkProperties() throws DdlException {
         // check refresh parameter of catalog
-        Map<String, String> properties = getCatalogProperty().getProperties();
+        Map<String, String> properties = catalogProperty.getProperties();
         if (properties.containsKey(CatalogMgr.METADATA_REFRESH_INTERVAL_SEC)) {
             try {
                 Integer metadataRefreshIntervalSec = Integer.valueOf(
@@ -368,7 +366,7 @@ public abstract class ExternalCatalog
      * isDryRun: if true, it will try to create the custom access controller, 
but will not add it to the access manager.
      */
     public void initAccessController(boolean isDryRun) {
-        Map<String, String> properties = getCatalogProperty().getProperties();
+        Map<String, String> properties = catalogProperty.getProperties();
         // 1. get access controller class name
         String className = 
properties.getOrDefault(CatalogMgr.ACCESS_CONTROLLER_CLASS_PROP, "");
         if (Strings.isNullOrEmpty(className)) {
@@ -534,7 +532,7 @@ public abstract class ExternalCatalog
      * @param invalidCache if {@code true}, the catalog cache will be 
invalidated
      *                     and reloaded during the refresh process.
      */
-    public void resetToUninitialized(boolean invalidCache) {
+    public synchronized void resetToUninitialized(boolean invalidCache) {
         this.objectCreated = false;
         this.initialized = false;
         synchronized (this.propLock) {
@@ -986,6 +984,14 @@ public abstract class ExternalCatalog
         dbNameToId.put(ClusterNamespace.getNameFromFullName(db.getFullName()), 
db.getId());
     }
 
+    /**
+     * Set the initialized status for testing purposes only.
+     * This method should only be used in test cases.
+     */
+    public void setInitializedForTest(boolean initialized) {
+        this.initialized = initialized;
+    }
+
     @Override
     public void createDb(CreateDbStmt stmt) throws DdlException {
         makeSureInitialized();
@@ -1182,4 +1188,24 @@ public abstract class ExternalCatalog
     public ThreadPoolExecutor getThreadPoolExecutor() {
         return threadPoolWithPreAuth;
     }
+
+    public CatalogProperty getCatalogProperty() {
+        return catalogProperty;
+    }
+
+    public Optional<Boolean> getUseMetaCache() {
+        return useMetaCache;
+    }
+
+    public Map<Pair<String, String>, String> getTableAutoAnalyzePolicy() {
+        return tableAutoAnalyzePolicy;
+    }
+
+    public TransactionManager getTransactionManager() {
+        return transactionManager;
+    }
+
+    public ThreadPoolExecutor getThreadPoolWithPreAuth() {
+        return threadPoolWithPreAuth;
+    }
 }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalDatabase.java 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalDatabase.java
index 2f547351da6..8608a578761 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalDatabase.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalDatabase.java
@@ -132,7 +132,7 @@ public abstract class ExternalDatabase<T extends 
ExternalTable>
         }
     }
 
-    public void setUnInitialized(boolean invalidCache) {
+    public synchronized void setUnInitialized(boolean invalidCache) {
         this.initialized = false;
         this.invalidCacheInInit = invalidCache;
         if (extCatalog.getUseMetaCache().isPresent()) {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalTable.java 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalTable.java
index 82609c62e58..eb28dc94468 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalTable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalTable.java
@@ -45,7 +45,6 @@ import org.apache.doris.thrift.TTableDescriptor;
 import com.google.common.base.Objects;
 import com.google.common.collect.Lists;
 import com.google.gson.annotations.SerializedName;
-import lombok.Getter;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.NotImplementedException;
 import org.apache.logging.log4j.LogManager;
@@ -65,7 +64,6 @@ import java.util.stream.Collectors;
  * External table represent tables that are not self-managed by Doris.
  * Such as tables from hive, iceberg, es, etc.
  */
-@Getter
 public class ExternalTable implements TableIf, Writable, GsonPostProcessable {
     private static final Logger LOG = 
LogManager.getLogger(ExternalTable.class);
 
@@ -479,4 +477,36 @@ public class ExternalTable implements TableIf, Writable, 
GsonPostProcessable {
     public int hashCode() {
         return Objects.hashCode(name, db);
     }
+
+    public long getSchemaUpdateTime() {
+        return schemaUpdateTime;
+    }
+
+    public long getDbId() {
+        return dbId;
+    }
+
+    public boolean isObjectCreated() {
+        return objectCreated;
+    }
+
+    public ExternalCatalog getCatalog() {
+        return catalog;
+    }
+
+    public ExternalDatabase getDb() {
+        return db;
+    }
+
+    public long getTimestamp() {
+        return timestamp;
+    }
+
+    public String getDbName() {
+        return dbName;
+    }
+
+    public TableAttributes getTableAttributes() {
+        return tableAttributes;
+    }
 }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalCatalog.java
 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalCatalog.java
index 73598adfcaf..45eec9d6da3 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalCatalog.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalCatalog.java
@@ -213,7 +213,7 @@ public class HMSExternalCatalog extends ExternalCatalog {
     }
 
     @Override
-    public void resetToUninitialized(boolean invalidCache) {
+    public synchronized void resetToUninitialized(boolean invalidCache) {
         super.resetToUninitialized(invalidCache);
         if (metadataOps != null) {
             metadataOps.close();
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java
 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java
index bbe43ce1fee..594b2cebceb 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java
@@ -49,7 +49,6 @@ import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.protobuf.ByteString;
-import lombok.Getter;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -62,7 +61,6 @@ import java.util.Map;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 
-@Getter
 public class JdbcExternalCatalog extends ExternalCatalog {
     private static final Logger LOG = 
LogManager.getLogger(JdbcExternalCatalog.class);
 
@@ -124,7 +122,7 @@ public class JdbcExternalCatalog extends ExternalCatalog {
     }
 
     @Override
-    public void resetToUninitialized(boolean invalidCache) {
+    public synchronized void resetToUninitialized(boolean invalidCache) {
         super.resetToUninitialized(invalidCache);
         this.identifierMapping = new JdbcIdentifierMapping(
                 (Env.isTableNamesCaseInsensitive() || 
Env.isStoredTableNamesLowerCase()),
@@ -297,6 +295,10 @@ public class JdbcExternalCatalog extends ExternalCatalog {
         return jdbcClient.getColumnsFromJdbc(remoteDbName, remoteTblName);
     }
 
+    public IdentifierMapping getIdentifierMapping() {
+        return identifierMapping;
+    }
+
     @Override
     public void checkWhenCreating() throws DdlException {
         super.checkWhenCreating();
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/datasource/iceberg/CreateIcebergTableTest.java
 
b/fe/fe-core/src/test/java/org/apache/doris/datasource/iceberg/CreateIcebergTableTest.java
index 2300ece6253..45fe7738783 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/datasource/iceberg/CreateIcebergTableTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/datasource/iceberg/CreateIcebergTableTest.java
@@ -72,7 +72,7 @@ public class CreateIcebergTableTest {
         if (icebergCatalog.getUseMetaCache().get()) {
             icebergCatalog.makeSureInitialized();
         } else {
-            icebergCatalog.setInitialized(true);
+            icebergCatalog.setInitializedForTest(true);
         }
 
         // create db
@@ -82,7 +82,7 @@ public class CreateIcebergTableTest {
         if (icebergCatalog.getUseMetaCache().get()) {
             icebergCatalog.makeSureInitialized();
         } else {
-            icebergCatalog.setInitialized(true);
+            icebergCatalog.setInitializedForTest(true);
         }
         IcebergExternalDatabase db = new 
IcebergExternalDatabase(icebergCatalog, 1L, dbName, dbName);
         icebergCatalog.addDatabaseForTest(db);
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/datasource/paimon/PaimonExternalCatalogTest.java
 
b/fe/fe-core/src/test/java/org/apache/doris/datasource/paimon/PaimonExternalCatalogTest.java
index 35dd64515b6..da66b3c5ba9 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/datasource/paimon/PaimonExternalCatalogTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/datasource/paimon/PaimonExternalCatalogTest.java
@@ -31,7 +31,7 @@ public class PaimonExternalCatalogTest {
         HashMap<String, String> props = new HashMap<>();
         props.put("warehouse", "not_exist");
         PaimonExternalCatalog catalog = new PaimonFileExternalCatalog(1, 
"name", "resource", props, "comment");
-        catalog.setInitialized(true);
+        catalog.setInitializedForTest(true);
 
         try {
             catalog.getPaimonTable("dbName", "tblName");
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/planner/HiveTableSinkTest.java 
b/fe/fe-core/src/test/java/org/apache/doris/planner/HiveTableSinkTest.java
index b57bbcb51a2..602b2c8a18a 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/planner/HiveTableSinkTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/planner/HiveTableSinkTest.java
@@ -88,7 +88,7 @@ public class HiveTableSinkTest {
             mockDifferLocationTable(location);
 
             HMSExternalCatalog hmsExternalCatalog = new HMSExternalCatalog();
-            hmsExternalCatalog.setInitialized(true);
+            hmsExternalCatalog.setInitializedForTest(true);
             HMSExternalDatabase db = new 
HMSExternalDatabase(hmsExternalCatalog, 10000, "hive_db1", "hive_db1");
             HMSExternalTable tbl = new HMSExternalTable(10001, "hive_tbl1", 
"hive_db1", hmsExternalCatalog, db);
             HiveTableSink hiveTableSink = new HiveTableSink(tbl);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to