arthas
arthas copied to clipboard
ognl 方法参数为可变长参数,方法调用报错
环境
- Arthas version: 3.6.3
- Operating System version: xxx
- Java version of target JVM: 1.8
- Java version of JVM used to attach: 1.8
使用ognl表达式执行可变长参数的方法报错
- 方式一: ognl -x 3 '@...RedisHelper@del(new java.lang.String[]{"mykey"})' -c c6da8bb
- 方式二: ognl -x 3 '@...RedisHelper@del("mykey")' -c c6da8bb
执行结果报错
java.lang.IllegalArgumentException: argument type mismatch
希望给出一个可以复现的简单demo,我们会排查下原因
希望给出一个可以复现的简单demo,我们会排查下原因
比如下面的原始方法
public final class RedisHelper {
public static long del(final String... keys) {
return 0;
}
}
使用 ognl -x 3 '@...RedisHelper@del("mykey")' -c c6da8bb 或 ognl -x 3 '@...RedisHelper@del(new java.lang.String[]{"mykey"})' -c c6da8bb 均会报错 java.lang.IllegalArgumentException: argument type mismatch