watch 业务类toString()方法概率也会watch到arthas自身ObjectView中renderObject的toString方法,造成递归
- Dominant language
- Java
- Stars
- 37.5k
- Forks
- 7.6k
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 4
Description
- [x] 我已经在 [issues](https://github.com/alibaba/arthas/issues) 里搜索,没有重复的issue。
### 环境信息
* `arthas-boot.jar` 或者 `as.sh` 的版本: 4.0.5
* Arthas 版本: 4.0.5
* 操作系统版本: windows
* 目标进程的JVM版本: 8
* 执行`arthas-boot`的版本: 4.0.5
### 重现问题的步骤
1. watch com.fubukiss.rikky.dto.DishDto toString '{target}' -n 5 -x 1
2.
3. 输出值的过程中调用了业务类的toString方法,又会被watch到,进而又会输出值,又会被watch到,所以会递归。
### 期望的结果
希望arthas排除掉调用toString方法,或者调用时能够被过滤掉。
### 实际运行的结果
Contributor guide
Research direction
Reproduce the issue with the documented watch command against a Java 8 target and observe the recursive output. Start by tracing ObjectView.renderObject and the watch result-rendering path mentioned in the report. Done means business toString() output no longer recursively triggers the same watch, with coverage for the reported case.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100