[
https://issues.apache.org/jira/browse/BCEL-333?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gary D. Gregory updated BCEL-333:
---------------------------------
Fix Version/s: 6.5.1
> InovokeStatic may refer to either a MethodRef or an InterfaceMethodRef
> ----------------------------------------------------------------------
>
> Key: BCEL-333
> URL: https://issues.apache.org/jira/browse/BCEL-333
> Project: Commons BCEL
> Issue Type: Bug
> Reporter: Mark Roberts
> Priority: Major
> Fix For: 6.5.1
>
>
> Java 8 added support for static interfaces. This means that an invokestatic
> instruction may refer to either a CONSTANT_Methodref_info or a
> CONSTANT_InterfaceMethodref_info. See
> [https://stackoverflow.com/questions/34360718/invokestatic-on-static-method-in-interface]
> for a detailed explanation. Currently, if InstructionFactory.createInvoke
> sees an Const.INVOKEINTERFACE it generates an InterfaceMethodref and a
> Methodref otherwise. This is incorrect. I could not figure out any way to
> make the correct decision programmatically as the original instruction is not
> available. So I added an additional createInvoke method with a boolean
> argument that says whether or not to use an InterfaceMethodref. The
> semantics of the original createInvoke method are unchanged.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)