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

jackietien pushed a commit to branch GracelyExit
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit cc756667d8ea27c2e33f364cee52cf0cf482d944
Author: JackieTien97 <[email protected]>
AuthorDate: Tue Jul 15 09:34:09 2025 +0800

    Avoid NPE while stop DN
---
 .../main/java/org/apache/iotdb/db/schemaengine/SchemaEngine.java | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/SchemaEngine.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/SchemaEngine.java
index 31eb4b45323..e2d41790195 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/SchemaEngine.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/SchemaEngine.java
@@ -221,7 +221,7 @@ public class SchemaEngine {
     }
   }
 
-  public void clear() {
+  public synchronized void clear() {
     schemaRegionLoader.clear();
 
     // clearSchemaResource will shut down release and flush task in PBTree 
mode, which must be
@@ -261,7 +261,10 @@ public class SchemaEngine {
 
   public synchronized void createSchemaRegion(
       final String storageGroup, final SchemaRegionId schemaRegionId) throws 
MetadataException {
-    final ISchemaRegion schemaRegion = schemaRegionMap.get(schemaRegionId);
+    if (this.schemaRegionMap == null) {
+      throw new MetadataException("Peer is shutting down now.");
+    }
+    final ISchemaRegion schemaRegion = 
this.schemaRegionMap.get(schemaRegionId);
     if (schemaRegion != null) {
       if (schemaRegion.getDatabaseFullPath().equals(storageGroup)) {
         return;
@@ -273,7 +276,7 @@ public class SchemaEngine {
                 schemaRegionId, schemaRegion.getDatabaseFullPath(), 
storageGroup));
       }
     }
-    schemaRegionMap.put(
+    this.schemaRegionMap.put(
         schemaRegionId, createSchemaRegionWithoutExistenceCheck(storageGroup, 
schemaRegionId));
   }
 

Reply via email to