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/10 08:46:13 UTC
[jira] [Resolved] (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 resolved FELIX-4725.
--------------------------------------
Resolution: Fixed
Fixed in trunk.
> 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)