felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Clement Escoffier (JIRA)" <j...@apache.org>
Subject [jira] [Created] (FELIX-4725) Inner Class Manipulation uses the wrong 'access level'
Date Wed, 10 Dec 2014 07:30:12 GMT
Clement Escoffier created FELIX-4725:

             Summary: Inner Class Manipulation uses the wrong 'access level'
                 Key: FELIX-4725
                 URL: https://issues.apache.org/jira/browse/FELIX-4725
             Project: Felix
          Issue Type: Bug
          Components: iPOJO
    Affects Versions: ipojo-manipulator-1.12.0
            Reporter: Clement Escoffier
            Assignee: Clement Escoffier
             Fix For: ipojo-manipulator-1.12.1

When the manipulator manipulates inner classes, the copied method are reusing the same access
level than the initial (original method). For instance {code}public void foo(){code}  is replaced
by {code}public void __foo(){code}. 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:

{code}private void __foo(){code}

Thus, we just need to use the {code}INVOKE_SPECIAL{code} instruction.

This message was sent by Atlassian JIRA

View raw message