diff --git a/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/asm/ASMConsequenceStubBuilder.java b/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/asm/ASMConsequenceStubBuilder.java index 344c690..c10c515 100644 --- a/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/asm/ASMConsequenceStubBuilder.java +++ b/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/asm/ASMConsequenceStubBuilder.java @@ -72,6 +72,8 @@ public class ASMConsequenceStubBuilder extends ASMConsequenceBuilder { mv.visitTryCatchBlock(syncStart, l1, l2, null); Label l3 = new Label(); mv.visitTryCatchBlock(l2, l3, l2, null); + getFieldFromThis("consequence", Consequence.class); + mv.visitJumpInsn(IFNONNULL, syncEnd); mv.visitVarInsn(ALOAD, 0); mv.visitInsn(DUP); mv.visitVarInsn(ASTORE, 3); diff --git a/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/asm/ASMEvalStubBuilder.java b/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/asm/ASMEvalStubBuilder.java index c6cd696..8b95d88 100644 --- a/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/asm/ASMEvalStubBuilder.java +++ b/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/asm/ASMEvalStubBuilder.java @@ -63,6 +63,8 @@ public class ASMEvalStubBuilder extends AbstractASMEvalBuilder { mv.visitTryCatchBlock(syncStart, l1, l2, null); Label l3 = new Label(); mv.visitTryCatchBlock(l2, l3, l2, null); + getFieldFromThis("eval", EvalExpression.class); + mv.visitJumpInsn(IFNONNULL, syncEnd); mv.visitVarInsn(ALOAD, 0); mv.visitInsn(DUP); mv.visitVarInsn(ASTORE, 5); diff --git a/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/asm/ASMPredicateStubBuilder.java b/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/asm/ASMPredicateStubBuilder.java index fb02d29..3d33227 100644 --- a/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/asm/ASMPredicateStubBuilder.java +++ b/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/asm/ASMPredicateStubBuilder.java @@ -58,6 +58,8 @@ public class ASMPredicateStubBuilder extends AbstractASMPredicateBuilder { mv.visitTryCatchBlock(syncStart, l1, l2, null); Label l3 = new Label(); mv.visitTryCatchBlock(l2, l3, l2, null); + getFieldFromThis("predicate", PredicateExpression.class); + mv.visitJumpInsn(IFNONNULL, syncEnd); mv.visitVarInsn(ALOAD, 0); mv.visitInsn(DUP); mv.visitVarInsn(ASTORE, 7); diff --git a/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/asm/ASMReturnValueStubBuilder.java b/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/asm/ASMReturnValueStubBuilder.java index 93b6cda..1d0122d 100644 --- a/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/asm/ASMReturnValueStubBuilder.java +++ b/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/asm/ASMReturnValueStubBuilder.java @@ -58,6 +58,8 @@ public class ASMReturnValueStubBuilder extends AbstractASMReturnValueBuilder { mv.visitTryCatchBlock(syncStart, l1, l2, null); Label l3 = new Label(); mv.visitTryCatchBlock(l2, l3, l2, null); + getFieldFromThis("returnValue", ReturnValueExpression.class); + mv.visitJumpInsn(IFNONNULL, syncEnd); mv.visitVarInsn(ALOAD, 0); mv.visitInsn(DUP); mv.visitVarInsn(ASTORE, 7);