diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/MigrationService.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/MigrationService.java index b0f05859e33a85bc285a05056d5c16448a4cb4f0..9786e3974752bb0e9281d42a3ef92fa1bab8c5c2 100644 --- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/MigrationService.java +++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/MigrationService.java @@ -28,7 +28,6 @@ import java.util.Map.Entry; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.emf.common.util.BasicEList; import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.ecore.util.FeatureMap; import org.eclipse.emf.ecore.xml.type.AnyType; import org.fortiss.tooling.kernel.ToolingKernelActivator; @@ -138,10 +137,7 @@ public class MigrationService extends ObjectAwareServiceBase<IMigrationProvider> error(ToolingKernelActivator.getDefault(), input.getSaveableName() + " contains one or more unknown feature(s) which will be deleted: " + featuresToStrings(unknownFeatures)); - - for(Entry<EObject, AnyType> e : unknownFeatures.entrySet()) { - EcoreUtil.delete(e.getKey(), true); - } + unknownFeatures.clear(); } } }); diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/.ratings b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/.ratings index 4a4edee0b9b29c4f7e79c5026854886346e3d02a..129d11bd34f93177884c7de7a03710e9bb2c8298 100644 --- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/.ratings +++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/.ratings @@ -1,5 +1,5 @@ AutoUndoCommandStack.java fc326adf66c6cea2354884cdc240da5f2f82689a GREEN EMFTransactionalCommand.java ba4b5bead9768b6ce6c955b9238cd96cb722533c GREEN EclipseResourceStorageService.java e29e32272286921c5e43963253902b3ba54490c7 GREEN -ModelContext.java 55de5f19c5d625f935fb8136ff72d80b3a54ff19 GREEN +ModelContext.java db1735834c85e7b508266f56463d011f2b72af0e YELLOW NonDirtyingEMFTransactionalCommand.java d288ebe35d22442c603496b0c917fb99a8febeea GREEN diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java index 55de5f19c5d625f935fb8136ff72d80b3a54ff19..db1735834c85e7b508266f56463d011f2b72af0e 100644 --- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java +++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java @@ -330,7 +330,9 @@ class ModelContext implements ITopLevelElement, CommandStackListener { // Step 3..n: Save resources not managed by kernel for(Resource currentResource : rset.getResources()) { - if(currentResource != resource && !editingDomain.isReadOnly(currentResource)) { + if(currentResource != resource && !editingDomain.isReadOnly(currentResource) && + !currentResource.getContents().isEmpty()) { + // do not save resources which are not contained (by a FileProject) try { currentResource.save(saveOptions); } catch(IOException e) {