Fix 377662
git-svn-id: http://dev.eclipse.org/svnroot/technology/org.eclipse.stem/branches/STEM_1_3_1@3105 92a21009-5b66-0410-b83a-dc787c41c6e9
diff --git a/core/org.eclipse.stem.jobs/src/org/eclipse/stem/jobs/batch/BatchManager.java b/core/org.eclipse.stem.jobs/src/org/eclipse/stem/jobs/batch/BatchManager.java
index 7f7e2fd..26cae1d 100644
--- a/core/org.eclipse.stem.jobs/src/org/eclipse/stem/jobs/batch/BatchManager.java
+++ b/core/org.eclipse.stem.jobs/src/org/eclipse/stem/jobs/batch/BatchManager.java
@@ -27,6 +27,7 @@
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.stem.core.common.DublinCore;
import org.eclipse.stem.core.experiment.Experiment;
import org.eclipse.stem.core.scenario.ScenarioInitializationException;
@@ -138,7 +139,11 @@
* @return an {@link IBatch} from the {@link Experiment}
*/
public IBatch createBatch(final Experiment experiment) {
- final Batch batch = new Batch(experiment,
+
+ Experiment copyExperiment = (Experiment)EcoreUtil.copy(experiment);
+ copyExperiment.getModifiers().clear();
+ copyExperiment.getModifiers().addAll(EcoreUtil.copyAll(experiment.getModifiers()));
+ final Batch batch = new Batch(copyExperiment,
getAndIncrementBatchSequenceNumber());
batch.setPriority(Job.LONG);
final IBatch retValue = new BatchAdapter(batch);
diff --git a/core/org.eclipse.stem.jobs/src/org/eclipse/stem/jobs/simulation/SimulationManager.java b/core/org.eclipse.stem.jobs/src/org/eclipse/stem/jobs/simulation/SimulationManager.java
index ac22bf7..8e1cf77 100644
--- a/core/org.eclipse.stem.jobs/src/org/eclipse/stem/jobs/simulation/SimulationManager.java
+++ b/core/org.eclipse.stem.jobs/src/org/eclipse/stem/jobs/simulation/SimulationManager.java
@@ -25,6 +25,7 @@
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
import org.eclipse.stem.core.Utility;
import org.eclipse.stem.core.common.DublinCore;
@@ -34,6 +35,7 @@
import org.eclipse.stem.core.scenario.Scenario;
import org.eclipse.stem.core.scenario.ScenarioInitializationException;
import org.eclipse.stem.core.scenario.ScenarioPackage;
+import org.eclipse.stem.core.sequencer.Sequencer;
import org.eclipse.stem.jobs.Activator;
import org.eclipse.stem.jobs.DisplaySafeExecutor;
import org.eclipse.stem.jobs.execution.ExecutableManager;
@@ -309,13 +311,23 @@
}
*/
+ Scenario copiedScenario = EcoreUtil.copy(scenario);
+ if(scenario.getModel() != null) {
+ copiedScenario.setModel(EcoreUtil.copy(scenario.getModel()));
+ }
+ if(scenario.getSequencer() != null) {
+ copiedScenario.setSequencer(EcoreUtil.copy(scenario.getSequencer()));
+ }
+
+
+ final Simulation simulation = new Simulation(copiedScenario,
+ getAndIncrementSimulationSequenceNumber(), partitioner);
- final Simulation simulation = new Simulation(scenario,
- getAndIncrementSimulationSequenceNumber(), partitioner);
- if(scenario.getCanonicalGraph() == null)
- scenario.initialize(); // needed for preferences ...
- else scenario.reset();
+
+ if(copiedScenario.getCanonicalGraph() == null)
+ copiedScenario.initialize(); // needed for preferences ...
+ else copiedScenario.reset();
simulation.setPriority(Job.LONG);