You should not assume that create, or even init has been called. You must call super.dispose();
618619620621622623624625626627628
private void disposeTabs(Collection tabs) { for (Iterator iter = tabs.iterator(); iter.hasNext();) { IFeaturePanel tab = (IFeaturePanel) iter.next(); Composite composite = (Composite) tabToComposite.remove(tab); tab.dispose(); if (composite != null) { composite.dispose(); } } }