Uploaded image for project: 'Byteman'
  1. Byteman
  2. BYTEMAN-288

Byteman should allow calls to methods of private static inner classes from generated bytecode

    XMLWordPrintable

Details

    Description

      Byteman bypasses the normal restrictions limiting access to private, protected or package-private/protected methods and fields. When interpreting code this happens automatically because the interpreter uses reflection to do the access. When compilation of rules to bytecode is enabled Byteman has to be smarter because bytecode level security checks throw a java.lang.IllegalAccessError bytecode if the accessis attempted from the wrong scope (i.e. the associated helper class). The trick is to make the relevant Field or Method instance available to the bytecode and plant instructions in the bytecode which perform the access reflectively.

      This trick has been used to enable calls to private, protected and package-private/protected methods from generated bytecode. However, it has been omitted from a specific corner case: invoking public methods of private, protected or package-protected static inner classes. These cases need to be detected and the same trick applied as per the existing cases.

      Attachments

        Issue Links

          Activity

            People

              rhn-engineering-adinn Andrew Dinn
              rhn-engineering-adinn Andrew Dinn
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: