Bug 480454 - Corrupted ChangePackage resources in case of active change
package splitting
Cloning operations while retrieving complete change package from upload
adapter
Change-Id: I9faa0731ab81c9963cc64691ead37c3f022e0acb
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/ChangePackageFragmentUploadAdapter.java b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/ChangePackageFragmentUploadAdapter.java
index ae467c5..b43bf8a 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/ChangePackageFragmentUploadAdapter.java
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/ChangePackageFragmentUploadAdapter.java
@@ -19,6 +19,7 @@
import org.eclipse.emf.common.notify.impl.AdapterImpl;
import org.eclipse.emf.emfstore.internal.common.model.util.FileUtil;
+import org.eclipse.emf.emfstore.internal.common.model.util.ModelUtil;
import org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackage;
import org.eclipse.emf.emfstore.internal.server.model.versioning.FileBasedChangePackage;
import org.eclipse.emf.emfstore.internal.server.model.versioning.VersioningFactory;
@@ -37,10 +38,8 @@
public class ChangePackageFragmentUploadAdapter extends AdapterImpl {
// maps proxy ID to file-based change package
- private final Map<String, FileBasedChangePackage> proxyIdToChangePackageFragments =
- new LinkedHashMap<String, FileBasedChangePackage>();
- private final Map<String, FileBasedChangePackage> proxyIdToCompletedChangePackages =
- new LinkedHashMap<String, FileBasedChangePackage>();
+ private final Map<String, FileBasedChangePackage> proxyIdToChangePackageFragments = new LinkedHashMap<String, FileBasedChangePackage>();
+ private final Map<String, FileBasedChangePackage> proxyIdToCompletedChangePackages = new LinkedHashMap<String, FileBasedChangePackage>();
/**
* Adds a single fragment.
@@ -110,7 +109,7 @@
final ChangePackage changePackage = VersioningFactory.eINSTANCE.createChangePackage();
try {
for (final AbstractOperation operation : operationsHandle.iterable()) {
- changePackage.add(operation);
+ changePackage.add(ModelUtil.clone(operation));
}
} finally {
operationsHandle.close();