arthas icon indicating copy to clipboard operation
arthas copied to clipboard

ognl 方法参数为可变长参数,方法调用报错

Open UDnian opened this issue 1 year ago • 2 comments

环境

  • 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表达式执行可变长参数的方法报错

  1. 方式一: ognl -x 3 '@...RedisHelper@del(new java.lang.String[]{"mykey"})' -c c6da8bb
  2. 方式二: ognl -x 3 '@...RedisHelper@del("mykey")' -c c6da8bb

执行结果报错

java.lang.IllegalArgumentException: argument type mismatch

UDnian avatar Nov 10 '23 13:11 UDnian

希望给出一个可以复现的简单demo,我们会排查下原因

RaymondLam1 avatar Nov 20 '23 03:11 RaymondLam1

希望给出一个可以复现的简单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

UDnian avatar Dec 08 '23 09:12 UDnian