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);