One problem still outstanding - Was: Two Problem with Method Reference
Howard Lovatt
howard.lovatt at gmail.com
Mon Jan 10 21:06:32 PST 2011
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.lovatt at gmail.com>
Date: 27 December 2010 17:14
Subject: Two Problem with Method Reference
To: lambda-dev <lambda-dev at 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.
--
-- Howard.
More information about the lambda-dev
mailing list