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)