[BUG] 系统自适应限流 调用 SystemBlockException 构造方法 并抛出时 未初始化父类 BlockException 的成员变量 AbstractRule 导致捕获异常使用 EagleEyeLogUtil.log 记录日志时触发 空指针异常
- Dominant language
- Java
- Stars
- 23.1k
- Forks
- 8.1k
- PR merge metrics
- No merged PRs in 30d
Description
## Issue Description
Type: *bug report*
### Describe what happened
系统自适应限流 调用 SystemBlockException 构造方法 并抛出时 未初始化父类 BlockException 的成员变量 AbstractRule 导致捕获异常使用 EagleEyeLogUtil.log 记录日志时触发 空指针异常。
上述空指针异常 “掩盖” 了 抛出的 SystemBlockException,导致即使触发系统自适应保护,请求仍会发送到后台的接口。
### Describe what you expected to happen
触发系统自适应保护后,正常抛出并记录异常,后台接口接收不到请求。
### How to reproduce it (as minimally and precisely as possible)
1. 使用 1.8.6 版本的 sentinel 依赖
2. 配置系统自适应保护规则
3. 触发配置的规则,使代码抛出 SystemBlockException 异常
4. 在 com.alibaba.csp.sentinel.slots.system.SystemRuleManager#checkSystem 处打断点,逐步调试观察异常抛出和处理逻辑
5. com.alibaba.csp.sentinel.slots.logger.LogSlot#entry 处 观测到空指针异常产生

### Tell us your environment
- Windows开发环境
- 1.8.6 版本的 sentinel
Contributor guide
Assessment
This issue has not been assessed yet.