У меня есть диспетчер, который имеет задание, созданное внутри метода widgetDisposed (DisposeEvent event). Таким образом, выполнение этого метода при удалении TreeViewer вызывает внутреннюю ошибку во время: «Работа по очистке». Нет контекста, доступного вне жизненного цикла службы запроса. Этот код используется как RCP, так и RAP, отлично работает на RCP app.Issue с RAP. Может ли кто-нибудь предположить, что с этим происходит?IllegalStateException для запуска задания внутри диспетчера размещения
private void addDisposeListener() {
treeViewer.getTree().addDisposeListener(new DisposeListener() {
@Override
public void widgetDisposed(DisposeEvent event) {
Job CleanupJob = new Job("Cleanup Job") { //$NON-NLS-1$
@Override
protected IStatus run(IProgressMonitor arg0) {
doCleanup();
return Status.OK_STATUS;
}
};
CleanupJob.setUser(false);
CleanupJob.setSystem(true);
CleanupJob.schedule();
}
});
}