谷本 心 in せろ部屋

はてなダイアリーから引っ越してきました

問題を絞り込めてきました。

やっぱり、SAStrutsにBTraceが刺さらない問題の原因は
HSQLDB云々ではなく、BTraceが生成するクラスのようです。


Listのaddをフックしてみるシンプルなスクリプトを書きました。

import static com.sun.btrace.BTraceUtils.*;

import com.sun.btrace.*;
import com.sun.btrace.annotations.*;

@BTrace
public class Test {
    @OnMethod(clazz = "+java.util.List", method = "add")
    public static void onAdd(AnyType[] args) {
        println(args[1]);
    }
}

これをSASturtsが動いているTomcatに刺してみると
やっぱりClassFormatErrorが発生します。


もちろん、dumpされたArrayList.classをClassLoadすると
同様にClassFormatErrorが発生します。


だから、Hot DeployのためにClassLoadすると、
ClassFormatErrorが発生するのです。


昨日と結論(仮説)は代わりませんが、
少し現象がシンプルになりました。