blob: 41563e294bb1070bbd9de141f68878f5232ac375 [file] [log] [blame]
package org.eclipse.rcptt.ctx.workbench.aspect;
import java.lang.reflect.Field;
import java.util.List;
import java.util.Map;
import org.aspectj.lang.annotation.SuppressAjWarnings;
public aspect WorkbenchContextAspect {
@SuppressWarnings("all")
@SuppressAjWarnings("adviceDidNotMatch")
before(org.eclipse.ui.internal.views.log.LogView logView)
: execution(void org.eclipse.ui.internal.views.log.LogView.dispose()) && target(logView) {
// clear Error Log entries to release allocated memory
try {
Field field = org.eclipse.ui.internal.views.log.LogView.class.getDeclaredField("elements");
field.setAccessible(true);
Object object = field.get(logView);
if (object instanceof List) {
((List<?>) object).clear();
}
field = org.eclipse.ui.internal.views.log.LogView.class.getDeclaredField("groups");
field.setAccessible(true);
object = field.get(logView);
if (object instanceof Map) {
((Map<?, ?>) object).clear();
}
field = org.eclipse.ui.internal.views.log.LogView.class.getDeclaredField("batchedEntries");
field.setAccessible(true);
object = field.get(logView);
if (object instanceof List) {
((List<?>) object).clear();
}
} catch (Throwable e) {
Activator.log(e);
}
}
}