Uploaded image for project: 'Felix'
  1. Felix
  2. FELIX-4725

Inner Class Manipulation uses the wrong 'access level'

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: ipojo-manipulator-1.12.0
    • Fix Version/s: ipojo-manipulator-1.12.1
    • Component/s: iPOJO
    • Labels:
      None

      Description

      When the manipulator manipulates inner classes, the copied method are reusing the same access level than the initial (original method). For instance

      public void foo()

      is replaced by

      public void __foo()

      . However, reusing the same access level leads to a (missing) mediation on the invoke instruction we need to use to invoke this method. Despite this is working on traditional JVM (Oracle, HotSpot...), it fails on Dalvik.

      The fix is straightforward. Copied methods should be private:

      private void __foo()

      Thus, we just need to use the

      INVOKE_SPECIAL

      instruction.

        Attachments

          Activity

            People

            • Assignee:
              clement.escoffier Clement Escoffier
              Reporter:
              clement.escoffier Clement Escoffier
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: