Bug 9571 [Java Browsing] Views not updated when folder of package is deleted
1) Select a method in a type, i.e. all viewers are populated, editor is visible 2) Deactivate linking between active editor and navigator in workbench preferences 3) Deactivate auto build 3) Prespective>Show View>Navigator 4) Pin Navigator 5) Select the folder containing the file of the previously selected method 6) Context Menu>Delete -> Editor closed -> Package, type, and method still visible in their views -> Selecting package possible and results in flushing Types View
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/JavaElementContentProvider.java
import java.util.List;
import org.eclipse.swt.widgets.Control;
import org.eclipse.jface.viewers.AbstractTreeViewer;
import org.eclipse.jface.viewers.IBasicPropertyConstants;
import org.eclipse.jface.viewers.ListViewer;
import org.eclipse.jface.viewers.StructuredViewer;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jdt.core.ElementChangedEvent;
import org.eclipse.jdt.core.IClassFile;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IElementChangedListener;
import org.eclipse.jdt.core.IImportContainer;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaElementDelta;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IMember;
import org.eclipse.jdt.core.IPackageDeclaration;
import org.eclipse.jdt.core.IPackageFragment;
import org.eclipse.jdt.core.IPackageFragmentRoot;
import org.eclipse.jdt.core.IParent;
import org.eclipse.jdt.core.ISourceReference;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.IWorkingCopy;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.internal.ui.javaeditor.EditorUtility;
import org.eclipse.jdt.internal.ui.viewsupport.BaseJavaElementContentProvider;
import org.eclipse.jdt.internal.ui.JavaPlugin;
class JavaElementContentProvider extends BaseJavaElementContentProvider implements IElementChangedListener {