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

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



      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


            Issue Links



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


                  • Created: