From 4270ba7417e84ebd801881b619779dc78fae44b5 Mon Sep 17 00:00:00 2001 From: David McKnight Date: Tue, 29 Mar 2011 15:14:47 +0000 Subject: [PATCH] [341244] folder selection input to unlocked Remote Systems Details view sometimes fails --- .../ui/view/SystemViewRemoteFileAdapter.java | 15 +++++++++++++++ .../rse/internal/ui/view/SystemTableViewPart.java | 5 +++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/view/SystemViewRemoteFileAdapter.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/view/SystemViewRemoteFileAdapter.java index 14aef45ee72..3dd6603a19a 100644 --- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/view/SystemViewRemoteFileAdapter.java +++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/view/SystemViewRemoteFileAdapter.java @@ -74,6 +74,7 @@ * David McKnight (IBM) - [330398] RSE leaks SWT resources * David McKnight (IBM) - [215814] [performance] Duplicate Queries between Table and Remote Systems View * David McKnight (IBM) - [249031] Last used editor should be set to SystemEditableRemoteFile + * David McKnight (IBM) - [341244] folder selection input to unlocked Remote Systems Details view sometimes fails *******************************************************************************/ package org.eclipse.rse.internal.files.ui.view; @@ -939,6 +940,20 @@ public class SystemViewRemoteFileAdapter { IRemoteFile file = (IRemoteFile) element; + IRemoteFileSubSystem ss = file.getParentRemoteFileSubSystem(); + + // make sure we have the lastest cached version otherwise could be working with a bad file that never got marked as stale + IRemoteFile originalFile = file; + if (ss instanceof RemoteFileSubSystem){ + IRemoteFile cachedFile = ((RemoteFileSubSystem)ss).getCachedRemoteFile(file.getAbsolutePath()); + if (cachedFile != null){ + file = cachedFile; + if (originalFile.isStale()){ // the original file was marked stale, so the cached one should be too + file.markStale(true); + } + } + } + if (!file.exists()) return false; diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemTableViewPart.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemTableViewPart.java index c841783aa3a..6153a69af0b 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemTableViewPart.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemTableViewPart.java @@ -45,6 +45,7 @@ * David McKnight (IBM) - [330398] RSE leaks SWT resources * David McKnight (IBM) - [340912] inconsistencies with columns in RSE table viewers * David McKnight (IBM) - [341240] Remote Systems Details view not remembering locked/unlocked state between sessions + * David McKnight (IBM) - [341244] folder selection input to unlocked Remote Systems Details view sometimes fails *******************************************************/ package org.eclipse.rse.internal.ui.view; @@ -1340,8 +1341,7 @@ public class SystemTableViewPart extends ViewPart { Object first = ((IStructuredSelection) sel).getFirstElement(); if (_lastSelection != first) - { - _lastSelection = first; + { if (first instanceof IAdaptable) { { @@ -1352,6 +1352,7 @@ public class SystemTableViewPart extends ViewPart if (va.hasChildren(adapt) && adapt != _viewer.getInput()) { setInput(adapt); + _lastSelection = first; } } }