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)); }
