Следующие действия в приложении Eclipse 3.7 RCP - выпадающее всплывающее меню при нажатии в строке таблицы.e4 Приложение RCP, утечка ActionContributionItem в меню
private void hookContextMenu(TableViewer viewer) {
MenuManager menuMgr = new MenuManager("drillDownPopup");
menuMgr.setRemoveAllWhenShown(true);
menuMgr.addMenuListener(new IMenuListener() {
@Override
public void menuAboutToShow(IMenuManager manager) {
//.. add bunch of actions to IMenuManager
}
});
Menu menu = menuMgr.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(menu);
getSite().registerContextMenu(menuMgr, viewer);
}
Когда это работает в е4 (неон, последнее обновление) ни один из ActionContributionItem
случаев не получают GC'ed, который создает довольно значительную утечку, когда есть много пунктов, каждый из которых содержат ссылки на некоторые другие объекты.
Я делаю что-то неправильно в e4?
Это не e4. У вас есть приложение режима совместимости с 3.x, работающее на Eclipse 4. –
ОК. Это приложение e3 работает в e4 target. Вы знаете, как остановить утечку? – Dima
Код, подобный этому, повсюду в Eclipse, и я не видел сообщений об утечках. Это почти весь код JFace, который является одной из немногих областей, которые на самом деле не изменились. –