[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 メーリングリストの案内