You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Harvey Raja (JIRA)" <ji...@apache.org> on 2016/06/14 13:25:51 UTC
[jira] [Created] (MSHADE-228) Shade can incorrectly re-write an
InterfaceMethodRef in the constant pool to a MethodRef
Harvey Raja created MSHADE-228:
----------------------------------
Summary: Shade can incorrectly re-write an InterfaceMethodRef in the constant pool to a MethodRef
Key: MSHADE-228
URL: https://issues.apache.org/jira/browse/MSHADE-228
Project: Maven Shade Plugin
Issue Type: Bug
Affects Versions: 2.4.3
Reporter: Harvey Raja
Given an interface such as:
{code}
public interface InvalidMethodRefExample
{
String getLocation();
static InvalidMethodRefExample autoDetect()
{
return () -> "$Default$";
}
}
{code}
{{javac}} correctly produces a bootstrap method that has a {{MethodHandle}} for its second argument to {{LambdaMetafactory.metafactory}}, and the {{MethodHandle}} is to an {{InterfaceMethodref}}.
After running shade the {{InterfaceMethodref}} becomes a {{Methodref}}.
This seems to have been the result for some time now but with Java 9 it appears that the java team have decided to enforce this CP type and will be a real problem when using shade and Java 9.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)