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