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

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

    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.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  adinn Andrew Dinn
                  Reporter:
                  adinn Andrew Dinn
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                  Dates

                  • Created:
                    Updated: