### Eclipse Workspace Patch 1.0 #P org.eclipse.rse.ui Index: UI/org/eclipse/rse/internal/ui/SystemResourceListener.java =================================================================== RCS file: /cvsroot/dsdp/org.eclipse.tm.rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/SystemResourceListener.java,v retrieving revision 1.1 diff -u -r1.1 SystemResourceListener.java --- UI/org/eclipse/rse/internal/ui/SystemResourceListener.java 15 May 2007 23:54:30 -0000 1.1 +++ UI/org/eclipse/rse/internal/ui/SystemResourceListener.java 8 Jun 2007 15:03:35 -0000 @@ -14,6 +14,7 @@ * Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core * Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry * Martin Oberhuber (Wind River) - [168870] refactor org.eclipse.rse.core package of the UI plugin + * David Dykstal (IBM) - [191130] log exception instead of printing, do not log if project is not available ********************************************************************************/ package org.eclipse.rse.internal.ui; @@ -25,6 +26,7 @@ import org.eclipse.core.resources.IResourceChangeListener; import org.eclipse.core.resources.IResourceDelta; import org.eclipse.core.resources.IWorkspace; +import org.eclipse.core.runtime.CoreException; import org.eclipse.rse.core.ISystemResourceListener; import org.eclipse.rse.core.RSECorePlugin; import org.eclipse.rse.core.SystemResourceManager; @@ -361,16 +363,18 @@ { if (!resource.getName().equals(remoteSystemsProject.getName())) return true; + // [191130] the event can be ignored if the project cannot be accessed + if (!resource.isAccessible()) return true; try { if (!(((IProject) resource).hasNature(RemoteSystemsProject.ID))) return true; - } - catch (Exception exc) + } + catch (CoreException exc) { - System.out.println("Exception trying to test the natures of the project that fired a resource change event"); //$NON-NLS-1$ - } - } + RSECorePlugin.getDefault().getLogger().logError("Exception trying to test the natures of the project that fired a resource change event", exc); //$NON-NLS-1$ + } + } } return false; } @@ -733,7 +737,7 @@ { SystemResourceListener us = null; if (inst == null) - us = getListener(SystemResourceManager.getRemoteSystemsProject()); + us = getListener(SystemResourceManager.getRemoteSystemsProject(false)); else us = inst; @@ -747,7 +751,7 @@ { SystemResourceListener us = null; if (inst == null) - us = getListener(SystemResourceManager.getRemoteSystemsProject()); + us = getListener(SystemResourceManager.getRemoteSystemsProject(false)); else us = inst; Index: UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewResourceAdapterFactory.java =================================================================== RCS file: /cvsroot/dsdp/org.eclipse.tm.rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewResourceAdapterFactory.java,v retrieving revision 1.2 diff -u -r1.2 SystemTeamViewResourceAdapterFactory.java --- UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewResourceAdapterFactory.java 5 Jun 2007 11:36:58 -0000 1.2 +++ UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewResourceAdapterFactory.java 8 Jun 2007 15:03:36 -0000 @@ -12,7 +12,7 @@ * Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley. * * Contributors: - * {Name} (company) - description of contribution. + * David Dykstal (IBM) - [191130] fix unnecessary creation of the remote systems project *******************************************************************************/ package org.eclipse.rse.internal.ui.view.team; @@ -54,7 +54,8 @@ if (adaptableObject instanceof ISystemRegistry) { //SystemRegistry sr = (SystemRegistry)adaptableObject; - adapter = SystemResourceManager.getRemoteSystemsProject(); + // [191130] do not force the creation of the project, just return its handle + adapter = SystemResourceManager.getRemoteSystemsProject(false); } /* deferred else if (adaptableObject instanceof SystemProfile) Index: UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewProfileAdapter.java =================================================================== RCS file: /cvsroot/dsdp/org.eclipse.tm.rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewProfileAdapter.java,v retrieving revision 1.17 diff -u -r1.17 SystemTeamViewProfileAdapter.java --- UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewProfileAdapter.java 29 May 2007 22:16:07 -0000 1.17 +++ UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewProfileAdapter.java 8 Jun 2007 15:03:36 -0000 @@ -17,6 +17,7 @@ * Martin Oberhuber (Wind River) - [177523] Unify singleton getter methods * Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API * Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry + * David Dykstal (IBM) - [191130] use new getRemoteSystemsProject(boolean) call ********************************************************************************/ package org.eclipse.rse.internal.ui.view.team; @@ -210,7 +211,7 @@ */ public Object getParent(Object element) { - return SystemResourceManager.getRemoteSystemsProject(); + return SystemResourceManager.getRemoteSystemsProject(false); } /** Index: UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewRefreshAllAction.java =================================================================== RCS file: /cvsroot/dsdp/org.eclipse.tm.rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewRefreshAllAction.java,v retrieving revision 1.3 diff -u -r1.3 SystemTeamViewRefreshAllAction.java --- UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewRefreshAllAction.java 5 Jun 2007 11:36:58 -0000 1.3 +++ UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewRefreshAllAction.java 8 Jun 2007 15:03:36 -0000 @@ -13,9 +13,11 @@ * * Contributors: * Michael Berger (IBM) - 146339 Added refresh action graphic. + * David Dykstal (IBM) - [191130] use new getRemoteSystemsProject(boolean) method *******************************************************************************/ package org.eclipse.rse.internal.ui.view.team; +import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.rse.core.SystemResourceManager; @@ -67,11 +69,12 @@ public void run() { try { - SystemResourceManager.getRemoteSystemsProject().refreshLocal(IResource.DEPTH_INFINITE, null); + IProject connectionsProject = SystemResourceManager.getRemoteSystemsProject(false); + if (connectionsProject.isAccessible()) { + connectionsProject.refreshLocal(IResource.DEPTH_INFINITE, null); + } } catch (Exception exc) {} - SystemTeamView teamViewer = (SystemTeamView)teamView.getTreeViewer(); teamViewer.refresh(); - //System.out.println("Running refresh all"); } } #P org.eclipse.rse.core Index: src/org/eclipse/rse/internal/persistence/PFWorkspaceLocation.java =================================================================== RCS file: /cvsroot/dsdp/org.eclipse.tm.rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/PFWorkspaceLocation.java,v retrieving revision 1.2 diff -u -r1.2 PFWorkspaceLocation.java --- src/org/eclipse/rse/internal/persistence/PFWorkspaceLocation.java 4 Jun 2007 16:29:14 -0000 1.2 +++ src/org/eclipse/rse/internal/persistence/PFWorkspaceLocation.java 8 Jun 2007 15:03:38 -0000 @@ -10,6 +10,7 @@ * David Dykstal (IBM) - [189858] delayed the creation of the remote systems project by * using handle-only operations. The project is created only * if required to exist for writing. + * David Dykstal (IBM) - [191130] use explicit getRemoteSystemsProject(boolean) method *******************************************************************************/ package org.eclipse.rse.internal.persistence; @@ -136,7 +137,7 @@ private void ensure(IContainer resource) { if (!resource.isAccessible()) { if (resource.getType() == IResource.PROJECT) { - SystemResourceManager.getRemoteSystemsProject(); + SystemResourceManager.getRemoteSystemsProject(true); } else { IFolder folder = (IFolder) resource; ensure(folder.getParent()); Index: src/org/eclipse/rse/internal/persistence/SerializingProvider.java =================================================================== RCS file: /cvsroot/dsdp/org.eclipse.tm.rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/SerializingProvider.java,v retrieving revision 1.4 diff -u -r1.4 SerializingProvider.java --- src/org/eclipse/rse/internal/persistence/SerializingProvider.java 17 May 2007 18:50:15 -0000 1.4 +++ src/org/eclipse/rse/internal/persistence/SerializingProvider.java 8 Jun 2007 15:03:38 -0000 @@ -12,6 +12,7 @@ * * Contributors: * Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType + * David Dykstal (IBM) - [191130] use explicit getRemoteSystemsProject(boolean) method ********************************************************************************/ package org.eclipse.rse.internal.persistence; @@ -57,21 +58,23 @@ */ List names = new Vector(10); try { - IProject project = SystemResourceManager.getRemoteSystemsProject(); - IResource[] candidates = project.members(); - for (int i = 0; i < candidates.length; i++) { - IResource candidate = candidates[i]; - if (candidate.getType() == IResource.FOLDER) { - IFolder candidateFolder = (IFolder) candidate; - IResource[] children = candidateFolder.members(); - if (children.length == 1) { - IResource child = children[0]; - if (child.getType() == IResource.FILE) { - String profileName = candidateFolder.getName(); - String domFileName = profileName + ".rsedom"; //$NON-NLS-1$ - String childName = child.getName(); - if (childName.equals(domFileName)) { - names.add(profileName); + IProject project = SystemResourceManager.getRemoteSystemsProject(false); + if (project.isAccessible()) { + IResource[] candidates = project.members(); + for (int i = 0; i < candidates.length; i++) { + IResource candidate = candidates[i]; + if (candidate.getType() == IResource.FOLDER) { + IFolder candidateFolder = (IFolder) candidate; + IResource[] children = candidateFolder.members(); + if (children.length == 1) { + IResource child = children[0]; + if (child.getType() == IResource.FILE) { + String profileName = candidateFolder.getName(); + String domFileName = profileName + ".rsedom"; //$NON-NLS-1$ + String childName = child.getName(); + if (childName.equals(domFileName)) { + names.add(profileName); + } } } } @@ -114,7 +117,7 @@ } private IFile getProfileFile(String domName, IProgressMonitor monitor) { - IProject project = SystemResourceManager.getRemoteSystemsProject(); + IProject project = SystemResourceManager.getRemoteSystemsProject(true); // before loading, make sure the project is in synch try { Index: src/org/eclipse/rse/core/SystemResourceManager.java =================================================================== RCS file: /cvsroot/dsdp/org.eclipse.tm.rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/SystemResourceManager.java,v retrieving revision 1.7 diff -u -r1.7 SystemResourceManager.java --- src/org/eclipse/rse/core/SystemResourceManager.java 5 Jun 2007 01:39:51 -0000 1.7 +++ src/org/eclipse/rse/core/SystemResourceManager.java 8 Jun 2007 15:03:38 -0000 @@ -19,6 +19,8 @@ * made ensureRemoteSystemsProject private instead of protected * David Dykstal (IBM) - [186589] move user types, user actions, and compile commands * API to the user actions plugin + * David Dykstal (IBM) - [191130] remove getRemoteSystemsProject() and getProfileFolder() + * as part of the work to removed the exception printed at startup. ********************************************************************************/ package org.eclipse.rse.core; @@ -148,22 +150,24 @@ _listener.removeResourceChangeListener(l); } - /** - * Get the default remote systems project. - * If found but closed, this will open the project. - * @return IProject handle of the project. Use exists() to test existence. - */ - public static IProject getRemoteSystemsProject() - { - return getRemoteSystemsProject(true); - } +// /** +// * Get the default remote systems project. +// * If found but closed, this will open the project. +// * @return IProject handle of the project. Use exists() to test existence. +// * @deprecated use {@link #getRemoteSystemsProject(boolean)} instead. +// */ +// public static IProject getRemoteSystemsProject() +// { +// return getRemoteSystemsProject(true); +// } /** * Get the default remote systems project. * If found but closed, this will open the project. * @param force if true force the creation of the project if not found. * In any case, returns handle to the project. - * @return IProject handle of the project. Use exists() to test existence. + * @return IProject handle of the project. Clients should use + * exists() or isAccessible() to test existence. */ public static IProject getRemoteSystemsProject(boolean force) { if (remoteSystemsProject == null) { @@ -273,10 +277,10 @@ /** * Get profiles folder for a given profile name */ - public static IFolder getProfileFolder(String profileName) - { - return getResourceHelpers().getOrCreateFolder(getRemoteSystemsProject(),profileName); - } +// public static IFolder getProfileFolder(String profileName) +// { +// return getResourceHelpers().getOrCreateFolder(getRemoteSystemsProject(),profileName); +// } // -------------------