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.

        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: