Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ResourceNode.java')
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ResourceNode.java17
1 files changed, 15 insertions, 2 deletions
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ResourceNode.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ResourceNode.java
index e82d480af..4c08c8111 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ResourceNode.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ResourceNode.java
@@ -177,8 +177,21 @@ public class ResourceNode extends BufferedContent
* @exception CoreException if the contents of this storage could not be accessed
*/
protected InputStream createStream() throws CoreException {
- if (fResource instanceof IStorage)
- return new BufferedInputStream(((IStorage)fResource).getContents());
+ if (fResource instanceof IStorage) {
+ InputStream is= null;
+ IStorage storage= (IStorage) fResource;
+ try {
+ is= storage.getContents();
+ } catch (CoreException e) {
+ if (e.getStatus().getCode() == IResourceStatus.OUT_OF_SYNC_LOCAL) {
+ fResource.refreshLocal(IResource.DEPTH_INFINITE, null);
+ is= storage.getContents();
+ } else
+ throw e;
+ }
+ if (is != null)
+ return new BufferedInputStream(is);
+ }
return null;
}

Back to the top