tt -w获取指定bean然后执行指定方法时,long类型数据超过100万时,会出现ognl.MethodFailedException
- Dominant language
- Java
- Stars
- 37.6k
- Forks
- 7.6k
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 4
Description
- [ ] 我已经在 [issues](https://github.com/alibaba/arthas/issues) 里搜索,没有重复的issue。
### 环境信息
* `arthas-boot.jar` 或者 `as.sh` 的版本: 3.2.0
* Arthas 版本: 3.2.0
* 操作系统版本: xxx
* 目标进程的JVM版本:
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)
* 执行`arthas-boot`的版本: 3.2.0
### 重现问题的步骤
1. tt -t org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter invokeHandlerMethod
2. tt -i 1000 -w 'target.getApplicationContext().getBean("containerCargoApp").getByOrderId(1000000L)'
### 期望的结果
正常返回数据
What do you expected from the above steps?
### 实际运行的结果
实际运行结果,最好有详细的日志,异常栈。尽量贴文本。
[arthas@10]$ tt -i 1000 -w 'target.getApplicationContext().getBean("containerCargoApp").getByOrderId(1000000L)'
ognl.MethodFailedException: Method "getByOrderId" failed for object
xxx.center.order.application.ContainerCargoApp@505bc480 [java.lang.NullPointerException], visit /root/logs/arthas/arthas.log for more detail
```
把异常信息贴到这里
```

Contributor guide
Research direction
Start by reproducing the reported `tt -t` and `tt -i 1000 -w` commands on Arthas 3.2.0 with `getByOrderId(1000000L)`, then inspect the `tt` watch-expression and OGNL evaluation path. Use the Arthas log and the reported `ognl.MethodFailedException`/`NullPointerException` to identify the failure; done means the invocation returns normally for long values above 1,000,000.
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
- 35/100