[255108] Regression in EMF processing of new IFile
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ResourceSetWorkbenchEditSynchronizer.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ResourceSetWorkbenchEditSynchronizer.java
index 8621a4b..3718afe 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ResourceSetWorkbenchEditSynchronizer.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ResourceSetWorkbenchEditSynchronizer.java
@@ -320,22 +320,26 @@
* @post Return true if a <code>Resource</code> was queued up to be reloaded.
*/
protected boolean addedResource(IFile aFile) {
- boolean didProcess = false;
- List resources = getResources(aFile);
- for (Iterator iterator = resources.iterator(); iterator.hasNext();) {
+ boolean didProcess = false;
+ List resources = getResources(aFile);
+ for (Iterator iterator = resources.iterator(); iterator.hasNext();) {
Resource resource = (Resource) iterator.next();
- if ((resource != null) && (recentlySavedFilesContains(resource))) {
- /*
- * The IFile was just added to the workspace but we have a
- * resource in memory. Need to decide if it should be unloaded.
- */
- if (resource.isModified()) {
- if (WorkbenchResourceHelper.isReferencedResource(resource)) {
- ReferencedResource refRes = (ReferencedResource) resource;
- if (refRes.shouldForceRefresh()) {
- deferredUnloadResources.add(resource);
- didProcess = true;
+ if (resource != null) {
+ if (recentlySavedFilesContains(resource)) {
+
+ /*
+ * The IFile was just added to the workspace but we have a
+ * changed resource in memory. Need to decide if it should
+ * be unloaded.
+ */
+ if (resource.isModified()) {
+ if (WorkbenchResourceHelper.isReferencedResource(resource)) {
+ ReferencedResource refRes = (ReferencedResource) resource;
+ if (refRes.shouldForceRefresh()) {
+ deferredUnloadResources.add(resource);
+ didProcess = true;
+ }
}
}
} else {
@@ -350,19 +354,19 @@
deferredUnloadResources.add(resource);
didProcess = true;
}
+ } else {
+ /* Process autoload resources on added file */
+ URI uri = URI.createPlatformResourceURI(aFile.getFullPath().toString());
+ if ((autoloadResourcesURIs.contains(uri)) || (autoloadResourcesExts.contains(aFile.getFileExtension()))) {
+ deferredLoadResources.add(uri);
+ didProcess = true;
+ }
}
}
- } else {
- // Process resource as a refresh.
- URI uri = URI.createPlatformResourceURI(aFile.getFullPath().toString());
- if ((autoloadResourcesURIs.contains(uri)) || (autoloadResourcesExts.contains(aFile.getFileExtension()))) {
- deferredLoadResources.add(uri);
- didProcess = true;
- }
}
}
- return didProcess;
-}
+ return didProcess;
+ }
private synchronized boolean recentlySavedFilesContains(Resource resource) {
for (Iterator iterator = recentlySavedFiles.iterator(); iterator.hasNext();) {