diff options
author | Dani Megert | 2008-04-23 08:44:43 +0000 |
---|---|---|
committer | Dani Megert | 2008-04-23 08:44:43 +0000 |
commit | 96423246c8503935fe305c89dc51e6ac7a524360 (patch) | |
tree | ad519ebdd6c797f2cfb6cb132d260993a3a34478 /org.eclipse.core.filebuffers | |
parent | 47919759816722499cd8c8abee58857ff2c300f7 (diff) | |
download | eclipse.platform.text-96423246c8503935fe305c89dc51e6ac7a524360.tar.gz eclipse.platform.text-96423246c8503935fe305c89dc51e6ac7a524360.tar.xz eclipse.platform.text-96423246c8503935fe305c89dc51e6ac7a524360.zip |
Fixed bug 228074: [implementation] ResourceTextFileBuffer reverts resource modification stamp incorrectly
Diffstat (limited to 'org.eclipse.core.filebuffers')
2 files changed, 8 insertions, 8 deletions
diff --git a/org.eclipse.core.filebuffers/src/org/eclipse/core/internal/filebuffers/ResourceFileBuffer.java b/org.eclipse.core.filebuffers/src/org/eclipse/core/internal/filebuffers/ResourceFileBuffer.java index aa48ce69a5a..75bdae9f710 100644 --- a/org.eclipse.core.filebuffers/src/org/eclipse/core/internal/filebuffers/ResourceFileBuffer.java +++ b/org.eclipse.core.filebuffers/src/org/eclipse/core/internal/filebuffers/ResourceFileBuffer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2007 IBM Corporation and others. + * Copyright (c) 2000, 2008 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -139,7 +139,7 @@ public abstract class ResourceFileBuffer extends AbstractFileBuffer { if (!isDisconnected() && !fCanBeSaved && isSynchronized()) { fileChange= new SafeFileChange() { protected void execute() throws Exception { - handleFileContentChanged(false); + handleFileContentChanged(false, false); } }; } @@ -148,7 +148,7 @@ public abstract class ResourceFileBuffer extends AbstractFileBuffer { if (!isDisconnected() && !fCanBeSaved && (!isSynchronized() || (IResourceDelta.REPLACED & flags) != 0)) { fileChange= new SafeFileChange() { protected void execute() throws Exception { - handleFileContentChanged(false); + handleFileContentChanged(false, true); } }; } @@ -216,7 +216,7 @@ public abstract class ResourceFileBuffer extends AbstractFileBuffer { abstract protected void commitFileBufferContent(IProgressMonitor monitor, boolean overwrite) throws CoreException; - abstract protected void handleFileContentChanged(boolean revert) throws CoreException; + abstract protected void handleFileContentChanged(boolean revert, boolean updateModificationStamp) throws CoreException; public void create(IPath location, IProgressMonitor monitor) throws CoreException { @@ -347,7 +347,7 @@ public abstract class ResourceFileBuffer extends AbstractFileBuffer { try { fManager.fireStateChanging(this); - handleFileContentChanged(true); + handleFileContentChanged(true, false); } catch (RuntimeException x) { fManager.fireStateChangeFailed(this); throw x; @@ -398,7 +398,7 @@ public abstract class ResourceFileBuffer extends AbstractFileBuffer { IWorkspace workspace= fFile.getWorkspace(); fStatus= workspace.validateEdit(new IFile[] { fFile }, computationContext); if (fStatus.isOK()) - handleFileContentChanged(false); + handleFileContentChanged(false, false); } if (isDerived(fFile)) { diff --git a/org.eclipse.core.filebuffers/src/org/eclipse/core/internal/filebuffers/ResourceTextFileBuffer.java b/org.eclipse.core.filebuffers/src/org/eclipse/core/internal/filebuffers/ResourceTextFileBuffer.java index f2bb0ee260b..e10cc114317 100644 --- a/org.eclipse.core.filebuffers/src/org/eclipse/core/internal/filebuffers/ResourceTextFileBuffer.java +++ b/org.eclipse.core.filebuffers/src/org/eclipse/core/internal/filebuffers/ResourceTextFileBuffer.java @@ -488,7 +488,7 @@ public class ResourceTextFileBuffer extends ResourceFileBuffer implements ITextF /* * @see org.eclipse.core.internal.filebuffers.ResourceFileBuffer#handleFileContentChanged() */ - protected void handleFileContentChanged(boolean revert) throws CoreException { + protected void handleFileContentChanged(boolean revert, boolean updateModificationStamp) throws CoreException { IDocument document= getManager().createEmptyDocument(fFile); IStatus status= null; @@ -501,7 +501,7 @@ public class ResourceTextFileBuffer extends ResourceFileBuffer implements ITextF } String newContent= document.get(); - boolean replaceContent= !newContent.equals(fDocument.get()); + boolean replaceContent= updateModificationStamp || !newContent.equals(fDocument.get()); if (replaceContent) fManager.fireBufferContentAboutToBeReplaced(this); |