You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Clement Escoffier (JIRA)" <ji...@apache.org> on 2014/12/24 17:24:15 UTC

[jira] [Closed] (FELIX-4725) Inner Class Manipulation uses the wrong 'access level'

     [ https://issues.apache.org/jira/browse/FELIX-4725?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Clement Escoffier closed FELIX-4725.
------------------------------------

> 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
(v6.3.4#6332)