eclipse-jdt / eclipse.jdt.debug

Eclipse Public License 2.0
16 stars 46 forks source link

[Java 21] LambdaVariableTest - 2 tests failing with Java 21 #300

Closed SarikaSinha closed 1 year ago

SarikaSinha commented 1 year ago

https://download.eclipse.org/eclipse/downloads/drops4/Y20230827-1000/testresults/html/org.eclipse.jdt.debug.tests_ep429Y-unit-cen64-gtk3-java21_linux.gtk.x86_64_21.html

org.eclipse.jdt.debug.tests.eval.LambdaVariableTest testEvaluate_Bug575551_onIntermediateFrame_InsideLambda_OutFromMethodInvocationFrame Failure The evaluation of '" + snippet + "' should not have errors : names cannot be resolved to a variablejunit.framework.AssertionFailedError: The evaluation of '" + snippet + "' should not have errors : names cannot be resolved to a variableat junit.framework.Assert.fail(Assert.java:57)at junit.framework.Assert.assertTrue(Assert.java:22)at junit.framework.Assert.assertFalse(Assert.java:39)at junit.framework.TestCase.assertFalse(TestCase.java:208)at org.eclipse.jdt.debug.tests.AbstractDebugTest.doEval(AbstractDebugTest.java:2796)at org.eclipse.jdt.debug.tests.eval.LambdaVariableTest.testEvaluate_Bug575551_onIntermediateFrame_InsideLambda_OutFromMethodInvocationFrame(LambdaVariableTest.java:196)at java.base/java.lang.reflect.Method.invoke(Method.java:580)at junit.framework.TestCase.runTest(TestCase.java:177)at junit.framework.TestCase.runBare(TestCase.java:142)at org.eclipse.jdt.debug.tests.AbstractDebugTest.runBare(AbstractDebugTest.java:2678)at junit.framework.TestResult$1.protect(TestResult.java:122)at junit.framework.TestResult.runProtected(TestResult.java:142)at junit.framework.TestResult.run(TestResult.java:125)at junit.framework.TestCase.run(TestCase.java:130)at junit.framework.TestSuite.runTest(TestSuite.java:241)at junit.framework.TestSuite.run(TestSuite.java:236)at junit.framework.TestSuite.runTest(TestSuite.java:241)at org.eclipse.jdt.debug.tests.DebugSuite$1.run(DebugSuite.java:61)at java.base/java.lang.Thread.run(Thread.java:1583)
org.eclipse.jdt.debug.tests.eval.LambdaVariableTest testEvaluate_LambdaCapturedParameter Failure The evaluation of '" + snippet + "' should not have errors : key cannot be resolved to a variablejunit.framework.AssertionFailedError: The evaluation of '" + snippet + "' should not have errors : key cannot be resolved to a variableat junit.framework.Assert.fail(Assert.java:57)at junit.framework.Assert.assertTrue(Assert.java:22)at junit.framework.Assert.assertFalse(Assert.java:39)at junit.framework.TestCase.assertFalse(TestCase.java:208)at org.eclipse.jdt.debug.tests.AbstractDebugTest.doEval(AbstractDebugTest.java:2796)at org.eclipse.jdt.debug.tests.AbstractDebugTest.doEval(AbstractDebugTest.java:2756)at org.eclipse.jdt.debug.tests.eval.LambdaVariableTest.testEvaluate_LambdaCapturedParameter(LambdaVariableTest.java:38)at java.base/java.lang.reflect.Method.invoke(Method.java:580)at junit.framework.TestCase.runTest(TestCase.java:177)at junit.framework.TestCase.runBare(TestCase.java:142)at org.eclipse.jdt.debug.tests.AbstractDebugTest.runBare(AbstractDebugTest.java:2678)at junit.framework.TestResult$1.protect(TestResult.java:122)at junit.framework.TestResult.runProtected(TestResult.java:142)at junit.framework.TestResult.run(TestResult.java:125)at junit.framework.TestCase.run(TestCase.java:130)at junit.framework.TestSuite.runTest(TestSuite.java:241)at junit.framework.TestSuite.run(TestSuite.java:236)at junit.framework.TestSuite.runTest(TestSuite.java:241)at org.eclipse.jdt.debug.tests.DebugSuite$1.run(DebugSuite.java:61)at java.base/java.lang.Thread.run(Thread.java:1583)
SarikaSinha commented 1 year ago

@gayanper Can you please look into this? @mpalat

gayanper commented 1 year ago

The issue is at org.eclipse.jdt.internal.debug.core.model.LambdaUtils.isLambdaField(IVariable) where in Java 21 the Lambda class name has changed.

in Java21 it's Bug575551$$Lambda.0x000000e8010079d8 and Prior version its Bug575551$$Lambda$20.0x0000000801005be0