I think that the mlvm repository is not uptodate, or was not up to 
date when stephen creates its build.

The code looks for MethodHandle.invoke but this method doesn't exist 
anymore because
it was renamed to invokeExact.

Rémi

Le 11/01/2011 06:06, Howard Lovatt a écrit :
> Using the latest version from the repository (854:89631f9e86b7) on
> build 1.7.0-internal-fastdebug-stephen_2010_12_23_20_53-b00. The
> following:
>
>      final ActionListener al4 = Main#print( ActionEvent );
>      b1.addActionListener( al4 );
>      b1.doClick();
>
>    private static void print( final ActionEvent notUsed ) {
>      out.println( "Main.print method called" );
>    }
>
> Gives:
>
> Exception in thread "main" java.lang.InternalError: JVM cannot find
> invoker for (ActionEvent)void
>       at sun.dyn.Invokers.exactInvoker(Invokers.java:74)
>       at sun.dyn.Invokers.genericInvoker(Invokers.java:82)
>       at java.dyn.MethodHandle.invokeWithArguments(MethodHandle.java:420)
>       at java.dyn.MethodHandle.invokeVarargs(MethodHandle.java:468)
>       at com.sun.runtime.ProxyHelper$1.invoke(ProxyHelper.java:61)
>       at $Proxy0.actionPerformed(Unknown Source)
>       at 
> javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2019)
>       at 
> javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2342)
>       at 
> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
>       at 
> javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
>       at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
>       at javax.swing.AbstractButton.doClick(AbstractButton.java:356)
>       at lambdas.Main.lambdas(Main.java:97)
>       at lambdas.Main.main(Main.java:23)
>
>
> ---------- Forwarded message ----------
> From: Howard Lovatt<howard.lov...@gmail.com>
> Date: 27 December 2010 17:14
> Subject: Two Problem with Method Reference
> To: lambda-dev<lambda-...@openjdk.java.net>
>
>
> Hi,
>
> I have found a coup[le of problems with the latest version of JDK 7 in
> the Mercurial repository. For:
>
> 95:    final ActionListener al4 = Main#print( ActionEvent );
> 96:    b1.addActionListener( al4 );
> 97:    b1.doClick();
>
> and:
>
>   private static void print( final ActionEvent notUsed ) {
>     out.println( "Main.print method called" );
>   }
>
> It compiles OK, but when run I get:
>
> Exception in thread "main" java.lang.InternalError: JVM cannot find
> invoker for (ActionEvent)void
>         at sun.dyn.Invokers.exactInvoker(Invokers.java:74)
>         at sun.dyn.Invokers.genericInvoker(Invokers.java:82)
>         at java.dyn.MethodHandle.invokeWithArguments(MethodHandle.java:420)
>         at java.dyn.MethodHandle.invokeVarargs(MethodHandle.java:468)
>         at com.sun.runtime.ProxyHelper$1.invoke(ProxyHelper.java:61)
>         at $Proxy0.actionPerformed(Unknown Source)
>         at 
> javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2019)
>         at 
> javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2342)
>         at 
> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
>         at 
> javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
>         at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
>         at javax.swing.AbstractButton.doClick(AbstractButton.java:356)
>         at lambdas.Main.lambdas(Main.java:97)
>         at lambdas.Main.main(Main.java:23)
>
> If I remove static from the method definition:
>
>   private void print( final ActionEvent notUsed ) {
>     out.println( "Main.print method called" );
>   }
>
> Then when run I get:
>
> Exception in thread "main" java.dyn.WrongMethodTypeException: cannot
> convert to (Object)Object: print(Main,ActionEvent)void
>         at java.dyn.MethodHandles.convertArguments(MethodHandles.java:1091)
>         at java.dyn.MethodHandle.asType(MethodHandle.java:507)
>         at java.dyn.MethodHandle.invokeWithArguments(MethodHandle.java:417)
>         at java.dyn.MethodHandle.invokeVarargs(MethodHandle.java:468)
>         at com.sun.runtime.ProxyHelper$1.invoke(ProxyHelper.java:61)
>         at $Proxy0.actionPerformed(Unknown Source)
>         at 
> javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2019)
>         at 
> javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2342)
>         at 
> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
>         at 
> javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
>         at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
>         at javax.swing.AbstractButton.doClick(AbstractButton.java:356)
>         at lambdas.Main.lambdas(Main.java:97)
>         at lambdas.Main.main(Main.java:23)
>
> Hope everyone is having a good holiday (I count playing with JDK 7 as
> relaxation!),
>
>    -- Howard.
>
>
>

_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to