From 2a0a97c5362320343ee347d187af0d1fb7a9cb9f Mon Sep 17 00:00:00 2001 From: sougandhs Date: Mon, 2 Sep 2024 15:39:30 +0530 Subject: [PATCH] Incorporated latest code review comments --- .../testprograms/FileConditionSnippet2.java | 5 +-- .../jdt/debug/tests/AbstractDebugTest.java | 8 ++-- .../jdt/debug/tests/AutomatedSuite.java | 2 + .../ConditionalBreakpointsWithFileClass.java | 37 +++++++++---------- org.eclipse.jdt.debug/META-INF/MANIFEST.MF | 2 +- .../eval/ast/engine/ASTEvaluationEngine.java | 3 +- 6 files changed, 25 insertions(+), 32 deletions(-) diff --git a/org.eclipse.jdt.debug.tests/testprograms/FileConditionSnippet2.java b/org.eclipse.jdt.debug.tests/testprograms/FileConditionSnippet2.java index 216291136a..5d4f722149 100644 --- a/org.eclipse.jdt.debug.tests/testprograms/FileConditionSnippet2.java +++ b/org.eclipse.jdt.debug.tests/testprograms/FileConditionSnippet2.java @@ -7,7 +7,4 @@ public static void main(String[] ecs) { File file = new File(parent,"test"); System.out.println("COMPLETED"); } - -} - -///////////////////////////////////////// +} \ No newline at end of file diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java index 7e5f9661e8..9e03b8b4f9 100644 --- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java +++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java @@ -184,7 +184,7 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation public static final String BOUND_JRE_PROJECT_NAME = "BoundJRE"; public static final String CLONE_SUFFIX = "Clone"; - final String[] LAUNCH_CONFIG_NAMES_1_4 = { "java.io.File", "FileConditionSnippet2", "LargeSourceFile", "LotsOfFields", + final String[] LAUNCH_CONFIG_NAMES_1_4 = { "java.io.File", "LargeSourceFile", "LotsOfFields", "Breakpoints", "InstanceVariablesTests", "LocalVariablesTests", "LocalVariableTests2", "StaticVariablesTests", @@ -204,7 +204,7 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation "StepResult2", "StepResult3", "StepUncaught", "TriggerPoint_01", "BulkThreadCreationTest", "MethodExitAndException", "Bug534319earlyStart", "Bug534319lateStart", "Bug534319singleThread", "Bug534319startBetwen", "MethodCall", "Bug538303", "Bug540243", "OutSync", "OutSync2", "ConsoleOutputUmlaut", "ErrorRecurrence", "ModelPresentationTests", "Bug565982", - "SuspendVMConditionalBreakpointsTestSnippet" }; + "SuspendVMConditionalBreakpointsTestSnippet", "FileConditionSnippet2" }; /** * the default timeout @@ -1539,14 +1539,13 @@ protected IJavaThread launchToLineBreakpoint(String mainTypeName, ILineBreakpoin */ protected IJavaThread launchToLineBreakpoint(ILaunchConfiguration config, ILineBreakpoint bp, boolean register) throws Exception { DebugEventWaiter waiter= new DebugElementKindEventDetailWaiter(DebugEvent.SUSPEND, IJavaThread.class, DebugEvent.BREAKPOINT); - waiter.setTimeout(30000); + waiter.setTimeout(DEFAULT_TIMEOUT); waiter.setEnableUIEventLoopProcessing(enableUIEventLoopProcessingInWaiter()); Object suspendee= launchAndWait(config, waiter, register); assertTrue("suspendee was not an IJavaThread", suspendee instanceof IJavaThread); //$NON-NLS-1$ IJavaThread thread = (IJavaThread) suspendee; IBreakpoint hit = getBreakpoint(thread); - assertNotNull("suspended, but not by breakpoint", hit); //$NON-NLS-1$ assertEquals("hit un-registered breakpoint", bp, hit); //$NON-NLS-1$ assertTrue("suspended, but not by line breakpoint", hit instanceof ILineBreakpoint); //$NON-NLS-1$ @@ -1554,7 +1553,6 @@ protected IJavaThread launchToLineBreakpoint(ILaunchConfiguration config, ILineB int lineNumber = breakpoint.getLineNumber(); int stackLine = thread.getTopStackFrame().getLineNumber(); assertEquals("line numbers of breakpoint and stack frame do not match", lineNumber, stackLine); //$NON-NLS-1$ - return thread; } diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AutomatedSuite.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AutomatedSuite.java index c9615813f3..81282945e0 100644 --- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AutomatedSuite.java +++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AutomatedSuite.java @@ -26,6 +26,7 @@ import org.eclipse.jdt.debug.tests.breakpoints.BreakpointWorkingSetTests; import org.eclipse.jdt.debug.tests.breakpoints.ConditionalBreakpointsInJava8Tests; import org.eclipse.jdt.debug.tests.breakpoints.ConditionalBreakpointsTests; +import org.eclipse.jdt.debug.tests.breakpoints.ConditionalBreakpointsWithFileClass; import org.eclipse.jdt.debug.tests.breakpoints.ConditionalBreakpointsWithGenerics; import org.eclipse.jdt.debug.tests.breakpoints.DeferredBreakpointTests; import org.eclipse.jdt.debug.tests.breakpoints.ExceptionBreakpointTests; @@ -392,6 +393,7 @@ public AutomatedSuite() { addTest(new TestSuite(TestToggleBreakpointsTarget.class)); addTest(new TestSuite(TriggerPointBreakpointsTests.class)); addTest(new TestSuite(JavaThreadEventHandlerTests.class)); + addTest(new TestSuite(ConditionalBreakpointsWithFileClass.class)); if (JavaProjectHelper.isJava8Compatible()) { addTest(new TestSuite(TestToggleBreakpointsTarget8.class)); diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ConditionalBreakpointsWithFileClass.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ConditionalBreakpointsWithFileClass.java index fbef39c4a6..13115e4f4c 100644 --- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ConditionalBreakpointsWithFileClass.java +++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ConditionalBreakpointsWithFileClass.java @@ -12,21 +12,22 @@ public ConditionalBreakpointsWithFileClass(String name) { public void testFileConditionalBreakpointForTrue() throws Exception { String typeName = "FileConditionSnippet2"; - IJavaLineBreakpoint bp = createLineBreakpoint(7, typeName); - createConditionalLineBreakpoint(374, "java.io.File", "child.equals(\"test\")", true); - + IJavaLineBreakpoint bp2 = createLineBreakpoint(7, typeName); + IJavaLineBreakpoint bp = createConditionalLineBreakpoint(374, "java.io.File", "child.equals(\"test\")", true); IJavaThread mainThread = null; try { - mainThread = launchToLineBreakpoint(typeName, bp); + mainThread = launchToBreakpoint(typeName); + mainThread.getTopStackFrame().stepInto(); + Thread.sleep(100); mainThread.resume(); Thread.sleep(100); int hitLine = 0; - if (mainThread.isSuspended()) { - hitLine = mainThread.getStackFrames()[0].getLineNumber(); - } - assertTrue("Should hit", (hitLine == 374) && (mainThread.isSuspended() == true)); - } finally { + assertTrue("Thread should be suspended", mainThread.isSuspended()); + hitLine = mainThread.getStackFrames()[0].getLineNumber(); + assertEquals("Should've hit", 374, hitLine); + bp2.delete(); bp.delete(); + } finally { terminateAndRemove(mainThread); removeAllBreakpoints(); } @@ -34,21 +35,17 @@ public void testFileConditionalBreakpointForTrue() throws Exception { public void testFileConditionalBreakpointForFalse() throws Exception { String typeName = "FileConditionSnippet2"; - IJavaLineBreakpoint bp = createLineBreakpoint(7, typeName); - createConditionalLineBreakpoint(374, "java.io.File", "child.equals(\"test2\")", true); - + IJavaLineBreakpoint bp = createLineBreakpoint(8, typeName); + IJavaLineBreakpoint bp2 = createConditionalLineBreakpoint(374, "java.io.File", "child.equals(\"test2\")", true); IJavaThread mainThread = null; try { - mainThread = launchToLineBreakpoint(typeName, bp); - mainThread.resume(); - Thread.sleep(100); + mainThread = launchToBreakpoint(typeName); int hitLine = 0; - if (mainThread.isSuspended()) { - hitLine = mainThread.getStackFrames()[0].getLineNumber(); - } - assertFalse("Should hit", (hitLine == 374) && (mainThread.isSuspended() == true)); - } finally { + hitLine = mainThread.getTopStackFrame().getLineNumber(); + assertEquals("Should've hit", 8, hitLine); + bp2.delete(); bp.delete(); + } finally { terminateAndRemove(mainThread); removeAllBreakpoints(); } diff --git a/org.eclipse.jdt.debug/META-INF/MANIFEST.MF b/org.eclipse.jdt.debug/META-INF/MANIFEST.MF index b6a0a4d69d..bba45960b3 100644 --- a/org.eclipse.jdt.debug/META-INF/MANIFEST.MF +++ b/org.eclipse.jdt.debug/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.jdt.debug; singleton:=true -Bundle-Version: 3.21.500.qualifier +Bundle-Version: 3.21.600.qualifier Bundle-ClassPath: jdimodel.jar Bundle-Activator: org.eclipse.jdt.internal.debug.core.JDIDebugPlugin Bundle-Vendor: %providerName diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java index fbf79245aa..87a872b594 100644 --- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java +++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2022 IBM Corporation and others. + * Copyright (c) 2000, 2024 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -690,7 +690,6 @@ private ICompiledExpression createExpressionFromAST(String snippet, || problemId == IProblem.UnexpectedStaticModifierForMethod || problemId == IProblem.AmbiguousType) { continue; } - if (problem.isError()) { if (codeSnippetStart <= errorOffset && errorOffset <= codeSnippetEnd) {