低版本mvel在MaxCompute jdk8环境中报java.lang.VerifyError
最近MaxCompute在升级jdk8的环境,导致线上使用到MVEL的离线任务挂掉,主要是下面这个异常
Exception in thread "main" java.lang.VerifyError: (class: ASMAccessorImpl_4458843621386333353870, method: getKnownEgressType signature: ()Ljava/lang/Class;) Illegal type in constant pool
经过一系列查找最终确定这个是低版本mvel的bug,主要是ASMAccessorOptimizer这个类对高版本java没有处理,已经得到官方确认 https://github.com/mvel/mvel/pull/84