[Seasar-user:4217] S2FrameworkTestCase の unbindFields

Ito Yoshiichi [E-MAIL ADDRESS DELETED]
2006年 7月 31日 (月) 14:48:53 JST


いつもお世話になっております。
GLAD!! こと伊藤です。

S2FrameworkTestCase についての質問です。
unbindFields が deprecated になっているのはなぜでしょうか?

Eclipse 上で大量のテストケースを同時に流したとき、
java.lang.OutOfMemoryError: Java heap space
が発生したため、unbindFields を以下のように修正し、
テスト終了後フィールドを null にセットすると、
エラーが発生しなくなりました。
もし何か意図するところがあって deprecated にしているのであれば、
教えていただければと思います。

S2 のバージョンは 2.3.10 です。

    protected void unbindFields() {
        for (Class clazz = getClass();
                clazz != S2FrameworkTestCase.class && clazz != null;
                clazz = clazz.getSuperclass()) {
            Field[] fields = clazz.getDeclaredFields();
            for (int i = 0; i < fields.length; ++i) {
                unbindField(fields[i]);
            }
        }
    }

    protected void unbindField(Field field) {
        if (isAutoBindable(field)) {
            field.setAccessible(true);
            FieldUtil.set(field, this, null);
        }
    }

よろしくお願いいたします。




Seasar-user メーリングリストの案内