修复SettingautoLoad可能的加载为空的问题(issue#3919@Github)

This commit is contained in:
Looly 2025-04-17 17:02:41 +08:00
parent 52674f69fa
commit a2cc1e1587
2 changed files with 8 additions and 14 deletions

View File

@ -2,7 +2,7 @@
# 🚀Changelog
-------------------------------------------------------------------------------------------------------------
# 5.8.38(2025-04-15)
# 5.8.38(2025-04-17)
### 🐣新特性
* 【core 】 `PathUtil#del`增加null检查pr#1331@Gitee
@ -12,6 +12,7 @@
* 【core 】 增加分段锁实现`SegmentLock`pr#1330@Gitee
### 🐞Bug修复
* 【setting】 修复`Setting`autoLoad可能的加载为空的问题issue#3919@Github
-------------------------------------------------------------------------------------------------------------
# 5.8.37(2025-03-31)

View File

@ -4,14 +4,11 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.resource.ClassPathResource;
import cn.hutool.core.io.resource.FileResource;
import cn.hutool.core.io.resource.Resource;
import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.io.resource.UrlResource;
import cn.hutool.core.io.resource.*;
import cn.hutool.core.io.watch.SimpleWatcher;
import cn.hutool.core.io.watch.WatchMonitor;
import cn.hutool.core.io.watch.WatchUtil;
import cn.hutool.core.io.watch.watchers.DelayWatcher;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.util.CharsetUtil;
@ -24,12 +21,7 @@ import java.net.URL;
import java.nio.charset.Charset;
import java.nio.file.Path;
import java.nio.file.WatchEvent;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.*;
import java.util.function.Consumer;
/**
@ -229,7 +221,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
// 先关闭之前的监听
this.watchMonitor.close();
}
this.watchMonitor = WatchUtil.createModify(resource.getUrl(), new SimpleWatcher() {
this.watchMonitor = WatchUtil.createModify(resource.getUrl(), new DelayWatcher(new SimpleWatcher() {
@Override
public void onModify(WatchEvent<?> event, Path currentPath) {
boolean success = load();
@ -238,7 +230,8 @@ public class Setting extends AbsSetting implements Map<String, String> {
callback.accept(success);
}
}
});
}, 600));
this.watchMonitor.start();
StaticLog.debug("Auto load for [{}] listenning...", this.resource.getUrl());
} else {