Bug 23031 Package explorer does not update when input==package [package explorer]
From a java perspective, create a Java project with two packages (say test.package1 and test.package2). Create a couple of classes in both packages. From the package view, select test.package2 and from the context menu, open a new java window on it. Notice you only see the two classes you created in this package. Now go back to the other window, and move a class from test.package1 to test.package2. Go back to the new window, look at the package view and notice it still only displays 2 classes. Selecting refresh from the context menu does nothing. If you close the package view and open it again, then you see 3 classes.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java
if (ctrl != null && !ctrl.isDisposed()) {
			addPendingChange();
			try {
				ctrl.getDisplay().asyncExec(trackedRunnable); 
			} catch (RuntimeException e) {
				removePendingChange();
				throw e;
			} catch (Error e) {
				removePendingChange();
				throw e; 
			}
		}
	}
	
	
	public synchronized boolean hasPendingChanges() {
		return fPendingChanges > 0;  
	}
	
	private synchronized void addPendingChange() {
		fPendingChanges++;
		
	}
	private synchronized void removePendingChange() {
		fPendingChanges--;
		if (fPendingChanges < 0)
			fPendingChanges= 0;
		
	}
}