Merge remote-tracking branch 'origin/master' into BETA_JAVA16
Change-Id: Ic42cbd3cb4ca7a222114d04dce31564cbe7ac2e1
diff --git a/org.eclipse.jdt.debug.ui/plugin.xml b/org.eclipse.jdt.debug.ui/plugin.xml
index 877e24c..86091ad 100644
--- a/org.eclipse.jdt.debug.ui/plugin.xml
+++ b/org.eclipse.jdt.debug.ui/plugin.xml
@@ -1258,10 +1258,7 @@
id="org.eclipse.jdt.debug.ui.MethodBreakpointActions">
<visibility>
<and>
- <not>
- <objectState name="MemberActionFilter" value="isAbstract"/>
- </not>
- <not>
+ <not>
<objectState name="MemberActionFilter" value="isInterface"/>
</not>
<not>
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugOptionsManager.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugOptionsManager.java
index d1fe3b7..75e5e4d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugOptionsManager.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugOptionsManager.java
@@ -485,14 +485,7 @@
if (list == null) {
return ""; //$NON-NLS-1$
}
- StringBuilder buffer = new StringBuilder();
- for (int i = 0; i < list.length; i++) {
- if (i > 0) {
- buffer.append(',');
- }
- buffer.append(list[i]);
- }
- return buffer.toString();
+ return String.join(String.valueOf(','), list);
}
/**
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/MemberActionFilter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/MemberActionFilter.java
index 7bfd30c..8e63317 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/MemberActionFilter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/MemberActionFilter.java
@@ -41,12 +41,6 @@
if (name.equals("MemberActionFilter")) { //$NON-NLS-1$
if (target instanceof IMember) {
IMember member = (IMember) target;
- if (value.equals("isAbstract")) { //$NON-NLS-1$
- try {
- return Flags.isAbstract(member.getFlags());
- } catch (JavaModelException e) {
- }
- }
if (value.equals("isRemote")) { //$NON-NLS-1$
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
if(window != null) {
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
index 6edd6a7..fbc6c44 100644
--- 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
@@ -13,28 +13,25 @@
*******************************************************************************/
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.core.runtime.CoreException;
import org.eclipse.debug.internal.ui.DebugUIPlugin;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.jface.text.TextSelection;
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.IDocumentProvider;
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;
@@ -64,19 +61,47 @@
@Override
public void runWithEvent(IAction action, Event event) {
- if (currentEditor == null) {
+ if (!(currentEditor instanceof ITextEditor)) {
return;
}
- IWorkbenchPartSite partSite = currentEditor.getSite();
- IHandlerService hservice = partSite.getService(IHandlerService.class);
- ICommandService cservice = partSite.getService(ICommandService.class);
+ IVerticalRulerInfo rulerInfo = currentEditor.getAdapter(IVerticalRulerInfo.class);
+ if (rulerInfo == null) {
+ return;
+ }
+ int lineOfLastMouseButtonActivity = rulerInfo.getLineOfLastMouseButtonActivity();
+ if (lineOfLastMouseButtonActivity < 0) {
+ return;
+ }
+ IDocument document = getDocument((ITextEditor) currentEditor);
+ if (document == null) {
+ return;
+ }
+ ToggleBreakpointAdapter toggle = new ToggleBreakpointAdapter();
try {
- Command command = cservice.getCommand(TOGGLE_TRACEPOINT_COMMAND);
- ExecutionEvent exevent = hservice.createExecutionEvent(command, event);
- command.executeWithChecks(exevent);
- } catch (ExecutionException | NotDefinedException | NotEnabledException | NotHandledException e) {
+ ITextSelection selection = getTextSelection(document, lineOfLastMouseButtonActivity);
+ if (toggle.canToggleLineBreakpoints(currentEditor, selection)) {
+ BreakpointToggleUtils.setUnsetTracepoints(true);
+ toggle.toggleBreakpoints(currentEditor, selection);
+ }
+ } catch (BadLocationException | CoreException e) {
DebugUIPlugin.log(e);
}
}
+ private static IDocument getDocument(ITextEditor editor) {
+ IDocumentProvider provider = editor.getDocumentProvider();
+ if (provider != null) {
+ return provider.getDocument(editor.getEditorInput());
+ }
+ IDocument doc = editor.getAdapter(IDocument.class);
+ if (doc != null) {
+ return doc;
+ }
+ return null;
+ }
+
+ private static ITextSelection getTextSelection(IDocument document, int line) throws BadLocationException {
+ IRegion region = document.getLineInformation(line);
+ return new TextSelection(document, region.getOffset(), 0);
+ }
}
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 1487edb..6802a03 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
@@ -1615,10 +1615,8 @@
IDocument document = documentProvider.getDocument(editor.getEditorInput());
try {
IRegion line = document.getLineInformation(textSelection.getStartLine() + 1);
- Point selectedRange = viewer.getSelectedRange();
- viewer.setSelectedRange(selectedRange.x, 0);
+ Point selectedRange = new Point(textSelection.getOffset(), textSelection.getLength());
statementEngine.complete(viewer, selectedRange, line.getOffset(), cunit);
- viewer.setSelectedRange(selectedRange.x, selectedRange.y);
TemplateProposal[] templateProposals = statementEngine.getResults();
for (TemplateProposal templateProposal : templateProposals) {
Template template = templateProposal.getTemplate();
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMDetailsDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMDetailsDialog.java
index cbde802..3b5d3d8 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMDetailsDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMDetailsDialog.java
@@ -86,14 +86,7 @@
} else {
String[] args = fVM.getVMArguments();
if (args != null) {
- StringBuilder buf = new StringBuilder();
- for (int i = 0; i < args.length; i++) {
- buf.append(args[i]);
- if (i < (args.length - 1)) {
- buf.append(" "); //$NON-NLS-1$
- }
- }
- text = buf.toString();
+ text = String.join(" ", args); //$NON-NLS-1$
}
}
if (text == null) {
diff --git a/org.eclipse.jdt.debug/META-INF/MANIFEST.MF b/org.eclipse.jdt.debug/META-INF/MANIFEST.MF
index f4eb3af..f91b54d 100644
--- a/org.eclipse.jdt.debug/META-INF/MANIFEST.MF
+++ b/org.eclipse.jdt.debug/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.jdt.debug; singleton:=true
-Bundle-Version: 3.17.0.qualifier
+Bundle-Version: 3.17.100.qualifier
Bundle-ClassPath: jdimodel.jar,
tools.jar
Bundle-Activator: org.eclipse.jdt.internal.debug.core.JDIDebugPlugin
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/RemoteEvaluatorBuilder.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/RemoteEvaluatorBuilder.java
index e6a77df..9c81676 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/RemoteEvaluatorBuilder.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/RemoteEvaluatorBuilder.java
@@ -157,14 +157,7 @@
}
private static String makeClassName(String[] names) {
- StringBuilder sb = new StringBuilder();
- for (int j = 0; j < names.length; j++) {
- if (j > 0) {
- sb.append('/');
- }
- sb.append(names[j]);
- }
- return sb.toString();
+ return String.join(String.valueOf('/'), names);
}
public List<String> getVariableTypeNames() {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpCommandPacket.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpCommandPacket.java
index 68e99ae..4d4194a 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpCommandPacket.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpCommandPacket.java
@@ -234,7 +234,7 @@
@Override
protected int readSpecificHeaderFields(byte[] bytes, int index) {
byte commandSet = bytes[index];
- fCommand = bytes[index + 1] + (commandSet << 8);
+ fCommand = (bytes[index + 1] & 0xff) + (commandSet << 8);
return 2;
}
@@ -264,8 +264,9 @@
for (Field field : fields) {
if ((field.getModifiers() & Modifier.PUBLIC) == 0
|| (field.getModifiers() & Modifier.STATIC) == 0
- || (field.getModifiers() & Modifier.FINAL) == 0)
+ || (field.getModifiers() & Modifier.FINAL) == 0) {
continue;
+ }
try {
String name = field.getName();
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/JdwpCommandPacket.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/JdwpCommandPacket.java
index 7abda70..f6bad5a 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/JdwpCommandPacket.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/JdwpCommandPacket.java
@@ -227,7 +227,7 @@
protected void readSpecificHeaderFields(DataInputStream dataInStream)
throws IOException {
byte commandSet = dataInStream.readByte();
- fCommand = dataInStream.readByte() + (commandSet << 8);
+ fCommand = (dataInStream.readByte() & 0xff) + (commandSet << 8);
}
/**
@@ -255,8 +255,9 @@
for (Field field : fields) {
if ((field.getModifiers() & Modifier.PUBLIC) == 0
|| (field.getModifiers() & Modifier.STATIC) == 0
- || (field.getModifiers() & Modifier.FINAL) == 0)
+ || (field.getModifiers() & Modifier.FINAL) == 0) {
continue;
+ }
try {
String name = field.getName();
diff --git a/org.eclipse.jdt.debug/pom.xml b/org.eclipse.jdt.debug/pom.xml
index e6b4d82..14f9e6a 100644
--- a/org.eclipse.jdt.debug/pom.xml
+++ b/org.eclipse.jdt.debug/pom.xml
@@ -18,6 +18,6 @@
</parent>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.debug</artifactId>
- <version>3.17.0-SNAPSHOT</version>
+ <version>3.17.100-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMRunner.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMRunner.java
index fea720b..0f89647 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMRunner.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMRunner.java
@@ -535,14 +535,7 @@
if (cmdDetails.getEnvp() != null) {
String[] envp = cmdDetails.getEnvp();
Arrays.sort(envp);
- StringBuilder buff = new StringBuilder();
- for (int i = 0; i < envp.length; i++) {
- buff.append(envp[i]);
- if(i < envp.length-1) {
- buff.append('\n');
- }
- }
- process.setAttribute(DebugPlugin.ATTR_ENVIRONMENT, buff.toString());
+ process.setAttribute(DebugPlugin.ATTR_ENVIRONMENT, String.join(String.valueOf('\n'), envp));
}
if (!cmdDetails.getClasspathShortener().getProcessTempFiles().isEmpty()
|| !cmdDetails.getCommandLineShortener().getProcessTempFiles().isEmpty()) {
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
index a9d632d..904806f 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
@@ -3127,14 +3127,7 @@
* @since 3.1
*/
public static IClasspathAttribute newLibraryPathsAttribute(String[] paths) {
- StringBuilder value = new StringBuilder();
- for (int i = 0; i < paths.length; i++) {
- value.append(paths[i]);
- if (i < (paths.length - 1)) {
- value.append("|"); //$NON-NLS-1$
- }
- }
- return JavaCore.newClasspathAttribute(CLASSPATH_ATTR_LIBRARY_PATH_ENTRY, value.toString());
+ return JavaCore.newClasspathAttribute(CLASSPATH_ATTR_LIBRARY_PATH_ENTRY, String.join("|", paths)); //$NON-NLS-1$
}
/**