diff options
author | dwagelaar | 2014-01-21 21:55:54 +0000 |
---|---|---|
committer | dwagelaar | 2014-01-21 21:55:54 +0000 |
commit | a46b25d6a1ddfc04f3f96eb57c80315191ab3abe (patch) | |
tree | 7b82fe6cfe66fb6b02b61572bd8dbe0c158dc61d /plugins/org.eclipse.m2m.atl.emftvm | |
parent | 3b3050be4511a2edb5a55f225fa3acedd4b3097f (diff) | |
download | org.eclipse.atl-a46b25d6a1ddfc04f3f96eb57c80315191ab3abe.tar.gz org.eclipse.atl-a46b25d6a1ddfc04f3f96eb57c80315191ab3abe.tar.xz org.eclipse.atl-a46b25d6a1ddfc04f3f96eb57c80315191ab3abe.zip |
426154: rule inheritance and module import
https://bugs.eclipse.org/bugs/show_bug.cgi?id=426154
Diffstat (limited to 'plugins/org.eclipse.m2m.atl.emftvm')
-rw-r--r-- | plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ExecEnvImpl.java | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ExecEnvImpl.java b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ExecEnvImpl.java index e2ab8344..6efbfcbe 100644 --- a/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ExecEnvImpl.java +++ b/plugins/org.eclipse.m2m.atl.emftvm/src/org/eclipse/m2m/atl/emftvm/impl/ExecEnvImpl.java @@ -1221,12 +1221,6 @@ public class ExecEnvImpl extends EObjectImpl implements ExecEnv { */ public synchronized Module loadModule(final ModuleResolver resolver, final String name, final boolean validate) { resetJITCompiler(); - if (isRuleStateCompiled()) { - for (Rule r : getRules()) { - r.resetState(); - } - } - setRuleStateCompiled(false); try { //detect cyclic imports w.r.t. redefinition if (internalModules.containsKey(name)) { @@ -1256,6 +1250,11 @@ public class ExecEnvImpl extends EObjectImpl implements ExecEnv { throw new VMException(null, String.format("Byte code validation of %s failed", invalidObject)); } } + // Bug 426154: validation triggers partial rule state compilation, so always reset: + for (Rule r : getRules()) { + r.resetState(); + } + setRuleStateCompiled(false); loadedModules.add(name); return module; } catch (Exception e) { |