Commit b990cbf
fix: 修复 Tip.merge() 的 null 处理逻辑
问题分析:
✅ Run 20535263656: 成功复现 NPE(第 15 次重复)
❌ Run 20535342469: 第一次修复失败(导致 IllegalStateException: Required parameters are missing)
第一次修复的问题:
- 在 AiStart 中添加了 if (data != null) 检查
- 这导致 null 分支的数据被跳过
- 最终导致模板渲染时参数丢失
新的修复策略:
- 只在 Tip.merge() 中处理 null
- 如果 other 为 null,返回 this(不改变当前 Tip)
- 这样既避免了 NPE,也不会丢失数据
理由:
1. 更简单:只在一个地方处理 null
2. 更安全:不会导致数据丢失
3. 更合理:null 分支本来就没有数据可merge
预期效果:
- 1003 个测试全部通过
- NPE 失败率从 0.5% 降至 0%
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>1 parent 5cfd9ac commit b990cbf
2 files changed
Lines changed: 7 additions & 6 deletions
File tree
- framework/fel/java
- fel-core/src/main/java/modelengine/fel/core/util
- fel-flow/src/main/java/modelengine/fel/engine/activities
Lines changed: 5 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
118 | 118 | | |
119 | 119 | | |
120 | 120 | | |
121 | | - | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
122 | 126 | | |
123 | 127 | | |
124 | 128 | | |
| |||
Lines changed: 2 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
593 | 593 | | |
594 | 594 | | |
595 | 595 | | |
596 | | - | |
597 | | - | |
598 | | - | |
599 | | - | |
600 | | - | |
| 596 | + | |
| 597 | + | |
601 | 598 | | |
602 | 599 | | |
603 | 600 | | |
| |||
0 commit comments