This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch dev/1.3
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/dev/1.3 by this push:
new 91280d1554b [To dev/1.3] Fixed the potential NPE of schema quota
(#17140) (#17151)
91280d1554b is described below
commit 91280d1554b2c334d201ec26a4dffe24cd4efb65
Author: Caideyipi <[email protected]>
AuthorDate: Wed Feb 4 09:37:46 2026 +0800
[To dev/1.3] Fixed the potential NPE of schema quota (#17140) (#17151)
---
.../org/apache/iotdb/confignode/manager/ClusterQuotaManager.java | 5 +++--
.../org/apache/iotdb/confignode/persistence/quota/QuotaInfo.java | 4 +---
2 files changed, 4 insertions(+), 5 deletions(-)
diff --git
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterQuotaManager.java
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterQuotaManager.java
index cbfa1bc2fb2..edbc958f4f2 100644
---
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterQuotaManager.java
+++
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterQuotaManager.java
@@ -47,6 +47,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicLong;
@@ -111,8 +112,8 @@ public class ClusterQuotaManager {
/** If the new quota is smaller than the quota already used, the setting
fails. */
private boolean checkSpaceQuota(TSetSpaceQuotaReq req) {
for (String database : req.getDatabase()) {
- if (quotaInfo.getSpaceQuotaLimit().containsKey(database)) {
- TSpaceQuota spaceQuota = quotaInfo.getSpaceQuotaUsage().get(database);
+ TSpaceQuota spaceQuota = quotaInfo.getSpaceQuotaUsage().get(database);
+ if (Objects.nonNull(spaceQuota)) {
if (req.getSpaceLimit().getDeviceNum() != IoTDBConstant.UNLIMITED_VALUE
&& req.getSpaceLimit().getDeviceNum() !=
IoTDBConstant.DEFAULT_VALUE
&& spaceQuota.getDeviceNum() > req.getSpaceLimit().getDeviceNum())
{
diff --git
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/quota/QuotaInfo.java
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/quota/QuotaInfo.java
index 59b484de0fc..93d2b272109 100644
---
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/quota/QuotaInfo.java
+++
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/quota/QuotaInfo.java
@@ -87,9 +87,7 @@ public class QuotaInfo implements SnapshotProcessor {
spaceQuota.setDiskSize(IoTDBConstant.DEFAULT_VALUE);
}
}
- if (!spaceQuotaUsage.containsKey(database)) {
- spaceQuotaUsage.put(database, new TSpaceQuota());
- }
+ spaceQuotaUsage.computeIfAbsent(database, k -> new TSpaceQuota());
spaceQuotaLimit.put(database, spaceQuota);
}
return RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS);