Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikaƫl Barbero2014-05-15 12:45:14 +0000
committerLaurent Goubet2014-05-16 07:45:44 +0000
commit3319ad150b51f809e846130e0223cf184ccd76e5 (patch)
treede21406debc6fc481d2f08fa9e6df98789849fe3
parent3a9c1d94e8703b383584df3a6323e1b7d5858186 (diff)
downloadorg.eclipse.emf.compare-3319ad150b51f809e846130e0223cf184ccd76e5.tar.gz
org.eclipse.emf.compare-3319ad150b51f809e846130e0223cf184ccd76e5.tar.xz
org.eclipse.emf.compare-3319ad150b51f809e846130e0223cf184ccd76e5.zip
Do not rethrow exception when loading a resource in a custom resourceset
Let the super implementation register a diagnostic on the resource. It will be queried afterwards to know if something went badly. Change-Id: I4e94119a2f4e6c605b0f53c2372fa473f255862a
-rw-r--r--plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/resolver/SynchronizedResourceSet.java18
-rw-r--r--plugins/org.eclipse.emf.compare.ide/src/org/eclipse/emf/compare/ide/internal/utils/NotLoadingResourceSet.java17
2 files changed, 35 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/resolver/SynchronizedResourceSet.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/resolver/SynchronizedResourceSet.java
index c033dc355..62938279e 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/resolver/SynchronizedResourceSet.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/resolver/SynchronizedResourceSet.java
@@ -2,6 +2,7 @@ package org.eclipse.emf.compare.ide.ui.internal.logical.resolver;
import com.google.common.collect.Maps;
+import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
@@ -110,6 +111,23 @@ class SynchronizedResourceSet extends ResourceSetImpl {
return result;
}
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.ecore.resource.impl.ResourceSetImpl#handleDemandLoadException(org.eclipse.emf.ecore.resource.Resource,
+ * java.io.IOException)
+ */
+ @Override
+ protected void handleDemandLoadException(Resource resource, IOException exception)
+ throws RuntimeException {
+ try {
+ super.handleDemandLoadException(resource, exception);
+ } catch (RuntimeException e) {
+ // do nothing, continue with loading, the exception has been added to the diagnostics of the
+ // resource
+ }
+ }
+
public Set<URI> discoverCrossReferences(Resource resource, IProgressMonitor monitor) {
resource.eSetDeliver(false);
final List<EObject> roots = ((InternalEList<EObject>)resource.getContents()).basicList();
diff --git a/plugins/org.eclipse.emf.compare.ide/src/org/eclipse/emf/compare/ide/internal/utils/NotLoadingResourceSet.java b/plugins/org.eclipse.emf.compare.ide/src/org/eclipse/emf/compare/ide/internal/utils/NotLoadingResourceSet.java
index 2c90f6024..86c062f1f 100644
--- a/plugins/org.eclipse.emf.compare.ide/src/org/eclipse/emf/compare/ide/internal/utils/NotLoadingResourceSet.java
+++ b/plugins/org.eclipse.emf.compare.ide/src/org/eclipse/emf/compare/ide/internal/utils/NotLoadingResourceSet.java
@@ -91,6 +91,23 @@ public final class NotLoadingResourceSet extends ResourceSetImpl {
/**
* {@inheritDoc}
*
+ * @see org.eclipse.emf.ecore.resource.impl.ResourceSetImpl#handleDemandLoadException(org.eclipse.emf.ecore.resource.Resource,
+ * java.io.IOException)
+ */
+ @Override
+ protected void handleDemandLoadException(Resource resource, IOException exception) {
+ try {
+ super.handleDemandLoadException(resource, exception);
+ // CHECKSTYLE:OFF
+ } catch (RuntimeException e) {
+ // CHECKSTYLE:ON
+ // do nothing. The errors are added to the Resource#getErrors() in super().
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
* @see org.eclipse.emf.ecore.resource.impl.ResourceSetImpl#getResource(org.eclipse.emf.common.util.URI,
* boolean)
*/

Back to the top