Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordwagelaar2014-01-21 21:55:54 +0000
committerdwagelaar2014-01-21 21:55:54 +0000
commita46b25d6a1ddfc04f3f96eb57c80315191ab3abe (patch)
tree7b82fe6cfe66fb6b02b61572bd8dbe0c158dc61d /plugins/org.eclipse.m2m.atl.emftvm
parent3b3050be4511a2edb5a55f225fa3acedd4b3097f (diff)
downloadorg.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.java11
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) {

Back to the top