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)

Reply via email to