Made getContextForNewTemplate() synchronized
diff --git a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/EglTemplateFactory.java b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/EglTemplateFactory.java
index 9b4a1f8..c81188a 100644
--- a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/EglTemplateFactory.java
+++ b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/EglTemplateFactory.java
@@ -266,7 +266,7 @@
* @return An appropriate context to be used for a new EglTemplate instance.
* @since 1.6
*/
- protected IEglContext getContextForNewTemplate() {
+ protected synchronized IEglContext getContextForNewTemplate() {
if (delegate == null) return getContext();
EglContext tc = new EglContext(getContext());
tc.setOperationContributorRegistry(delegate.getOperationContributorRegistry());
diff --git a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/concurrent/EgxModuleParallel.java b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/concurrent/EgxModuleParallel.java
index 0b6f8c8..e6f78ff 100644
--- a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/concurrent/EgxModuleParallel.java
+++ b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/concurrent/EgxModuleParallel.java
@@ -37,7 +37,9 @@
public EgxModuleParallel(String outputRoot) throws EglRuntimeException {
this();
- setFileGeneratingTemplateFactory(outputRoot);
+ if (outputRoot != null) {
+ setFileGeneratingTemplateFactory(outputRoot);
+ }
}
public EgxModuleParallel(IEgxContextParallel context) {
diff --git a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/concurrent/EgxContextParallel.java b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/concurrent/EgxContextParallel.java
index 7b18650..736f719 100644
--- a/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/concurrent/EgxContextParallel.java
+++ b/plugins/org.eclipse.epsilon.egl.engine/src/org/eclipse/epsilon/egl/execute/context/concurrent/EgxContextParallel.java
@@ -47,7 +47,7 @@
public EgxContextParallel(EglTemplateFactory templateFactory, int parallelism) {
super(parallelism);
- setTemplateFactory(templateFactory != null ? templateFactory : (templateFactory = new EglTemplateFactory()));
+ setTemplateFactory(templateFactory != null ? templateFactory : new EglTemplateFactory());
invokedTemplates = ConcurrencyUtils.concurrentOrderedCollection();
}
diff --git a/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/dom/ForStatement.java b/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/dom/ForStatement.java
index 94b0677..8d0b278 100644
--- a/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/dom/ForStatement.java
+++ b/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/dom/ForStatement.java
@@ -73,7 +73,7 @@
iteratedCol.addAll(((EolModelElementType) iteratedObject).all());
}
else if (iteratedObject instanceof Iterator) {
- it = (Iterator) iteratedObject;
+ it = (Iterator<?>) iteratedObject;
}
else {
iteratedCol = CollectionUtil.createDefaultList();
@@ -85,10 +85,9 @@
boolean loopBroken = false;
- int loop = 1;
FrameStack frameStack = context.getFrameStack();
- while (it.hasNext() && !loopBroken) {
+ for (int loop = 1; it.hasNext() && !loopBroken;) {
Object next = it.next();
if (!iteratorType.isKind(next)) continue;