title: MethodHandle to a getter/setter from another class gives a NoSuchFieldError
body: <p>Suppose I have simple javabean <code>MyPerson</code> with a <code>name</code> getter and setter:</p>
  
  <pre><code>public class MyPerson {
  
      private String name;
  
      public String getName() {
          return name;
      }
      public void setName(String name) {
          this.name = name;
      }
  
  }
  </code></pre>
  
  <p>Now I am running this main code that simply gets and sets that <code>name</code> field:</p>
  
  <pre><code>    public static void main(String[] args) throws Throwable {
          MethodHandles.Lookup lookup = MethodHandles.lookup();
          MethodHandle getterMethodHandle = lookup.findGetter(MyPerson.class, "name", String.class);
          MethodHandle setterMethodHandle = lookup.findSetter(MyPerson.class, "name", String.class);
          MyPerson a = new MyPerson();
          a.setName("Batman");
          System.out.println("Name from getterMethodHandle: " + getterMethodHandle.invoke(a));
          setterMethodHandle.invoke(a, "Robin");
          System.out.println("Name after setterMethodHandle: " + a.getName());
      }
  </code></pre>
  
  <p>If I add that <code>main()</code> method on the class <code>MyPerson</code>, I get what I expect:</p>
  
  <pre><code>Name from getterMethodHandle: Batman
  Name after setterMethodHandle: Robin
  </code></pre>
  
  <p>If I add <strong>that same <code>main()</code> method on another class in another package</strong>, I get this weird error:</p>
  
  <pre><code>Exception in thread "main" java.lang.NoSuchFieldException: no such field: batman.other.MyMain.name/java.lang.String/getField
      at java.lang.invoke.MemberName.makeAccessException(MemberName.java:875)
      at java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:990)
      at java.lang.invoke.MethodHandles$Lookup.resolveOrFail(MethodHandles.java:1373)
      at java.lang.invoke.MethodHandles$Lookup.findGetter(MethodHandles.java:1022)
      at batman.other.MyMain.main(MyMain.java:28)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:497)
      at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
  Caused by: java.lang.NoSuchFieldError: name
      at java.lang.invoke.MethodHandleNatives.resolve(Native Method)
      at java.lang.invoke.MemberName$Factory.resolve(MemberName.java:962)
      at java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:987)
  </code></pre>
  
  <p>Why? <code>MyPerson</code>'s getter/setters are public, so there's no reason why <code>MyMain</code> shouldn't be to use them, even through MethodHandles.</p>
  
  <p>Using JDK 8 with source/target level java 8.</p>