Merge remote-tracking branch 'origin/master' into BETA_JAVA16
Change-Id: Ic1b2209b2dbefa34dd3dd9dc423b542817c67ba1
diff --git a/org.eclipse.jdt.debug.tests/java9/LogicalStructures.java b/org.eclipse.jdt.debug.tests/java9/LogicalStructures.java
index 1244ca8..cb3ad4b 100644
--- a/org.eclipse.jdt.debug.tests/java9/LogicalStructures.java
+++ b/org.eclipse.jdt.debug.tests/java9/LogicalStructures.java
@@ -44,7 +44,7 @@
System.gc();
garbage = Arrays.asList(new String("a"), new String("b"), new String("c"));
}
- }, 50, 20);
+ }, 200, 20);
}
}
diff --git a/org.eclipse.jdt.debug.tests/pom.xml b/org.eclipse.jdt.debug.tests/pom.xml
index 005e520..1449cd9 100644
--- a/org.eclipse.jdt.debug.tests/pom.xml
+++ b/org.eclipse.jdt.debug.tests/pom.xml
@@ -14,7 +14,7 @@
<parent>
<artifactId>eclipse.jdt.debug</artifactId>
<groupId>eclipse.jdt.debug</groupId>
- <version>4.18.0-SNAPSHOT</version>
+ <version>4.19.0-SNAPSHOT</version>
</parent>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.debug.tests</artifactId>
diff --git a/org.eclipse.jdt.debug.tests/testprograms/LogicalStructures.java b/org.eclipse.jdt.debug.tests/testprograms/LogicalStructures.java
index 1244ca8..cb3ad4b 100644
--- a/org.eclipse.jdt.debug.tests/testprograms/LogicalStructures.java
+++ b/org.eclipse.jdt.debug.tests/testprograms/LogicalStructures.java
@@ -44,7 +44,7 @@
System.gc();
garbage = Arrays.asList(new String("a"), new String("b"), new String("c"));
}
- }, 50, 20);
+ }, 200, 20);
}
}
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestLogicalStructures.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestLogicalStructures.java
index 1d0f49b..d125b71 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestLogicalStructures.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/TestLogicalStructures.java
@@ -66,7 +66,7 @@
assertEquals("Should be one logical structure type", 1, types.length);
IJavaObject logicalValue = (IJavaObject) types[0].getLogicalStructure(value);
- Thread.sleep(200); // run a few GC cycles
+ Thread.sleep(500); // run a few GC cycles
assertEquals("Logical value should be an array", "java.lang.Object[]", logicalValue.getJavaType().getName());
IJavaArray array = (IJavaArray) logicalValue;
@@ -105,7 +105,7 @@
assertEquals("Should be one logical structure type", 1, types.length);
IJavaObject logicalValue = (IJavaObject) types[0].getLogicalStructure(value);
- Thread.sleep(200); // run a few GC cycles
+ Thread.sleep(500); // run a few GC cycles
assertEquals("Logical value should be an array", "java.lang.Object[]", logicalValue.getJavaType().getName());
IJavaArray array = (IJavaArray) logicalValue;
@@ -144,7 +144,7 @@
assertEquals("Should be one logical structure type", 1, types.length);
IJavaObject logicalValue = (IJavaObject) types[0].getLogicalStructure(value);
- Thread.sleep(200); // run a few GC cycles
+ Thread.sleep(500); // run a few GC cycles
IVariable[] children = logicalValue.getVariables();
assertEquals("Should be two elements in the structure", 2, children.length);
assertEquals("First entry should be key", "key", children[0].getName());
diff --git a/org.eclipse.jdt.debug.ui/META-INF/MANIFEST.MF b/org.eclipse.jdt.debug.ui/META-INF/MANIFEST.MF
index 06abfe2..966e07c 100644
--- a/org.eclipse.jdt.debug.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.jdt.debug.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.jdt.debug.ui; singleton:=true
-Bundle-Version: 3.12.100.qualifier
+Bundle-Version: 3.12.200.qualifier
Bundle-Activator: org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/org.eclipse.jdt.debug.ui/forceQualifierUpdate.txt b/org.eclipse.jdt.debug.ui/forceQualifierUpdate.txt
index 5c8c969..d4af73e 100644
--- a/org.eclipse.jdt.debug.ui/forceQualifierUpdate.txt
+++ b/org.eclipse.jdt.debug.ui/forceQualifierUpdate.txt
@@ -2,4 +2,5 @@
Bug 522092 - Comparator errors from I20170909-0920
Bug 530709 - Comparator errors in jdt debug and jdt ui in I20180204-2000
Bug 566471 - I20200828-0150 - Comparator Errors Found
-Bug 567095 - Comparator errors in I20200917-1800
\ No newline at end of file
+Bug 567095 - Comparator errors in I20200917-1800
+Bug 569538 - Comparator error in I20201208-0300
\ No newline at end of file
diff --git a/org.eclipse.jdt.debug.ui/plugin.properties b/org.eclipse.jdt.debug.ui/plugin.properties
index db85c36..513fdd6 100644
--- a/org.eclipse.jdt.debug.ui/plugin.properties
+++ b/org.eclipse.jdt.debug.ui/plugin.properties
@@ -17,6 +17,7 @@
vmInstallPage=VM Install Page
vmCapabilitiesPageName=VM Capabilities
AddBreakpoint.label=Toggle &Breakpoint
+AddTracepoint.label=Toggle &Tracepoint
addTypeStepFilterAction.label=&Filter Type
addTypeStepFilterAction.tooltip=Filter the selected type(s)
diff --git a/org.eclipse.jdt.debug.ui/plugin.xml b/org.eclipse.jdt.debug.ui/plugin.xml
index 287975f..877e24c 100644
--- a/org.eclipse.jdt.debug.ui/plugin.xml
+++ b/org.eclipse.jdt.debug.ui/plugin.xml
@@ -152,8 +152,8 @@
<action
definitionId="org.eclipse.jdt.debug.ui.commands.ToggleTracepoint"
label="%ToggleTracepointAction.label"
- icon="$nl$/icons/full/obj16/brkp_obj.png"
- disabledIcon="$nl$/icons/full/obj16/brkpd_obj.png"
+ icon="platform:/plugin/org.eclipse.debug.ui/icons/full/obj16/read_obj.png"
+ disabledIcon="platform:/plugin/org.eclipse.debug.ui/icons/full/obj16/read_obj_disabled.png"
helpContextId="toggle_tracepoint_action_context"
class="org.eclipse.jdt.internal.debug.ui.actions.RetargetToggleTracepointAction"
menubarPath="org.eclipse.ui.run/lineBreakpointBeforeGroup"
@@ -972,6 +972,15 @@
menubarPath="debug">
</action>
<action
+ class="org.eclipse.jdt.internal.debug.ui.actions.RulerToggleTracepointActionDelegate"
+ helpContextId="manage_breakpoint_action_context"
+ icon="platform:/plugin/org.eclipse.debug.ui/icons/full/obj16/read_obj.png"
+ id="org.eclipse.jdt.debug.ui.actions.RulerToggleTracepointAction"
+ definitionId="org.eclipse.jdt.debug.ui.commands.ToggleTracepoint"
+ label="%AddTracepoint.label"
+ menubarPath="debug">
+ </action>
+ <action
label="%EnableBreakpoint.label"
helpContextId="enable_disable_breakpoint_action_context"
class="org.eclipse.debug.ui.actions.RulerEnableDisableBreakpointActionDelegate"
@@ -1007,6 +1016,15 @@
menubarPath="debug">
</action>
<action
+ class="org.eclipse.jdt.internal.debug.ui.actions.RulerToggleTracepointActionDelegate"
+ helpContextId="toggle_tracepoint_action_context"
+ icon="platform:/plugin/org.eclipse.debug.ui/icons/full/obj16/read_obj.png"
+ id="org.eclipse.jdt.debug.ui.actions.RulerToggleTracepointAction"
+ definitionId="org.eclipse.jdt.debug.ui.commands.ToggleTracepoint"
+ label="%AddTracepoint.label"
+ menubarPath="debug">
+ </action>
+ <action
label="%EnableBreakpoint.label"
helpContextId="enable_disable_breakpoint_action_context"
class="org.eclipse.debug.ui.actions.RulerEnableDisableBreakpointActionDelegate"
diff --git a/org.eclipse.jdt.debug.ui/pom.xml b/org.eclipse.jdt.debug.ui/pom.xml
index e7fbe5f..eb39150 100644
--- a/org.eclipse.jdt.debug.ui/pom.xml
+++ b/org.eclipse.jdt.debug.ui/pom.xml
@@ -14,11 +14,11 @@
<parent>
<artifactId>eclipse.jdt.debug</artifactId>
<groupId>eclipse.jdt.debug</groupId>
- <version>4.18.0-SNAPSHOT</version>
+ <version>4.19.0-SNAPSHOT</version>
</parent>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.debug.ui</artifactId>
- <version>3.12.100-SNAPSHOT</version>
+ <version>3.12.200-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
<properties>
<code.ignoredWarnings>-warn:+resource,-deprecation,unavoidableGenericProblems</code.ignoredWarnings>
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RulerToggleTracepointActionDelegate.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RulerToggleTracepointActionDelegate.java
new file mode 100644
index 0000000..6edd6a7
--- /dev/null
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RulerToggleTracepointActionDelegate.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2020, Andrey Loskutov <loskutov@gmx.de> and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Andrey Loskutov <loskutov@gmx.de> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jdt.internal.debug.ui.actions;
+
+import org.eclipse.core.commands.Command;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.NotEnabledException;
+import org.eclipse.core.commands.NotHandledException;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.debug.internal.ui.DebugUIPlugin;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.text.source.IVerticalRulerInfo;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.ui.IActionDelegate2;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.ui.commands.ICommandService;
+import org.eclipse.ui.handlers.IHandlerService;
+import org.eclipse.ui.texteditor.AbstractRulerActionDelegate;
+import org.eclipse.ui.texteditor.ITextEditor;
+
+public class RulerToggleTracepointActionDelegate extends AbstractRulerActionDelegate implements IActionDelegate2 {
+
+ private static final String TOGGLE_TRACEPOINT_COMMAND = "org.eclipse.jdt.debug.ui.commands.ToggleTracepoint"; //$NON-NLS-1$
+ private IEditorPart currentEditor;
+ private IAction dummyAction;
+
+ @Override
+ protected IAction createAction(ITextEditor editor, IVerticalRulerInfo rulerInfo) {
+ dummyAction = new Action() {
+ // empty implementation to make compiler happy
+ };
+ return dummyAction;
+ }
+
+ @Override
+ public void setActiveEditor(IAction callerAction, IEditorPart targetEditor) {
+ currentEditor = targetEditor;
+ }
+
+ @Override
+ public void init(IAction action) {
+ }
+
+ @Override
+ public void dispose() {
+ currentEditor = null;
+ dummyAction = null;
+ super.dispose();
+ }
+
+ @Override
+ public void runWithEvent(IAction action, Event event) {
+ if (currentEditor == null) {
+ return;
+ }
+ IWorkbenchPartSite partSite = currentEditor.getSite();
+ IHandlerService hservice = partSite.getService(IHandlerService.class);
+ ICommandService cservice = partSite.getService(ICommandService.class);
+ try {
+ Command command = cservice.getCommand(TOGGLE_TRACEPOINT_COMMAND);
+ ExecutionEvent exevent = hservice.createExecutionEvent(command, event);
+ command.executeWithChecks(exevent);
+ } catch (ExecutionException | NotDefinedException | NotEnabledException | NotHandledException e) {
+ DebugUIPlugin.log(e);
+ }
+ }
+
+}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java
index c4bfc07..1487edb 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java
@@ -59,6 +59,7 @@
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.core.Signature;
import org.eclipse.jdt.core.SourceRange;
+import org.eclipse.jdt.core.WorkingCopyOwner;
import org.eclipse.jdt.core.dom.ASTNode;
import org.eclipse.jdt.core.dom.ClassInstanceCreation;
import org.eclipse.jdt.core.dom.CompilationUnit;
@@ -86,7 +87,7 @@
import org.eclipse.jdt.internal.debug.ui.IJDIPreferencesConstants;
import org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin;
import org.eclipse.jdt.internal.ui.JavaPlugin;
-import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor;
+import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor;
import org.eclipse.jdt.internal.ui.text.template.contentassist.TemplateEngine;
import org.eclipse.jdt.internal.ui.text.template.contentassist.TemplateProposal;
import org.eclipse.jdt.ui.IWorkingCopyManager;
@@ -309,8 +310,8 @@
IResource resource = BreakpointUtils.getBreakpointResource(member);
String qualifiedName = getQualifiedName(type);
IJavaMethodBreakpoint methodBreakpoint = JDIDebugModel.createMethodBreakpoint(resource, qualifiedName, mname, signature, true, false, false, -1, start, end, 0, true, attributes);
- if (BreakpointToggleUtils.isToggleTracepoints() && finalSelection instanceof ITextSelection && part instanceof CompilationUnitEditor) {
- String pattern = getCodeTemplate((ITextSelection) finalSelection, (CompilationUnitEditor) part);
+ if (BreakpointToggleUtils.isToggleTracepoints() && finalSelection instanceof ITextSelection && part instanceof JavaEditor) {
+ String pattern = getCodeTemplate((ITextSelection) finalSelection, (JavaEditor) part);
if (pattern != null) {
pattern = pattern.trim();
pattern = pattern.replaceAll("\\\t", ""); //$NON-NLS-1$//$NON-NLS-2$
@@ -409,8 +410,8 @@
}
BreakpointUtils.addJavaBreakpointAttributes(attributes, type);
IJavaLineBreakpoint breakpoint = JDIDebugModel.createLineBreakpoint(resource, tname, lnumber, charstart, charend, 0, true, attributes);
- if (BreakpointToggleUtils.isToggleTracepoints() && selection instanceof ITextSelection && part instanceof CompilationUnitEditor) {
- String pattern = getCodeTemplate((ITextSelection) selection, (CompilationUnitEditor) part);
+ if (BreakpointToggleUtils.isToggleTracepoints() && selection instanceof ITextSelection && part instanceof JavaEditor) {
+ String pattern = getCodeTemplate((ITextSelection) selection, (JavaEditor) part);
if (pattern != null) {
pattern = pattern.trim();
pattern = pattern.replaceAll("\\\t", ""); //$NON-NLS-1$//$NON-NLS-2$
@@ -1585,7 +1586,7 @@
* @return the type root or <code>null</code> if one cannot be derived
* @since 3.8
*/
- private static String getCodeTemplate(ITextSelection textSelection, CompilationUnitEditor part) {
+ private static String getCodeTemplate(ITextSelection textSelection, JavaEditor part) {
ITextViewer viewer = part.getViewer();
if (viewer == null) {
return null;
@@ -1596,22 +1597,21 @@
return templateBuffer.get();
}
- private static void doGetCodeTemplate(ITextSelection textSelection, CompilationUnitEditor part, ITextViewer viewer, TemplateContextType contextType, AtomicReference<String> templateBuffer) {
+ private static void doGetCodeTemplate(ITextSelection textSelection, JavaEditor part, ITextViewer viewer, TemplateContextType contextType, AtomicReference<String> templateBuffer) {
ITextEditor editor = getTextEditor(part);
if (editor == null) {
return;
}
- TemplateEngine statementEngine = new TemplateEngine(contextType);
- statementEngine.reset();
- IJavaElement element = getJavaElement(editor.getEditorInput());
- ICompilationUnit cunit = null;
- IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
- IFile file = root.getFile(element.getPath());
- cunit = JavaCore.createCompilationUnitFrom(file);
IDocumentProvider documentProvider = editor.getDocumentProvider();
if (documentProvider == null) {
return;
}
+ ICompilationUnit cunit = getCompilationUnit(editor);
+ if (cunit == null) {
+ return;
+ }
+ TemplateEngine statementEngine = new TemplateEngine(contextType);
+ statementEngine.reset();
IDocument document = documentProvider.getDocument(editor.getEditorInput());
try {
IRegion line = document.getLineInformation(textSelection.getStartLine() + 1);
@@ -1636,4 +1636,22 @@
}
}
+ private static ICompilationUnit getCompilationUnit(ITextEditor editor) {
+ IJavaElement element = getJavaElement(editor.getEditorInput());
+ if (element == null) {
+ return null;
+ }
+ if (element instanceof IOrdinaryClassFile) {
+ try {
+ return ((IOrdinaryClassFile) element).getWorkingCopy(new WorkingCopyOwner() {}, null);
+ } catch (JavaModelException e) {
+ // ignore
+ return null;
+ }
+ }
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ IFile file = root.getFile(element.getPath());
+ return JavaCore.createCompilationUnitFrom(file);
+ }
+
}
diff --git a/org.eclipse.jdt.debug/pom.xml b/org.eclipse.jdt.debug/pom.xml
index bd907ba..e6b4d82 100644
--- a/org.eclipse.jdt.debug/pom.xml
+++ b/org.eclipse.jdt.debug/pom.xml
@@ -14,7 +14,7 @@
<parent>
<artifactId>eclipse.jdt.debug</artifactId>
<groupId>eclipse.jdt.debug</groupId>
- <version>4.18.0-SNAPSHOT</version>
+ <version>4.19.0-SNAPSHOT</version>
</parent>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.debug</artifactId>
diff --git a/org.eclipse.jdt.launching.macosx/pom.xml b/org.eclipse.jdt.launching.macosx/pom.xml
index 18e1244..cb49bbe 100644
--- a/org.eclipse.jdt.launching.macosx/pom.xml
+++ b/org.eclipse.jdt.launching.macosx/pom.xml
@@ -14,7 +14,7 @@
<parent>
<artifactId>eclipse.jdt.debug</artifactId>
<groupId>eclipse.jdt.debug</groupId>
- <version>4.18.0-SNAPSHOT</version>
+ <version>4.19.0-SNAPSHOT</version>
</parent>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.launching.macosx</artifactId>
diff --git a/org.eclipse.jdt.launching.ui.macosx/pom.xml b/org.eclipse.jdt.launching.ui.macosx/pom.xml
index 70ad729..9b4a485 100644
--- a/org.eclipse.jdt.launching.ui.macosx/pom.xml
+++ b/org.eclipse.jdt.launching.ui.macosx/pom.xml
@@ -14,7 +14,7 @@
<parent>
<artifactId>eclipse.jdt.debug</artifactId>
<groupId>eclipse.jdt.debug</groupId>
- <version>4.18.0-SNAPSHOT</version>
+ <version>4.19.0-SNAPSHOT</version>
</parent>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.launching.ui.macosx</artifactId>
diff --git a/org.eclipse.jdt.launching/META-INF/MANIFEST.MF b/org.eclipse.jdt.launching/META-INF/MANIFEST.MF
index 692d8fe..3873dc2 100644
--- a/org.eclipse.jdt.launching/META-INF/MANIFEST.MF
+++ b/org.eclipse.jdt.launching/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.jdt.launching; singleton:=true
-Bundle-Version: 3.19.0.qualifier
+Bundle-Version: 3.19.100.qualifier
Bundle-Activator: org.eclipse.jdt.internal.launching.LaunchingPlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/org.eclipse.jdt.launching/pom.xml b/org.eclipse.jdt.launching/pom.xml
index ed03b9f..e59122d 100644
--- a/org.eclipse.jdt.launching/pom.xml
+++ b/org.eclipse.jdt.launching/pom.xml
@@ -14,11 +14,11 @@
<parent>
<artifactId>eclipse.jdt.debug</artifactId>
<groupId>eclipse.jdt.debug</groupId>
- <version>4.18.0-SNAPSHOT</version>
+ <version>4.19.0-SNAPSHOT</version>
</parent>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.launching</artifactId>
- <version>3.19.0-SNAPSHOT</version>
+ <version>3.19.100-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
<build>
diff --git a/pom.xml b/pom.xml
index 6ef32d1..2a0aaa9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,7 +18,7 @@
<parent>
<groupId>org.eclipse</groupId>
<artifactId>eclipse-platform-parent</artifactId>
- <version>4.18.0-SNAPSHOT</version>
+ <version>4.19.0-SNAPSHOT</version>
<relativePath>../eclipse-platform-parent</relativePath>
</parent>