Bug 24517 - type view does not notice when jar disappears
Summary: type view does not notice when jar disappears
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 2.0.1   Edit
Hardware: PC Windows 2000
: P2 normal (vote)
Target Milestone: 2.1 M3   Edit
Assignee: Jerome Lanneluc CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-10-08 11:30 EDT by Jeff McAffer CLA
Modified: 2002-11-14 09:10 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jeff McAffer CLA 2002-10-08 11:30:31 EDT
Steps:

- create a binary project in your workspace (I used ...team.cvs.ui)
- in a java browsing perspective open some type in the editor (e.g., 
CVSDecorator)
- From a CVS repo view, pick a version of the project adn load it (I used 201 
20020828 but it shouldn't matter)
- notice that the editor stays open (you can close it with no errors)
- notice that the type view is still populated 
- select a different typ in the types view and you get an error saying that  
teamcvsui.jar no longer exists.

I suspect that this case is reproducable in other ways.  Seems that the JAva UI 
is not noticing that the jar supplying the types/packages it is displaying has 
disappeared.
Comment 1 Adam Kiezun CLA 2002-10-08 11:34:46 EDT
does it only happen in the browsing perspective?
Comment 2 Dani Megert CLA 2002-10-09 05:14:45 EDT
There might be two sources for the problem
- most likely a bug in the JavaBrowsingContentProvider
- wrong or incomplete Java element delta

I will also check the Package Explorer.

Increasing prio.
Comment 3 Dani Megert CLA 2002-11-12 04:25:42 EST
Verified that the following scenarios work in I20021105 for Package Explorer and
Java Browsing perspective:

- delete internal JAR from workspace
- delete external JAR from workspace
- deleted internal JAR outside workspace

To reproduce the described case with CVS I had to open a NEW WINDOW because
otherwise the selection would have been cleared anyways. After replacing
selection also worked fine until I tried to OPEN the type in the editor - I
assume you worked with "open on single-click".

Nothing is written to the .log.
Comment 4 Dani Megert CLA 2002-11-12 05:06:45 EST
The problem is in the Java element delta: instead of reporting
- jar(s)
+ source folder(s)
OR:
- project
+ project

it reports a huge delta saying each CU content has changed:
Java Model[*]: {CHILDREN}
	org.eclipse.team.cvs.ui[*]: {CHILDREN | CONTENT}
		src[*]: {CHILDREN}
			org.eclipse.team.internal.ccvs.ui[*]: {CHILDREN | CONTENT}
				AdaptableHierarchicalResourceList.java[*]: {CONTENT}
				AdaptableResourceList.java[*]: {CONTENT}
				AlternateUserValidationDialog.java[*]: {CONTENT}
				AvoidableMessageDialog.java[*]: {CONTENT}
				BranchPromptDialog.java[*]: {CONTENT}
				CVSAbstractResolutionGenerator.java[*]: {CONTENT}
				CVSAddResolutionGenerator.java[*]: {CONTENT}
				CVSCompareEditorInput.java[*]: {CONTENT}
				CVSCompareRevisionsInput.java[*]: {CONTENT}
				CVSDecoration.java[*]: {CONTENT}
				CVSDecorationRunnable.java[*]: {CONTENT}
				CVSDecorator.java[*]: {CONTENT}
				CVSDecoratorConfiguration.java[*]: {CONTENT}
				CVSDecoratorPreferencesPage.java[*]: {CONTENT}
				CVSFilePropertiesPage.java[*]: {CONTENT}
				CVSFolderPropertiesPage.java[*]: {CONTENT}
				CVSLocalCompareEditorInput.java[*]: {CONTENT}
				CVSPerspective.java[*]: {CONTENT}
				CVSPreferencesPage.java[*]: {CONTENT}
				CVSProjectPropertiesPage.java[*]: {CONTENT}
				CVSProjectSetSerializer.java[*]: {CONTENT}
				CVSRemoveResolutionGenerator.java[*]: {CONTENT}
				CVSUIPlugin.java[*]: {CONTENT}
				Console.java[*]: {CONTENT}
				ConsoleDocument.java[*]: {CONTENT}
				ConsolePreferencesPage.java[*]: {CONTENT}
				ExtMethodPreferencePage.java[*]: {CONTENT}
				HistoryDropAdapter.java[*]: {CONTENT}
				HistoryFilter.java[*]: {CONTENT}
				HistoryFilterAction.java[*]: {CONTENT}
				HistoryFilterDialog.java[*]: {CONTENT}
				HistoryTableProvider.java[*]: {CONTENT}
				HistoryView.java[*]: {CONTENT}
				ICVSUIConstants.java[*]: {CONTENT}
				IDecorationNotifier.java[*]: {CONTENT}
				IHelpContextIds.java[*]: {CONTENT}
				IRepositoryListener.java[*]: {CONTENT}
				IgnoreResourcesDialog.java[*]: {CONTENT}
				OverlayIcon.java[*]: {CONTENT}
				OverlayIconCache.java[*]: {CONTENT}
				Policy.java[*]: {CONTENT}
				ProjectSelectionDialog.java[*]: {CONTENT}
				ReleaseCommentDialog.java[*]: {CONTENT}
				RemoteFileEditorInput.java[*]: {CONTENT}
				RemoteFileStorage.java[*]: {CONTENT}
				ResizableWizardDialog.java[*]: {CONTENT}
				ResourceEditionNode.java[*]: {CONTENT}
				ResourcePropertiesPage.java[*]: {CONTENT}
				SimpleContentProvider.java[*]: {CONTENT}
				TagAsVersionDialog.java[*]: {CONTENT}
				TagConfigurationDialog.java[*]: {CONTENT}
				TagSelectionDialog.java[*]: {CONTENT}
				TextViewerAction.java[*]: {CONTENT}
				TimeoutProgressMonitorDialog.java[*]: {CONTENT}
				UserValidationDialog.java[*]: {CONTENT}
				VersionCollator.java[*]: {CONTENT}
				WorkbenchUserAuthenticator.java[*]: {CONTENT}
				XMLWriter.java[*]: {CONTENT}
			
ResourceDelta(/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties)[*]
			org.eclipse.team.internal.ccvs.ui.actions[*]: {CHILDREN}
				AddAction.java[*]: {CONTENT}
				AddToWorkspaceAction.java[*]: {CONTENT}
				BranchAction.java[*]: {CONTENT}
				CVSAction.java[*]: {CONTENT}
				CheckoutAction.java[*]: {CONTENT}
				CheckoutAsAction.java[*]: {CONTENT}
				CheckoutIntoAction.java[*]: {CONTENT}
				CommitAction.java[*]: {CONTENT}
				CompareRemoteResourcesAction.java[*]: {CONTENT}
				CompareRemoteWithTagAction.java[*]: {CONTENT}
				CompareWithRemoteAction.java[*]: {CONTENT}
				CompareWithRevisionAction.java[*]: {CONTENT}
				CompareWithTagAction.java[*]: {CONTENT}
				ConfigureTagsFromRepoView.java[*]: {CONTENT}
				ConfigureTagsFromRepoViewOnFolder.java[*]: {CONTENT}
				ContentAction.java[*]: {CONTENT}
				GenerateDiffFileAction.java[*]: {CONTENT}
				IgnoreAction.java[*]: {CONTENT}
				MergeAction.java[*]: {CONTENT}
				MoveRemoteTagAction.java[*]: {CONTENT}
				NewRepositoryAction.java[*]: {CONTENT}
				OpenLogEntryAction.java[*]: {CONTENT}
				OpenRemoteFileAction.java[*]: {CONTENT}
				ReplaceWithRemoteAction.java[*]: {CONTENT}
				ReplaceWithTagAction.java[*]: {CONTENT}
				RestoreFromRepositoryAction.java[*]: {CONTENT}
				SetKeywordSubstitutionAction.java[*]: {CONTENT}
				ShowCVSPerspectiveAction.java[*]: {CONTENT}
				ShowHistoryAction.java[*]: {CONTENT}
				ShowResourceInHistoryAction.java[*]: {CONTENT}
				SyncAction.java[*]: {CONTENT}
				SyncAllAction.java[*]: {CONTENT}
				SyncOutgoingAction.java[*]: {CONTENT}
				TagAction.java[*]: {CONTENT}
				TagInRepositoryAction.java[*]: {CONTENT}
				UnmanageAction.java[*]: {CONTENT}
				UpdateAction.java[*]: {CONTENT}
				WorkspaceAction.java[*]: {CONTENT}
			org.eclipse.team.internal.ccvs.ui.merge[*]: {CHILDREN}
				MergeEditorInput.java[*]: {CONTENT}
				MergeWizard.java[*]: {CONTENT}
				MergeWizardEndPage.java[*]: {CONTENT}
				MergeWizardStartPage.java[*]: {CONTENT}
				OverrideUpdateMergeAction.java[*]: {CONTENT}
				ProjectElement.java[*]: {CONTENT}
				TagElement.java[*]: {CONTENT}
				TagRootElement.java[*]: {CONTENT}
				UpdateMergeAction.java[*]: {CONTENT}
				UpdateWithForcedJoinAction.java[*]: {CONTENT}
			org.eclipse.team.internal.ccvs.ui.model[*]: {CHILDREN}
				AllRootsElement.java[*]: {CONTENT}
				BranchCategory.java[*]: {CONTENT}
				CVSAdapterFactory.java[*]: {CONTENT}
				CVSFileElement.java[*]: {CONTENT}
				CVSFolderElement.java[*]: {CONTENT}
				CVSModelElement.java[*]: {CONTENT}
				CVSRemoteFilePropertySource.java[*]: {CONTENT}
				CVSRemoteFolderPropertySource.java[*]: {CONTENT}
				CVSRepositoryLocationPropertySource.java[*]: {CONTENT}
				CVSRepositoryRootElement.java[*]: {CONTENT}
				CVSResourceElement.java[*]: {CONTENT}
				CVSRootFolderElement.java[*]: {CONTENT}
				CVSTagElement.java[*]: {CONTENT}
				GroupedByVersionCategory.java[*]: {CONTENT}
				ModulesCategory.java[*]: {CONTENT}
				RemoteContentProvider.java[*]: {CONTENT}
				RemoteFileElement.java[*]: {CONTENT}
				RemoteFolderElement.java[*]: {CONTENT}
				RemoteModule.java[*]: {CONTENT}
				RemoteResourceElement.java[*]: {CONTENT}
				RemoteVersionModule.java[*]: {CONTENT}
				VersionCategory.java[*]: {CONTENT}
			org.eclipse.team.internal.ccvs.ui.repo[*]: {CHILDREN}
				CVSRepositoryPropertiesPage.java[*]: {CONTENT}
				CVSWorkingSet.java[*]: {CONTENT}
				CVSWorkingSetFolderSelectionPage.java[*]: {CONTENT}
				CVSWorkingSetWizard.java[*]: {CONTENT}
				CopyRepositoryNameAction.java[*]: {CONTENT}
				DefineBranchAction.java[*]: {CONTENT}
				NewCVSAnonEclipseConnection.java[*]: {CONTENT}
				NewCVSRepositoryAction.java[*]: {CONTENT}
				RefreshTagsAction.java[*]: {CONTENT}
				RemoveBranchTagAction.java[*]: {CONTENT}
				RemoveRootAction.java[*]: {CONTENT}
				RepositoriesView.java[*]: {CONTENT}
				RepositoriesViewContentHandler.java[*]: {CONTENT}
				RepositoryManager.java[*]: {CONTENT}
				RepositoryRoot.java[*]: {CONTENT}
				RepositorySorter.java[*]: {CONTENT}
				WorkingSetSelectionDialog.java[*]: {CONTENT}
			org.eclipse.team.internal.ccvs.ui.sync[*]: {CHILDREN}
				AddSyncAction.java[*]: {CONTENT}
				CVSCatchupReleaseViewer.java[*]: {CONTENT}
				CVSSyncCompareInput.java[*]: {CONTENT}
				CVSSyncCompareUnsharedInput.java[*]: {CONTENT}
				CVSSyncSet.java[*]: {CONTENT}
				CommitSyncAction.java[*]: {CONTENT}
				ForceCommitSyncAction.java[*]: {CONTENT}
				ForceUpdateSyncAction.java[*]: {CONTENT}
				IgnoreAction.java[*]: {CONTENT}
				MergeAction.java[*]: {CONTENT}
				ToolTipMessageDialog.java[*]: {CONTENT}
				UpdateSyncAction.java[*]: {CONTENT}
			org.eclipse.team.internal.ccvs.ui.wizards[*]: {CHILDREN}
				CVSWizardPage.java[*]: {CONTENT}
				CheckoutIntoProjectSelectionPage.java[*]: {CONTENT}
				CheckoutIntoWizard.java[*]: {CONTENT}
				ConfigurationWizardAutoconnectPage.java[*]: {CONTENT}
				ConfigurationWizardMainPage.java[*]: {CONTENT}
				GenerateDiffFileOperation.java[*]: {CONTENT}
				GenerateDiffFileWizard.java[*]: {CONTENT}
				KSubstWizard.java[*]: {CONTENT}
				KSubstWizardDirtyFilesPage.java[*]: {CONTENT}
				KSubstWizardSelectionPage.java[*]: {CONTENT}
				KSubstWizardSharedFilesPage.java[*]: {CONTENT}
				KSubstWizardSummaryPage.java[*]: {CONTENT}
				ModuleSelectionPage.java[*]: {CONTENT}
				NewLocationWizard.java[*]: {CONTENT}
				RepositorySelectionPage.java[*]: {CONTENT}
				RestoreFromRepositoryFileSelectionPage.java[*]: {CONTENT}
				RestoreFromRepositoryWizard.java[*]: {CONTENT}
				SharingWizard.java[*]: {CONTENT}
				SharingWizardFinishPage.java[*]: {CONTENT}
				UpdateWizard.java[*]: {CONTENT}
				UpdateWizardPage.java[*]: {CONTENT}
		ResourceDelta(/org.eclipse.team.cvs.ui/.classpath)[*]
		ResourceDelta(/org.eclipse.team.cvs.ui/.cvsignore)[*]
		ResourceDelta(/org.eclipse.team.cvs.ui/.project)[*]
		ResourceDelta(/org.eclipse.team.cvs.ui/about.html)[*]
		ResourceDelta(/org.eclipse.team.cvs.ui/build.properties)[*]
		ResourceDelta(/org.eclipse.team.cvs.ui/icons)[*]
		ResourceDelta(/org.eclipse.team.cvs.ui/plugin.properties)[*]
		ResourceDelta(/org.eclipse.team.cvs.ui/plugin.xml)[*]
		ResourceDelta(/org.eclipse.team.cvs.ui/teamcvsui.jar)[-]
		ResourceDelta(/org.eclipse.team.cvs.ui/teamcvsuisrc.zip)[-]
Comment 5 Philipe Mulet CLA 2002-11-12 09:12:57 EST
Sounds like a dup of bug 24775.
Please verify with latest.
Comment 6 Jerome Lanneluc CLA 2002-11-13 05:46:35 EST
Problem still exists. Investigating for M4.
Comment 7 Jerome Lanneluc CLA 2002-11-13 10:54:29 EST
SetClaspathOperation now uses the package fragment roots of the project to 
computes the delta.

Added regression test JavaElementDeltaTests.testRemoveCPEntryAndRoot
Comment 8 David Audel CLA 2002-11-14 09:10:05 EST
Verified.