diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemEditFileAction.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemEditFileAction.java index 5502c5f2812..6e3a55eb291 100644 --- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemEditFileAction.java +++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemEditFileAction.java @@ -117,10 +117,20 @@ public class SystemEditFileAction extends SystemBaseAction { boolean remoteNewer = (storedModifiedStamp != remoteModifiedStamp); - String encoding = remoteFile.getEncoding(); + + + String remoteEncoding = remoteFile.getEncoding(); String storedEncoding = properties.getEncoding(); - return (!dirty && !remoteNewer && (encoding != null && encoding.equals(storedEncoding))); + boolean encodingChanged = storedEncoding == null || !(remoteEncoding.equals(storedEncoding)); + + boolean usedBinary = properties.getUsedBinaryTransfer(); + boolean isBinary = remoteFile.isBinary(); + + return (!dirty && + !remoteNewer && + usedBinary == isBinary && + !encodingChanged); } return false; } diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemEditFilesAction.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemEditFilesAction.java index 5dcba2d31c1..d5531812500 100644 --- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemEditFilesAction.java +++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemEditFilesAction.java @@ -142,7 +142,15 @@ public class SystemEditFilesAction extends SystemBaseAction { String storedEncoding = properties.getEncoding(); boolean encodingChanged = storedEncoding == null || !(remoteEncoding.equals(storedEncoding)); - return (!dirty && !remoteNewer && !encodingChanged); + + boolean usedBinary = properties.getUsedBinaryTransfer(); + boolean isBinary = remoteFile.isBinary(); + + return (!dirty && + !remoteNewer && + usedBinary == isBinary && + !encodingChanged); + } return false; } diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemRemoteFileOpenWithMenu.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemRemoteFileOpenWithMenu.java index 82524bdeeaa..87af5813330 100644 --- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemRemoteFileOpenWithMenu.java +++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/actions/SystemRemoteFileOpenWithMenu.java @@ -248,7 +248,19 @@ private boolean isFileCached(ISystemEditableRemoteObject editable, IRemoteFile r boolean dirty = properties.getDirty(); boolean remoteNewer = (storedModifiedStamp != remoteModifiedStamp); - return (!dirty && !remoteNewer); + + String remoteEncoding = remoteFile.getEncoding(); + String storedEncoding = properties.getEncoding(); + + boolean encodingChanged = storedEncoding == null || !(remoteEncoding.equals(storedEncoding)); + + boolean usedBinary = properties.getUsedBinaryTransfer(); + boolean isBinary = remoteFile.isBinary(); + + return (!dirty && + !remoteNewer && + usedBinary == isBinary && + !encodingChanged); } return false; } 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 14188e1dda2..410af69f5f6 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 @@ -3045,7 +3045,14 @@ public class SystemViewRemoteFileAdapter String storedEncoding = properties.getEncoding(); boolean encodingChanged = storedEncoding == null || !(remoteEncoding.equals(storedEncoding)); - return (!dirty && !remoteNewer && !encodingChanged); + + boolean usedBinary = properties.getUsedBinaryTransfer(); + boolean isBinary = remoteFile.isBinary(); + + return (!dirty && + !remoteNewer && + usedBinary == isBinary && + !encodingChanged); } return false; }