Byteman
  1. Byteman
  2. BYTEMAN-196

An AT EXIT rule which refers to $! in when the target method is void can break trigger injectin

    Details

    • Similar Issues:
      Show 10 results 

      Description

      If an AT EXIT rule refers to $! then the trigger injection code will try to generate code to save the stacked return value in a local var slot and then pass it to the triggered rule. However, when the trigger method is void this is doubly inappropriate and results in an exception because i) there is no stacked return value! and ii) the type supplied when allocating the local var slot is void!!

      Injection should be invalidated and a warning exception generated in these circumstances, preferably in the check adapter.

      n.b. it is probably necessary to include the same check for AFTER CALL rules which refer to $! when the called method is void.

        Gliffy Diagrams

          Issue Links

            Activity

            Hide
            Andrew Dinn added a comment -

            Implementing this requires improvements to the way mismatches are handled

            Show
            Andrew Dinn added a comment - Implementing this requires improvements to the way mismatches are handled
            Hide
            Andrew Dinn added a comment -

            The checks on the method return type have now been instituted using the revised injection management API provided by class TransformContext.

            Show
            Andrew Dinn added a comment - The checks on the method return type have now been instituted using the revised injection management API provided by class TransformContext.

              People

              • Assignee:
                Andrew Dinn
                Reporter:
                Anton Ryabtsev
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Development