Failed
org.eclipse.jdt.core.tests.compiler.regression.SerializableLambdaTest.testbug479119 - 1.8 (from org.eclipse.jdt.core.tests.compiler.regression.TestAll)
Error Message
testbug479119 - Eclipse/Javac standard output mismatch. ----------- Expected ------------ Looking for Testbed.foo\n Looking for Testbed.foo\n true ------------ but was ------------ --------- Difference is ---------- expected:<[Looking for Testbed.foo\n Looking for Testbed.foo\n true]> but was:<[]>
Stacktrace
junit.framework.ComparisonFailure: testbug479119 - Eclipse/Javac standard output mismatch. ----------- Expected ------------ Looking for Testbed.foo\n Looking for Testbed.foo\n true ------------ but was ------------ --------- Difference is ---------- expected:<[Looking for Testbed.foo\n Looking for Testbed.foo\n true]> but was:<[]> at org.eclipse.jdt.core.tests.junit.extension.TestCase.assertStringEquals(TestCase.java:260) at org.eclipse.jdt.core.tests.junit.extension.TestCase.assertEquals(TestCase.java:236) at org.eclipse.jdt.core.tests.compiler.regression.AbstractRegressionTest.runJavac(AbstractRegressionTest.java:2068) at org.eclipse.jdt.core.tests.compiler.regression.AbstractRegressionTest.runTest(AbstractRegressionTest.java:2814) at org.eclipse.jdt.core.tests.compiler.regression.AbstractRegressionTest.runTest(AbstractRegressionTest.java:2539) at org.eclipse.jdt.core.tests.compiler.regression.AbstractRegressionTest.runConformTest(AbstractRegressionTest.java:1491) at org.eclipse.jdt.core.tests.compiler.regression.SerializableLambdaTest.testbug479119(SerializableLambdaTest.java:1538)
Standard Output
org.eclipse.jdt.core.tests.compiler.regression.SerializableLambdaTest#testbug479119 - 1.8 Testbed.java [ import java.io.ObjectStreamClass; import java.io.Serializable; import java.lang.invoke.SerializedLambda; import java.lang.reflect.Method; import java.util.function.IntFunction; import java.util.stream.Stream; public class Testbed { public static void main(String[] args) { System.out.println(getMethod(Testbed::foo).equals(getMethod(Testbed::foo))); } private static void foo() { } static interface MethodRef extends Runnable, Serializable { } private static Method getMethod(MethodRef methodRef) { try { final Method invokeWriteReplaceMethod = ObjectStreamClass.class.getDeclaredMethod("invokeWriteReplace", Object.class); invokeWriteReplaceMethod.setAccessible(true); final SerializedLambda l = (SerializedLambda)invokeWriteReplaceMethod.invoke( ObjectStreamClass.lookupAny(methodRef.getClass()), methodRef ); System.out.println("Looking for " + l.getImplClass() + "." + l.getImplMethodName()); final Method[] methods = Stream.of(Class.forName(l.getImplClass()).getDeclaredMethods()). filter(m -> m.getName().equals(l.getImplMethodName())). toArray(Method[]::new); if(methods.length != 1) throw new AssertionError("TODO: check signature"); return methods[0]; } catch(Exception e) { throw new RuntimeException(e); } } } ] Full results sent to /tmp/comptest/run.1514610271420/1.8.0_131_20171230_000432.txt
Standard Error
----------------------------------------