Bug 114491 [refactoring] CCE in NullRefactoringHistory
3.2 M3 test pass I deleted some projects in (Java and Resource) working sets, but not quite sure what action triggered the exception. !ENTRY org.eclipse.core.resources 4 2 2005-11-01 11:29:35.216 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.resources". !STACK 0 java.lang.ClassCastException: org.eclipse.ltk.internal.core.refactoring.history.RefactoringHistoryService$NullRefactoringHistory at org.eclipse.ltk.internal.core.refactoring.history.RefactoringHistoryService$WorkspaceChangeListener.removeDescriptors(RefactoringHistoryService.java:410) at org.eclipse.ltk.internal.core.refactoring.history.RefactoringHistoryService$WorkspaceChangeListener.resourceChanged(RefactoringHistoryService.java:454) at org.eclipse.core.internal.events.NotificationManager$2.run(NotificationManager.java:276) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044) at org.eclipse.core.runtime.Platform.run(Platform.java:783) at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:270) at org.eclipse.core.internal.events.NotificationManager.handleEvent(NotificationManager.java:254) at org.eclipse.core.internal.resources.Workspace.broadcastEvent(Workspace.java:201) at org.eclipse.core.internal.resources.Resource.unprotectedDelete(Resource.java:1573) at org.eclipse.core.internal.resources.Resource.delete(Resource.java:670) at org.eclipse.core.internal.resources.Project.delete(Project.java:332) at org.eclipse.ui.actions.DeleteResourceAction.delete(DeleteResourceAction.java:419) at org.eclipse.ui.actions.DeleteResourceAction.delete(DeleteResourceAction.java:395) at org.eclipse.ui.actions.DeleteResourceAction.access$0(DeleteResourceAction.java:385) at org.eclipse.ui.actions.DeleteResourceAction$3.run(DeleteResourceAction.java:502) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1705) at org.eclipse.ui.actions.DeleteResourceAction$2.run(DeleteResourceAction.java:500) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:76)
org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/internal/core/refactoring/history/RefactoringHistoryService.java
/**
		 * Creates a new unknown refactoring descriptor.
		 */
		UnknownRefactoringDescriptor() {
			super(UNKNOWN_REFACTORING_ID, null, RefactoringCoreMessages.RefactoringHistoryService_unknown_refactoring_description, null, Collections.EMPTY_MAP);
		}
	}
	
	private final class WorkspaceChangeListener implements IResourceChangeListener {
		/**
		 * Removes refactoring descriptors from the global refactoring history.
		 * 
		 * @param event
		 *            the resource change event
		 */
		private void removeDescriptors(final IResourceChangeEvent event) {
			Assert.isNotNull(event);
			final IResource resource= event.getResource();
			if (resource != null) {
				final int type= resource.getType();
				if (type == IResource.PROJECT) {
					final IProject project= (IProject) resource;
					if (project.exists()) {
						final RefactoringHistoryImplementation history= (RefactoringHistoryImplementation) getProjectHistory(project, null);
						final RefactoringDescriptorProxy[] proxies= history.getDescriptorProxies();
						for (int index= 0; index < proxies.length; index++) {
							final long stamp= proxies[index].getTimeStamp();
							if (stamp >= 0) {