Details
-
Bug
-
Resolution: Done
-
Major
-
1.0.2
-
None
Description
When an AT SYNCHRONIZE trigger sequence is injected into a target method it directly precedes the monitorenter instruction which opens the synchronized block. This intercedes between the monitorenter instruction and the preceding astore instruction which saves the lock object in a local variable slot. The CFG analysis expects to find this instruction during code analysis. Instead it finds an invokestatic which represents the call into the rule system. It should work backwards through the basic block until it finds an astore instruction. This is safe since the trigger sequences do not employ astore and there should always be an astore precedingg the first injected trigger sequence.