diff -Nru eclipse-platform-debug-4.15/debian/changelog eclipse-platform-debug-4.16/debian/changelog --- eclipse-platform-debug-4.15/debian/changelog 2020-05-07 21:29:16.000000000 +0000 +++ eclipse-platform-debug-4.16/debian/changelog 2020-08-23 22:16:02.000000000 +0000 @@ -1,3 +1,9 @@ +eclipse-platform-debug (4.16-1) unstable; urgency=medium + + * New upstream release + + -- Emmanuel Bourg Mon, 24 Aug 2020 00:16:02 +0200 + eclipse-platform-debug (4.15-1) unstable; urgency=medium * New upstream release diff -Nru eclipse-platform-debug-4.15/org.eclipse.core.externaltools/META-INF/MANIFEST.MF eclipse-platform-debug-4.16/org.eclipse.core.externaltools/META-INF/MANIFEST.MF --- eclipse-platform-debug-4.15/org.eclipse.core.externaltools/META-INF/MANIFEST.MF 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.core.externaltools/META-INF/MANIFEST.MF 2020-05-20 08:42:13.000000000 +0000 @@ -3,7 +3,7 @@ Bundle-Name: %pluginName Bundle-Localization: plugin Bundle-SymbolicName: org.eclipse.core.externaltools;singleton:=true -Bundle-Version: 1.1.600.qualifier +Bundle-Version: 1.1.700.qualifier Bundle-Activator: org.eclipse.core.externaltools.internal.ExternalToolsCore Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", org.eclipse.debug.core;bundle-version="[3.9.0,4.0.0)", diff -Nru eclipse-platform-debug-4.15/org.eclipse.core.externaltools/pom.xml eclipse-platform-debug-4.16/org.eclipse.core.externaltools/pom.xml --- eclipse-platform-debug-4.15/org.eclipse.core.externaltools/pom.xml 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.core.externaltools/pom.xml 2020-05-20 08:42:13.000000000 +0000 @@ -14,10 +14,10 @@ eclipse.platform.debug eclipse.platform.debug - 4.15.0-SNAPSHOT + 4.16.0-SNAPSHOT org.eclipse.core org.eclipse.core.externaltools - 1.1.600-SNAPSHOT + 1.1.700-SNAPSHOT eclipse-plugin diff -Nru eclipse-platform-debug-4.15/org.eclipse.core.externaltools/src/org/eclipse/core/externaltools/internal/launchConfigurations/ProgramLaunchDelegate.java eclipse-platform-debug-4.16/org.eclipse.core.externaltools/src/org/eclipse/core/externaltools/internal/launchConfigurations/ProgramLaunchDelegate.java --- eclipse-platform-debug-4.15/org.eclipse.core.externaltools/src/org/eclipse/core/externaltools/internal/launchConfigurations/ProgramLaunchDelegate.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.core.externaltools/src/org/eclipse/core/externaltools/internal/launchConfigurations/ProgramLaunchDelegate.java 2020-05-20 08:42:13.000000000 +0000 @@ -180,7 +180,9 @@ } StringBuilder buf = new StringBuilder(); for (String c : commandLine) { - buf.append(' '); + if (buf.length() > 0) { + buf.append(' '); + } StringBuilder command = new StringBuilder(); boolean containsSpace = false; for (char character : c.toCharArray()) { diff -Nru eclipse-platform-debug-4.15/org.eclipse.core.variables/pom.xml eclipse-platform-debug-4.16/org.eclipse.core.variables/pom.xml --- eclipse-platform-debug-4.15/org.eclipse.core.variables/pom.xml 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.core.variables/pom.xml 2020-05-20 08:42:13.000000000 +0000 @@ -14,7 +14,7 @@ eclipse.platform.debug eclipse.platform.debug - 4.15.0-SNAPSHOT + 4.16.0-SNAPSHOT org.eclipse.core org.eclipse.core.variables diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/core/commands/AbstractDebugCommand.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/core/commands/AbstractDebugCommand.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/core/commands/AbstractDebugCommand.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/core/commands/AbstractDebugCommand.java 2020-05-20 08:42:13.000000000 +0000 @@ -162,6 +162,11 @@ public void sleeping(IJobChangeEvent event) { } + @Override + public String toString() { + return getName() + " on " + request; //$NON-NLS-1$ + } + } /** diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java 2020-05-20 08:42:13.000000000 +0000 @@ -20,6 +20,7 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -81,8 +82,6 @@ import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; -import com.ibm.icu.text.MessageFormat; - /** * There is one instance of the debug plug-in available from * DebugPlugin.getDefault(). The debug plug-in provides: diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java 2020-05-20 08:42:13.000000000 +0000 @@ -23,7 +23,6 @@ import org.eclipse.core.resources.IWorkspaceRunnable; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.PlatformObject; import org.eclipse.core.runtime.Status; @@ -209,12 +208,7 @@ */ protected void setAttribute(final String attributeName, final boolean value) throws CoreException { IWorkspace workspace= ResourcesPlugin.getWorkspace(); - IWorkspaceRunnable runnable= new IWorkspaceRunnable() { - @Override - public void run(IProgressMonitor monitor) throws CoreException { - ensureMarker().setAttribute(attributeName, value); - } - }; + IWorkspaceRunnable runnable= monitor -> ensureMarker().setAttribute(attributeName, value); workspace.run(runnable, getMarkerRule(), IWorkspace.AVOID_UPDATE, null); } @@ -232,12 +226,7 @@ */ protected void setAttribute(final String attributeName, final int value) throws CoreException { IWorkspace workspace= ResourcesPlugin.getWorkspace(); - IWorkspaceRunnable runnable= new IWorkspaceRunnable() { - @Override - public void run(IProgressMonitor monitor) throws CoreException { - ensureMarker().setAttribute(attributeName, value); - } - }; + IWorkspaceRunnable runnable= monitor -> ensureMarker().setAttribute(attributeName, value); workspace.run(runnable, getMarkerRule(), IWorkspace.AVOID_UPDATE, null); } @@ -255,12 +244,7 @@ */ protected void setAttribute(final String attributeName, final Object value) throws CoreException { IWorkspace workspace= ResourcesPlugin.getWorkspace(); - IWorkspaceRunnable runnable= new IWorkspaceRunnable() { - @Override - public void run(IProgressMonitor monitor) throws CoreException { - ensureMarker().setAttribute(attributeName, value); - } - }; + IWorkspaceRunnable runnable= monitor -> ensureMarker().setAttribute(attributeName, value); workspace.run(runnable, getMarkerRule(), IWorkspace.AVOID_UPDATE, null); } @@ -278,12 +262,7 @@ */ protected void setAttributes(final String[] attributeNames, final Object[] values) throws CoreException { IWorkspace workspace= ResourcesPlugin.getWorkspace(); - IWorkspaceRunnable runnable= new IWorkspaceRunnable() { - @Override - public void run(IProgressMonitor monitor) throws CoreException { - ensureMarker().setAttributes(attributeNames, values); - } - }; + IWorkspaceRunnable runnable= monitor -> ensureMarker().setAttributes(attributeNames, values); workspace.run(runnable, getMarkerRule(), IWorkspace.AVOID_UPDATE, null); } @@ -300,12 +279,7 @@ */ protected void setAttributes(final Map attributes) throws CoreException { IWorkspace workspace= ResourcesPlugin.getWorkspace(); - IWorkspaceRunnable runnable= new IWorkspaceRunnable() { - @Override - public void run(IProgressMonitor monitor) throws CoreException { - ensureMarker().setAttributes(attributes); - } - }; + IWorkspaceRunnable runnable= monitor -> ensureMarker().setAttributes(attributes); workspace.run(runnable, getMarkerRule(), IWorkspace.AVOID_UPDATE, null); } diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java 2020-05-20 08:42:13.000000000 +0000 @@ -14,8 +14,6 @@ package org.eclipse.debug.core.model; -import org.eclipse.debug.core.model.IStackFrame; - /** * A source locator locates source elements for stack frames. A launch (optionally) * specifies a source locator which is diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/core/model/LaunchConfigurationDelegate.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/core/model/LaunchConfigurationDelegate.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/core/model/LaunchConfigurationDelegate.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/core/model/LaunchConfigurationDelegate.java 2020-05-20 08:42:13.000000000 +0000 @@ -14,6 +14,7 @@ *******************************************************************************/ package org.eclipse.debug.core.model; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; @@ -44,8 +45,6 @@ import org.eclipse.debug.internal.core.DebugCoreMessages; import org.eclipse.debug.internal.core.IInternalDebugCoreConstants; -import com.ibm.icu.text.MessageFormat; - /** * Default implementation of a launch configuration delegate. Provides * convenience methods for computing the build order of projects, @@ -397,20 +396,17 @@ * @throws CoreException if an exception occurs while building */ protected void buildProjects(final IProject[] projects, IProgressMonitor monitor) throws CoreException { - IWorkspaceRunnable build = new IWorkspaceRunnable(){ - @Override - public void run(IProgressMonitor pm) throws CoreException { - SubMonitor localmonitor = SubMonitor.convert(pm, DebugCoreMessages.LaunchConfigurationDelegate_scoped_incremental_build, projects.length); - try { - for (IProject project : projects) { - if (localmonitor.isCanceled()) { - throw new OperationCanceledException(); - } - project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, localmonitor.newChild(1)); + IWorkspaceRunnable build = pm -> { + SubMonitor localmonitor = SubMonitor.convert(pm, DebugCoreMessages.LaunchConfigurationDelegate_scoped_incremental_build, projects.length); + try { + for (IProject project : projects) { + if (localmonitor.isCanceled()) { + throw new OperationCanceledException(); } - } finally { - localmonitor.done(); + project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, localmonitor.newChild(1)); } + } finally { + localmonitor.done(); } }; ResourcesPlugin.getWorkspace().run(build, monitor); diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/core/RefreshUtil.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/core/RefreshUtil.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/core/RefreshUtil.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/core/RefreshUtil.java 2020-05-20 08:42:13.000000000 +0000 @@ -16,6 +16,7 @@ import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.List; @@ -36,8 +37,6 @@ import org.eclipse.debug.internal.core.ResourceFactory; import org.eclipse.debug.internal.core.XMLMemento; -import com.ibm.icu.text.MessageFormat; - /** * Utilities for launch configurations that persist, restore, and refresh * collections of resources. diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupDirector.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupDirector.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupDirector.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupDirector.java 2020-05-20 08:42:13.000000000 +0000 @@ -14,6 +14,7 @@ *******************************************************************************/ package org.eclipse.debug.core.sourcelookup; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -41,8 +42,6 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import com.ibm.icu.text.MessageFormat; - /** * Directs source lookup among a collection of source lookup participants, * and a common collection of source containers. diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ExternalArchiveSourceContainer.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ExternalArchiveSourceContainer.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ExternalArchiveSourceContainer.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ExternalArchiveSourceContainer.java 2020-05-20 08:42:13.000000000 +0000 @@ -15,6 +15,7 @@ import java.io.File; import java.io.IOException; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.Enumeration; import java.util.HashSet; @@ -32,8 +33,6 @@ import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages; import org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils; -import com.ibm.icu.text.MessageFormat; - /** * An archive in the local file system. Returns instances * of ZipEntryStorage as source elements. @@ -78,6 +77,8 @@ fDetectRoots = detectRootPaths; } + // Suppress resource leak warning. The ZipFile is provided from + // SourceLookupUtils which take care to close them at some point. @SuppressWarnings("resource") @Override public Object[] findSourceElements(String name) throws CoreException { diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java 2020-05-20 08:42:13.000000000 +0000 @@ -14,6 +14,7 @@ package org.eclipse.debug.internal.core; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -55,8 +56,6 @@ import org.eclipse.debug.core.model.IBreakpointImportParticipant; import org.eclipse.debug.core.model.ITriggerPoint; -import com.ibm.icu.text.MessageFormat; - /** * The breakpoint manager manages all registered breakpoints for the Debug plug-in. It is * instantiated by the Debug plug-in at startup. @@ -331,12 +330,9 @@ // delete any markers that are not to be restored if (!delete.isEmpty()) { final IMarker[] delMarkers = delete.toArray(new IMarker[delete.size()]); - IWorkspaceRunnable wr = new IWorkspaceRunnable() { - @Override - public void run(IProgressMonitor pm) throws CoreException { - for (IMarker marker : delMarkers) { - marker.delete(); - } + IWorkspaceRunnable wr = pm -> { + for (IMarker marker : delMarkers) { + marker.delete(); } }; new BreakpointManagerJob(wr).schedule(); @@ -510,23 +506,20 @@ } fireUpdate(remove, null, REMOVED); refreshTriggerpointDisplay(); - IWorkspaceRunnable r = new IWorkspaceRunnable() { - @Override - public void run(IProgressMonitor montitor) throws CoreException { - for (IBreakpoint breakpoint : remove) { - if (delete) { - breakpoint.delete(); - } else { - // if the breakpoint is being removed from the manager - // because the project is closing, the breakpoint should - // remain as registered, otherwise, the breakpoint should - // be marked as unregistered - IMarker marker = breakpoint.getMarker(); - if (marker.exists()) { - IProject project = breakpoint.getMarker().getResource().getProject(); - if (project == null || project.isOpen()) { - breakpoint.setRegistered(false); - } + IWorkspaceRunnable r = monitor -> { + for (IBreakpoint breakpoint : remove) { + if (delete) { + breakpoint.delete(); + } else { + // if the breakpoint is being removed from the manager + // because the project is closing, the breakpoint should + // remain as registered, otherwise, the breakpoint should + // be marked as unregistered + IMarker marker = breakpoint.getMarker(); + if (marker.exists()) { + IProject project = breakpoint.getMarker().getResource().getProject(); + if (project == null || project.isOpen()) { + breakpoint.setRegistered(false); } } } @@ -619,15 +612,12 @@ fireUpdate(added, null, ADDED); } if (!update.isEmpty()) { - IWorkspaceRunnable r = new IWorkspaceRunnable() { - @Override - public void run(IProgressMonitor monitor) throws CoreException { - List bps = getBreakpoints0(); - for (IBreakpoint breakpoint : update) { - bps.add(breakpoint); - breakpoint.setRegistered(true); - fMarkersToBreakpoints.put(breakpoint.getMarker(), breakpoint); - } + IWorkspaceRunnable r = monitor -> { + List bps = getBreakpoints0(); + for (IBreakpoint breakpoint : update) { + bps.add(breakpoint); + breakpoint.setRegistered(true); + fMarkersToBreakpoints.put(breakpoint.getMarker(), breakpoint); } }; // Need to suppress change notification, since this is really @@ -747,12 +737,9 @@ public void update() { if (!fMoved.isEmpty()) { // delete moved markers - IWorkspaceRunnable wRunnable= new IWorkspaceRunnable() { - @Override - public void run(IProgressMonitor monitor) throws CoreException { - for (IMarker marker : fMoved) { - marker.delete(); - } + IWorkspaceRunnable wRunnable= monitor -> { + for (IMarker marker : fMoved) { + marker.delete(); } }; try { @@ -769,13 +756,10 @@ } if (!fAdded.isEmpty()) { try { - IWorkspaceRunnable runnable= new IWorkspaceRunnable() { - @Override - public void run(IProgressMonitor monitor) throws CoreException { - for (IBreakpoint breakpoint : fAdded) { - breakpoint.getMarker().setAttribute(DebugPlugin.ATTR_BREAKPOINT_IS_DELETED, false); - breakpoint.setRegistered(true); - } + IWorkspaceRunnable runnable= monitor -> { + for (IBreakpoint breakpoint : fAdded) { + breakpoint.getMarker().setAttribute(DebugPlugin.ATTR_BREAKPOINT_IS_DELETED, false); + breakpoint.setRegistered(true); } }; getWorkspace().run(runnable, null, 0, null); @@ -1396,19 +1380,16 @@ * Touch and refresh display of all breakpoints */ private void touchAllBreakpoints() { - IWorkspaceRunnable runnable = new IWorkspaceRunnable() { - @Override - public void run(IProgressMonitor monitor) throws CoreException { - for (IBreakpoint breakpoint : getBreakpoints()) { - // Touch the marker (but don't actually change anything) so - // that the icon in - // the editor ruler will be updated (editors listen to - // marker changes). - try { - breakpoint.getMarker().setAttribute(IBreakpoint.ENABLED, breakpoint.isEnabled()); - } catch (CoreException e) { - // don't care if marker was already deleted - } + IWorkspaceRunnable runnable = monitor -> { + for (IBreakpoint breakpoint : getBreakpoints()) { + // Touch the marker (but don't actually change anything) so + // that the icon in + // the editor ruler will be updated (editors listen to + // marker changes). + try { + breakpoint.getMarker().setAttribute(IBreakpoint.ENABLED, breakpoint.isEnabled()); + } catch (CoreException e) { + // don't care if marker was already deleted } } }; diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/commands/DebugCommandRequest.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/commands/DebugCommandRequest.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/commands/DebugCommandRequest.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/commands/DebugCommandRequest.java 2020-05-20 08:42:13.000000000 +0000 @@ -13,6 +13,8 @@ *******************************************************************************/ package org.eclipse.debug.internal.core.commands; +import java.util.Arrays; + import org.eclipse.debug.core.commands.IDebugCommandRequest; /** @@ -31,5 +33,9 @@ return fElements; } + @Override + public String toString() { + return getClass().getSimpleName() + " on " + Arrays.toString(fElements); //$NON-NLS-1$ + } } diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ExpressionManager.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ExpressionManager.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ExpressionManager.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ExpressionManager.java 2020-05-20 08:42:13.000000000 +0000 @@ -14,6 +14,7 @@ package org.eclipse.debug.internal.core; import java.io.IOException; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -45,8 +46,6 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import com.ibm.icu.text.MessageFormat; - /** * The expression manager manages all registered expressions * for the debug plug-in. It is instantiated by the debug plug-in diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/InputStreamMonitor.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/InputStreamMonitor.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/InputStreamMonitor.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/InputStreamMonitor.java 2020-05-20 08:42:13.000000000 +0000 @@ -63,7 +63,7 @@ * @param stream output stream */ public InputStreamMonitor(OutputStream stream) { - this(stream, null); + this(stream, (Charset) null); } /** @@ -81,9 +81,22 @@ } /** - * Appends the given text to the stream, or - * queues the text to be written at a later time - * if the stream is blocked. + * Creates an input stream monitor which writes to system in via the given + * output stream. + * + * @param stream output stream + * @param encoding stream encoding or null for system default + * @deprecated use {@link #InputStreamMonitor(OutputStream, Charset)} + * instead + */ + @Deprecated + public InputStreamMonitor(OutputStream stream, String encoding) { + this(stream, Charset.forName(encoding)); + } + + /** + * Appends the given text to the stream, or queues the text to be written at + * a later time if the stream is blocked. * * @param text text to append */ diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationInfo.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationInfo.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationInfo.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationInfo.java 2020-05-20 08:42:13.000000000 +0000 @@ -16,6 +16,7 @@ import java.io.IOException; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -44,8 +45,6 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import com.ibm.icu.text.MessageFormat; - /** * The information associated with a launch configuration handle. */ diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfiguration.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfiguration.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfiguration.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfiguration.java 2020-05-20 08:42:13.000000000 +0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2019 IBM Corporation and others. + * Copyright (c) 2000, 2020 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -20,6 +20,7 @@ import java.io.IOException; import java.io.StringReader; import java.net.URI; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; @@ -67,8 +68,6 @@ import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; -import com.ibm.icu.text.MessageFormat; - /** * Launch configuration handle. * @@ -732,59 +731,7 @@ SubMonitor lmonitor = SubMonitor.convert(monitor, DebugCoreMessages.LaunchConfiguration_9, 23); try { // bug 28245 - force the delegate to load in case it is interested in launch notifications - Set modes = getModes(); - modes.add(mode); - ILaunchDelegate[] delegates = getType().getDelegates(modes); - ILaunchConfigurationDelegate delegate = null; - switch (delegates.length) { - case 1: - delegate = delegates[0].getDelegate(); - break; - case 0: - { - IStatusHandler handler = DebugPlugin.getDefault().getStatusHandler(promptStatus); - if (handler != null) { - handler.handleStatus(delegateNotAvailable, new Object[] {this, mode}); - } - IStatus status = new Status(IStatus.CANCEL, DebugPlugin.getUniqueIdentifier(), DebugPlugin.ERROR, DebugCoreMessages.LaunchConfiguration_11, null); - throw new CoreException(status); - } - default: - { - ILaunchDelegate del = getPreferredDelegate(modes); - if(del == null) { - del = getType().getPreferredDelegate(modes); - } - if(del == null) { - IStatusHandler handler = DebugPlugin.getDefault().getStatusHandler(promptStatus); - IStatus status = null; - if (handler != null) { - status = (IStatus) handler.handleStatus(duplicateDelegates, new Object[] {this, mode}); - } - if(status != null && status.isOK()) { - del = getPreferredDelegate(modes); - if(del == null) { - del = getType().getPreferredDelegate(modes); - } - if(del != null) { - delegate = del.getDelegate(); - } - else { - status = new Status(IStatus.CANCEL, DebugPlugin.getUniqueIdentifier(), DebugPlugin.ERROR, DebugCoreMessages.LaunchConfiguration_13, null); - throw new CoreException(status); - } - } - else { - status = new Status(IStatus.CANCEL, DebugPlugin.getUniqueIdentifier(), DebugPlugin.ERROR, DebugCoreMessages.LaunchConfiguration_13, null); - throw new CoreException(status); - } - } - else { - delegate = del.getDelegate(); - } - break; - } - } + ILaunchConfigurationDelegate delegate = getPreferredLaunchDelegate(mode); ILaunchConfigurationDelegate2 delegate2 = null; if (delegate instanceof ILaunchConfigurationDelegate2) { @@ -1037,4 +984,63 @@ public void setPrototypeAttributeVisibility(String attribute, boolean visible) throws CoreException { getInfo().setAttributeVisibility(attribute, visible); } + + /* + * Get Preferred delegate with all fallbacks + * + */ + public ILaunchConfigurationDelegate getPreferredLaunchDelegate(String mode) throws CoreException { + Set modes = getModes(); + modes.add(mode); + ILaunchDelegate[] delegates = getType().getDelegates(modes); + ILaunchConfigurationDelegate delegate = null; + switch (delegates.length) { + case 1: + delegate = delegates[0].getDelegate(); + break; + case 0: { + IStatusHandler handler = DebugPlugin.getDefault().getStatusHandler(promptStatus); + if (handler != null) { + handler.handleStatus(delegateNotAvailable, new Object[] { + this, mode }); + } + IStatus status = new Status(IStatus.CANCEL, DebugPlugin.getUniqueIdentifier(), DebugPlugin.ERROR, DebugCoreMessages.LaunchConfiguration_11, null); + throw new CoreException(status); + } + default: { + ILaunchDelegate del = getPreferredDelegate(modes); + if (del == null) { + del = getType().getPreferredDelegate(modes); + } + if (del == null) { + IStatusHandler handler = DebugPlugin.getDefault().getStatusHandler(promptStatus); + IStatus status = null; + if (handler != null) { + status = (IStatus) handler.handleStatus(duplicateDelegates, new Object[] { + this, mode }); + } + if (status != null && status.isOK()) { + del = getPreferredDelegate(modes); + if (del == null) { + del = getType().getPreferredDelegate(modes); + } + if (del != null) { + delegate = del.getDelegate(); + } else { + status = new Status(IStatus.CANCEL, DebugPlugin.getUniqueIdentifier(), DebugPlugin.ERROR, DebugCoreMessages.LaunchConfiguration_13, null); + throw new CoreException(status); + } + } else { + status = new Status(IStatus.CANCEL, DebugPlugin.getUniqueIdentifier(), DebugPlugin.ERROR, DebugCoreMessages.LaunchConfiguration_13, null); + throw new CoreException(status); + } + } else { + delegate = del.getDelegate(); + } + break; + } + } + + return delegate; + } } diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationType.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationType.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationType.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationType.java 2020-05-20 08:42:13.000000000 +0000 @@ -15,6 +15,7 @@ package org.eclipse.debug.internal.core; +import java.text.MessageFormat; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -42,8 +43,6 @@ import org.eclipse.debug.core.model.ILaunchConfigurationDelegate; import org.eclipse.debug.core.sourcelookup.ISourcePathComputer; -import com.ibm.icu.text.MessageFormat; - /** * A launch configuration type wrappers a configuration * element for a launchConfigurationType diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationWorkingCopy.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationWorkingCopy.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationWorkingCopy.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationWorkingCopy.java 2020-05-20 08:42:13.000000000 +0000 @@ -19,6 +19,7 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -46,8 +47,6 @@ import org.eclipse.debug.core.ILaunchConfigurationType; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; -import com.ibm.icu.text.MessageFormat; - /** * A working copy launch configuration */ diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchDelegate.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchDelegate.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchDelegate.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchDelegate.java 2020-05-20 08:42:13.000000000 +0000 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.debug.internal.core; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -27,8 +28,6 @@ import org.eclipse.debug.core.ILaunchDelegate; import org.eclipse.debug.core.model.ILaunchConfigurationDelegate; -import com.ibm.icu.text.MessageFormat; - /** * Proxy to a launch delegate extension. *

diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchManager.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchManager.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchManager.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchManager.java 2020-05-20 08:42:13.000000000 +0000 @@ -31,6 +31,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -115,8 +116,6 @@ import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; -import com.ibm.icu.text.MessageFormat; - /** * Manages launch configurations, launch configuration types, and registered launches. * @@ -993,13 +992,8 @@ final File directory = containerPath.toFile(); if (directory.isDirectory()) { List configs = new ArrayList<>(); - FilenameFilter configFilter = new FilenameFilter() { - @Override - public boolean accept(File dir, String name) { - return dir.equals(directory) && - name.endsWith(ILaunchConfiguration.LAUNCH_CONFIGURATION_FILE_EXTENSION); - } - }; + FilenameFilter configFilter = (dir, name) -> dir.equals(directory) && + name.endsWith(ILaunchConfiguration.LAUNCH_CONFIGURATION_FILE_EXTENSION); File[] configFiles = directory.listFiles(configFilter); if (configFiles != null && configFiles.length > 0) { LaunchConfiguration config = null; @@ -1008,12 +1002,7 @@ configs.add(config); } } - FilenameFilter prototypeFilter = new FilenameFilter() { - @Override - public boolean accept(File dir, String name) { - return dir.equals(directory) && name.endsWith(ILaunchConfiguration.LAUNCH_CONFIGURATION_PROTOTYPE_FILE_EXTENSION); - } - }; + FilenameFilter prototypeFilter = (dir, name) -> dir.equals(directory) && name.endsWith(ILaunchConfiguration.LAUNCH_CONFIGURATION_PROTOTYPE_FILE_EXTENSION); File[] prototypeFiles = directory.listFiles(prototypeFilter); if (prototypeFiles != null && prototypeFiles.length > 0) { LaunchConfiguration config = null; diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchMode.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchMode.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchMode.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchMode.java 2020-05-20 08:42:13.000000000 +0000 @@ -13,6 +13,8 @@ *******************************************************************************/ package org.eclipse.debug.internal.core; +import java.text.MessageFormat; + import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IStatus; @@ -20,8 +22,6 @@ import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.ILaunchMode; -import com.ibm.icu.text.MessageFormat; - /** * Proxy to a launch mode extension. * diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureType.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureType.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureType.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureType.java 2020-05-20 08:42:13.000000000 +0000 @@ -13,6 +13,8 @@ *******************************************************************************/ package org.eclipse.debug.internal.core; +import java.text.MessageFormat; + import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IStatus; @@ -23,8 +25,6 @@ import org.eclipse.debug.core.model.ILogicalStructureTypeDelegate2; import org.eclipse.debug.core.model.IValue; -import com.ibm.icu.text.MessageFormat; - /** * Proxy to a logical structure type extension. * diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/NullStreamsProxy.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/NullStreamsProxy.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/NullStreamsProxy.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/NullStreamsProxy.java 2020-05-20 08:42:13.000000000 +0000 @@ -59,8 +59,8 @@ private void startReaderThread() { Thread thread = new Thread((Runnable) () -> { byte[] bytes = new byte[1024]; - try { - while (fStream.read(bytes) >= 0) { + try (InputStream stream = fStream) { + while (stream.read(bytes) >= 0) { // do nothing } } catch (IOException e) { diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java 2020-05-20 08:42:13.000000000 +0000 @@ -93,6 +93,20 @@ fDone = new AtomicBoolean(false); } + /** + * Creates an output stream monitor on the given stream (connected to system + * out or err). + * + * @param stream input stream to read from + * @param encoding stream encoding or null for system default + * @deprecated use {@link #OutputStreamMonitor(InputStream, Charset)} + * instead + */ + @Deprecated + public OutputStreamMonitor(InputStream stream, String encoding) { + this(stream, Charset.forName(encoding)); + } + @Override public synchronized void addListener(IStreamListener listener) { fListeners.add(listener); diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils.java 2020-05-20 08:42:13.000000000 +0000 @@ -51,6 +51,7 @@ * @exception IOException if unable to create the specified zip * file */ + @SuppressWarnings("resource") public static ZipFile getZipFile(String name) throws IOException { synchronized (fgZipFileCache) { if (fgCleaner == null) { diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/StreamsProxy.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/StreamsProxy.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/StreamsProxy.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/StreamsProxy.java 2020-05-20 08:42:13.000000000 +0000 @@ -66,10 +66,25 @@ } /** - * Causes the proxy to close all - * communications between it and the - * underlying streams after all remaining data - * in the streams is read. + * Creates a StreamsProxy on the streams of the given system + * process. + * + * @param process system process to create a streams proxy on + * @param encoding the process's encoding or null if default + * @deprecated use {@link #StreamsProxy(Process, Charset)} instead + */ + @Deprecated + public StreamsProxy(Process process, String encoding) { + // This constructor was once removed in favor of the Charset variant + // but Bug 562653 brought up a client which use this internal class via + // reflection and breaks without this constructor. So we restored the + // old constructor for the time being. + this(process, Charset.forName(encoding)); + } + + /** + * Causes the proxy to close all communications between it and the + * underlying streams after all remaining data in the streams is read. */ public void close() { if (!isClosed(true)) { diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/variables/ResourceResolver.java eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/variables/ResourceResolver.java --- eclipse-platform-debug-4.15/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/variables/ResourceResolver.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/variables/ResourceResolver.java 2020-05-20 08:42:13.000000000 +0000 @@ -15,6 +15,7 @@ import java.io.File; import java.net.URI; +import java.text.MessageFormat; import org.eclipse.core.filesystem.EFS; import org.eclipse.core.resources.IResource; @@ -31,8 +32,6 @@ import org.eclipse.core.variables.VariablesPlugin; import org.eclipse.debug.core.DebugPlugin; -import com.ibm.icu.text.MessageFormat; - /** * Common function of variable resolvers. * Moved to debug core in 3.5, existed in debug.iu since 3.0. diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/META-INF/MANIFEST.MF eclipse-platform-debug-4.16/org.eclipse.debug.core/META-INF/MANIFEST.MF --- eclipse-platform-debug-4.15/org.eclipse.debug.core/META-INF/MANIFEST.MF 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/META-INF/MANIFEST.MF 2020-05-20 08:42:13.000000000 +0000 @@ -2,7 +2,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.debug.core; singleton:=true -Bundle-Version: 3.15.0.qualifier +Bundle-Version: 3.15.100.qualifier Bundle-ClassPath: . Bundle-Activator: org.eclipse.debug.core.DebugPlugin Bundle-Vendor: %providerName @@ -25,6 +25,5 @@ org.eclipse.core.filesystem;bundle-version="[1.2.0,2.0.0)", org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)" Bundle-ActivationPolicy: lazy -Import-Package: com.ibm.icu.text Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Automatic-Module-Name: org.eclipse.debug.core diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.core/pom.xml eclipse-platform-debug-4.16/org.eclipse.debug.core/pom.xml --- eclipse-platform-debug-4.15/org.eclipse.debug.core/pom.xml 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.core/pom.xml 2020-05-20 08:42:13.000000000 +0000 @@ -14,10 +14,10 @@ eclipse.platform.debug eclipse.platform.debug - 4.15.0-SNAPSHOT + 4.16.0-SNAPSHOT org.eclipse.debug org.eclipse.debug.core - 3.15.0-SNAPSHOT + 3.15.100-SNAPSHOT eclipse-plugin diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.examples.core/pom.xml eclipse-platform-debug-4.16/org.eclipse.debug.examples.core/pom.xml --- eclipse-platform-debug-4.15/org.eclipse.debug.examples.core/pom.xml 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.examples.core/pom.xml 2020-05-20 08:42:13.000000000 +0000 @@ -14,7 +14,7 @@ eclipse.platform.debug eclipse.platform.debug - 4.15.0-SNAPSHOT + 4.16.0-SNAPSHOT org.eclipse.debug org.eclipse.debug.examples.core diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.examples.memory/pom.xml eclipse-platform-debug-4.16/org.eclipse.debug.examples.memory/pom.xml --- eclipse-platform-debug-4.15/org.eclipse.debug.examples.memory/pom.xml 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.examples.memory/pom.xml 2020-05-20 08:42:13.000000000 +0000 @@ -14,7 +14,7 @@ eclipse.platform.debug eclipse.platform.debug - 4.15.0-SNAPSHOT + 4.16.0-SNAPSHOT org.eclipse.debug org.eclipse.debug.examples.memory diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.examples.mixedmode/pom.xml eclipse-platform-debug-4.16/org.eclipse.debug.examples.mixedmode/pom.xml --- eclipse-platform-debug-4.15/org.eclipse.debug.examples.mixedmode/pom.xml 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.examples.mixedmode/pom.xml 2020-05-20 08:42:13.000000000 +0000 @@ -14,7 +14,7 @@ eclipse.platform.debug eclipse.platform.debug - 4.15.0-SNAPSHOT + 4.16.0-SNAPSHOT org.eclipse.debug org.eclipse.debug.examples.mixedmode diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.examples.ui/pom.xml eclipse-platform-debug-4.16/org.eclipse.debug.examples.ui/pom.xml --- eclipse-platform-debug-4.15/org.eclipse.debug.examples.ui/pom.xml 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.examples.ui/pom.xml 2020-05-20 08:42:13.000000000 +0000 @@ -14,7 +14,7 @@ eclipse.platform.debug eclipse.platform.debug - 4.15.0-SNAPSHOT + 4.16.0-SNAPSHOT org.eclipse.debug org.eclipse.debug.examples.ui diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.tests/META-INF/MANIFEST.MF eclipse-platform-debug-4.16/org.eclipse.debug.tests/META-INF/MANIFEST.MF --- eclipse-platform-debug-4.15/org.eclipse.debug.tests/META-INF/MANIFEST.MF 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.tests/META-INF/MANIFEST.MF 2020-05-20 08:42:13.000000000 +0000 @@ -2,7 +2,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.debug.tests;singleton:=true -Bundle-Version: 3.11.600.qualifier +Bundle-Version: 3.11.700.qualifier Bundle-Activator: org.eclipse.debug.tests.TestsPlugin Bundle-Localization: plugin Require-Bundle: org.eclipse.ui;bundle-version="[3.6.0,4.0.0)", diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.tests/pom.xml eclipse-platform-debug-4.16/org.eclipse.debug.tests/pom.xml --- eclipse-platform-debug-4.15/org.eclipse.debug.tests/pom.xml 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.tests/pom.xml 2020-05-20 08:42:13.000000000 +0000 @@ -14,11 +14,11 @@ eclipse.platform.debug eclipse.platform.debug - 4.15.0-SNAPSHOT + 4.16.0-SNAPSHOT org.eclipse.debug org.eclipse.debug.tests - 3.11.600-SNAPSHOT + 3.11.700-SNAPSHOT eclipse-test-plugin ${tests.ignoredWarnings} diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/MockProcess.java eclipse-platform-debug-4.16/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/MockProcess.java --- eclipse-platform-debug-4.15/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/MockProcess.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/MockProcess.java 2020-05-20 08:42:13.000000000 +0000 @@ -17,13 +17,18 @@ import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.OutputStream; +import java.util.Map; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; +import org.eclipse.core.runtime.CoreException; import org.eclipse.debug.core.DebugPlugin; +import org.eclipse.debug.core.ILaunchConfigurationType; +import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.eclipse.debug.core.ILaunchManager; import org.eclipse.debug.core.Launch; import org.eclipse.debug.core.model.RuntimeProcess; +import org.eclipse.debug.tests.launching.LaunchConfigurationTests; /** * A mockup process which can either simulate generation of output or wait for @@ -265,4 +270,25 @@ public RuntimeProcess toRuntimeProcess(String name) { return (RuntimeProcess) DebugPlugin.newProcess(new Launch(null, ILaunchManager.RUN_MODE, null), this, name); } + + /** + * Create a {@link RuntimeProcess} which wraps this {@link MockProcess}. + *

+ * This method also attaches a + * {@link LaunchConfigurationTests#ID_TEST_LAUNCH_TYPE} launch configuration + * to the {@link RuntimeProcess}. + *

+ * + * @param name name for the process and launch configuration + * @return the created {@link RuntimeProcess} + */ + public RuntimeProcess toRuntimeProcess(String name, Map launchConfigAttributes) throws CoreException { + ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager(); + ILaunchConfigurationType launchType = launchManager.getLaunchConfigurationType(LaunchConfigurationTests.ID_TEST_LAUNCH_TYPE); + ILaunchConfigurationWorkingCopy launchConfiguration = launchType.newInstance(null, name); + if (launchConfigAttributes != null) { + launchConfiguration.setAttributes(launchConfigAttributes); + } + return (RuntimeProcess) DebugPlugin.newProcess(new Launch(launchConfiguration, ILaunchManager.RUN_MODE, null), this, name); + } } diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ProcessConsoleTests.java eclipse-platform-debug-4.16/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ProcessConsoleTests.java --- eclipse-platform-debug-4.15/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ProcessConsoleTests.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ProcessConsoleTests.java 2020-05-20 08:42:13.000000000 +0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2019 Paul Pazderski and others. + * Copyright (c) 2019, 2020 Paul Pazderski and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,12 +13,21 @@ *******************************************************************************/ package org.eclipse.debug.tests.console; +import static org.junit.Assert.assertArrayEquals; + +import java.io.ByteArrayInputStream; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.File; +import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.text.MessageFormat; +import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; +import java.util.Map; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; @@ -41,10 +50,13 @@ import org.eclipse.debug.tests.launching.LaunchConfigurationTests; import org.eclipse.debug.ui.IDebugUIConstants; import org.eclipse.debug.ui.console.ConsoleColorProvider; +import org.eclipse.jface.text.IDocument; +import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.ui.console.ConsolePlugin; import org.eclipse.ui.console.IConsole; import org.eclipse.ui.console.IConsoleConstants; import org.eclipse.ui.console.IConsoleManager; +import org.eclipse.ui.console.IOConsole; import org.eclipse.ui.console.IOConsoleInputStream; import org.junit.After; import org.junit.Before; @@ -62,11 +74,14 @@ /** Listener to count error messages in {@link ConsolePlugin} log. */ private final ILogListener errorLogListener = (status, plugin) -> { - if (status.matches(IStatus.ERROR)) { - loggedErrors.incrementAndGet(); - } + if (status.matches(IStatus.ERROR)) { + loggedErrors.incrementAndGet(); + } }; + /** Temporary test files created by a test. Will be deleted on teardown. */ + private final ArrayList tmpFiles = new ArrayList<>(); + @Override @Before public void setUp() throws Exception { @@ -79,12 +94,34 @@ @After public void tearDown() throws Exception { Platform.removeLogListener(errorLogListener); + for (File tmpFile : tmpFiles) { + tmpFile.delete(); + } + tmpFiles.clear(); + super.tearDown(); assertEquals("Test triggered errors.", 0, loggedErrors.get()); } /** + * Create a new temporary file for testing. File will be deleted when test + * finishes. + * + * @param filename name of the temporary file + * @return the created temporary file + * @throws IOException if creating the file failed. Includes file already + * exists. + */ + private File createTmpFile(String filename) throws IOException { + File file = DebugUIPlugin.getDefault().getStateLocation().addTrailingSeparator().append(filename).toFile(); + boolean fileCreated = file.createNewFile(); + assertTrue("Failed to prepare temporary test file.", fileCreated); + tmpFiles.add(file); + return file; + } + + /** * Test if two byte UTF-8 characters get disrupted on there way from process * console to the runtime process. *

@@ -231,9 +268,9 @@ @SuppressWarnings("restriction") final org.eclipse.debug.internal.ui.views.console.ProcessConsole console = new org.eclipse.debug.internal.ui.views.console.ProcessConsole(process, new ConsoleColorProvider()); console.addPropertyChangeListener(event -> { - if (event.getSource() == console && IConsoleConstants.P_CONSOLE_OUTPUT_COMPLETE.equals(event.getProperty())) { - terminationSignaled.set(true); - } + if (event.getSource() == console && IConsoleConstants.P_CONSOLE_OUTPUT_COMPLETE.equals(event.getProperty())) { + terminationSignaled.set(true); + } }); final IConsoleManager consoleManager = ConsolePlugin.getDefault().getConsoleManager(); try { @@ -248,4 +285,124 @@ TestUtil.waitForJobs(name.getMethodName(), 0, 10000); } } + + /** + * Test simple redirect of console output into file. + */ + @Test + public void testRedirectOutputToFile() throws Exception { + final String testContent = "Hello World!"; + final File outFile = createTmpFile("test.out"); + Map launchConfigAttributes = new HashMap<>(); + launchConfigAttributes.put(IDebugUIConstants.ATTR_CAPTURE_IN_FILE, outFile.getCanonicalPath()); + launchConfigAttributes.put(IDebugUIConstants.ATTR_CAPTURE_IN_CONSOLE, true); + doConsoleOutputTest(testContent.getBytes(), launchConfigAttributes); + assertArrayEquals("Wrong content redirected to file.", testContent.getBytes(), Files.readAllBytes(outFile.toPath())); + } + + /** + * Test appending of console output into existing file. + */ + @Test + public void testAppendOutputToFile() throws Exception { + final String testContent = "Hello World!"; + final File outFile = createTmpFile("test.out"); + Map launchConfigAttributes = new HashMap<>(); + launchConfigAttributes.put(IDebugUIConstants.ATTR_CAPTURE_IN_FILE, outFile.getCanonicalPath()); + launchConfigAttributes.put(IDebugUIConstants.ATTR_APPEND_TO_FILE, true); + launchConfigAttributes.put(IDebugUIConstants.ATTR_CAPTURE_IN_CONSOLE, true); + doConsoleOutputTest(testContent.getBytes(), launchConfigAttributes); + assertArrayEquals("Wrong content redirected to file.", testContent.getBytes(), Files.readAllBytes(outFile.toPath())); + + String appendedContent = "append"; + doConsoleOutputTest(appendedContent.getBytes(), launchConfigAttributes); + assertArrayEquals("Wrong content redirected to file.", (testContent + appendedContent).getBytes(), Files.readAllBytes(outFile.toPath())); + } + + /** + * Test output redirect with a filename containing regular expression + * specific special characters. + *

+ * Test a filename with special characters which is still a valid regular + * expression and a filename whose name is an invalid regular expression. + */ + @Test + public void testBug333239_regexSpecialCharactersInOutputFilename() throws Exception { + final String testContent = "1.\n2.\n3.\n"; + File outFile = createTmpFile("test.[out]"); + Map launchConfigAttributes = new HashMap<>(); + launchConfigAttributes.put(IDebugUIConstants.ATTR_CAPTURE_IN_FILE, outFile.getCanonicalPath()); + launchConfigAttributes.put(IDebugUIConstants.ATTR_CAPTURE_IN_CONSOLE, false); + IOConsole console = doConsoleOutputTest(testContent.getBytes(), launchConfigAttributes); + assertArrayEquals("Wrong content redirected to file.", testContent.getBytes(), Files.readAllBytes(outFile.toPath())); + assertEquals("Output in console.", 2, console.getDocument().getNumberOfLines()); + + outFile = createTmpFile("exhaustive[128-32].out"); + launchConfigAttributes.put(IDebugUIConstants.ATTR_CAPTURE_IN_FILE, outFile.getCanonicalPath()); + console = doConsoleOutputTest(testContent.getBytes(), launchConfigAttributes); + assertArrayEquals("Wrong content redirected to file.", testContent.getBytes(), Files.readAllBytes(outFile.toPath())); + assertEquals("Output in console.", 2, console.getDocument().getNumberOfLines()); + + outFile = createTmpFile("ug(ly.out"); + launchConfigAttributes.put(IDebugUIConstants.ATTR_CAPTURE_IN_FILE, outFile.getCanonicalPath()); + console = doConsoleOutputTest(testContent.getBytes(), launchConfigAttributes); + assertArrayEquals("Wrong content redirected to file.", testContent.getBytes(), Files.readAllBytes(outFile.toPath())); + assertEquals("Output in console.", 2, console.getDocument().getNumberOfLines()); + } + + /** + * Shared test code for tests who want to write and verify content to + * console. Method will open a console for a mockup process, output the + * given content, terminate the process and close the console. If content is + * expected to be found in console it will be verified. If output is + * redirected to file the file path which should be printed to console is + * checked. + * + * @param testContent content to output in console + * @param launchConfigAttributes optional launch configuration attributes to + * specify behavior + * @return the console object after it has finished + */ + private IOConsole doConsoleOutputTest(byte[] testContent, Map launchConfigAttributes) throws Exception { + final MockProcess mockProcess = new MockProcess(new ByteArrayInputStream(testContent), null, 0); + final IProcess process = mockProcess.toRuntimeProcess("Output Redirect", launchConfigAttributes); + final String encoding = launchConfigAttributes != null ? (String) launchConfigAttributes.get(DebugPlugin.ATTR_CONSOLE_ENCODING) : null; + final AtomicBoolean consoleFinished = new AtomicBoolean(false); + @SuppressWarnings("restriction") + final org.eclipse.debug.internal.ui.views.console.ProcessConsole console = new org.eclipse.debug.internal.ui.views.console.ProcessConsole(process, new ConsoleColorProvider(), encoding); + console.addPropertyChangeListener((PropertyChangeEvent event) -> { + if (event.getSource() == console && IConsoleConstants.P_CONSOLE_OUTPUT_COMPLETE.equals(event.getProperty())) { + consoleFinished.set(true); + } + }); + final IConsoleManager consoleManager = ConsolePlugin.getDefault().getConsoleManager(); + try { + consoleManager.addConsoles(new IConsole[] { console }); + waitWhile(c -> !consoleFinished.get(), testTimeout, c -> "Console did not finished."); + + Object value = launchConfigAttributes != null ? launchConfigAttributes.get(IDebugUIConstants.ATTR_CAPTURE_IN_FILE) : null; + final File outFile = value != null ? new File((String) value) : null; + value = launchConfigAttributes != null ? launchConfigAttributes.get(IDebugUIConstants.ATTR_CAPTURE_IN_CONSOLE) : null; + final boolean checkOutput = value != null ? (boolean) value : true; + final IDocument doc = console.getDocument(); + + if (outFile != null) { + @SuppressWarnings("restriction") + String expectedPathMsg = MessageFormat.format(org.eclipse.debug.internal.ui.views.console.ConsoleMessages.ProcessConsole_1, new Object[] { + outFile.getAbsolutePath() }); + assertEquals("No or wrong output of redirect file path in console.", expectedPathMsg, doc.get(doc.getLineOffset(0), doc.getLineLength(0))); + assertEquals("Expected redirect file path to be linked.", 1, console.getHyperlinks().length); + } + if (checkOutput) { + assertEquals("Output not found in console.", new String(testContent), doc.get(doc.getLineOffset(1), doc.getLineLength(1))); + } + return console; + } finally { + if (!process.isTerminated()) { + process.terminate(); + } + consoleManager.removeConsoles(new IConsole[] { console }); + TestUtil.waitForJobs(name.getMethodName(), 0, 1000); + } + } } diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchFavoriteTests.java eclipse-platform-debug-4.16/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchFavoriteTests.java --- eclipse-platform-debug-4.15/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchFavoriteTests.java 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchFavoriteTests.java 2020-05-20 08:42:13.000000000 +0000 @@ -46,7 +46,7 @@ /** * Returns the run launch history - * + * * @return */ private LaunchHistory getRunLaunchHistory() { Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dlcl16/debuglast_co@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dlcl16/debuglast_co@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dlcl16/debuglast_co.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dlcl16/debuglast_co.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dlcl16/export_brkpts@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dlcl16/export_brkpts@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dlcl16/export_brkpts.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dlcl16/export_brkpts.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dlcl16/import_brkpts@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dlcl16/import_brkpts@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dlcl16/import_brkpts.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dlcl16/import_brkpts.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dlcl16/skip_brkp@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dlcl16/skip_brkp@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dlcl16/skip_brkp.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dlcl16/skip_brkp.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dtool16/debug_exc@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dtool16/debug_exc@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dtool16/debug_exc.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dtool16/debug_exc.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dview16/breakpoint_view@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dview16/breakpoint_view@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dview16/breakpoint_view.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dview16/breakpoint_view.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dview16/debug_persp@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dview16/debug_persp@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dview16/debug_persp.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dview16/debug_persp.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dview16/debug_view@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dview16/debug_view@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dview16/debug_view.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dview16/debug_view.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dview16/register_view@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dview16/register_view@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dview16/register_view.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dview16/register_view.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dview16/variable_view@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dview16/variable_view@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dview16/variable_view.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dview16/variable_view.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dview16/watchlist_view@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dview16/watchlist_view@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/dview16/watchlist_view.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/dview16/watchlist_view.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/elcl16/debuglast_co@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/elcl16/debuglast_co@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/elcl16/debuglast_co.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/elcl16/debuglast_co.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/elcl16/export_brkpts@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/elcl16/export_brkpts@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/elcl16/export_brkpts.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/elcl16/export_brkpts.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/elcl16/import_brkpts@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/elcl16/import_brkpts@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/elcl16/import_brkpts.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/elcl16/import_brkpts.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/elcl16/skip_brkp@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/elcl16/skip_brkp@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/elcl16/skip_brkp.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/elcl16/skip_brkp.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/etool16/debug_exc@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/etool16/debug_exc@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/etool16/debug_exc.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/etool16/debug_exc.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/etool16/watch_exp@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/etool16/watch_exp@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/etool16/watch_exp.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/etool16/watch_exp.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/eview16/breakpoint_view@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/eview16/breakpoint_view@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/eview16/breakpoint_view.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/eview16/breakpoint_view.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/eview16/debug_persp@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/eview16/debug_persp@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/eview16/debug_persp.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/eview16/debug_persp.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/eview16/debug_view@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/eview16/debug_view@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/eview16/debug_view.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/eview16/debug_view.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/eview16/register_view@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/eview16/register_view@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/eview16/register_view.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/eview16/register_view.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/eview16/variable_view@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/eview16/variable_view@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/eview16/variable_view.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/eview16/variable_view.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/eview16/watchlist_view@2x.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/eview16/watchlist_view@2x.png differ Binary files /tmp/tmpUIplJO/WyPyrxTBVx/eclipse-platform-debug-4.15/org.eclipse.debug.ui/icons/full/eview16/watchlist_view.png and /tmp/tmpUIplJO/KtLY4ZFoWg/eclipse-platform-debug-4.16/org.eclipse.debug.ui/icons/full/eview16/watchlist_view.png differ diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.ui/META-INF/MANIFEST.MF eclipse-platform-debug-4.16/org.eclipse.debug.ui/META-INF/MANIFEST.MF --- eclipse-platform-debug-4.15/org.eclipse.debug.ui/META-INF/MANIFEST.MF 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.ui/META-INF/MANIFEST.MF 2020-05-20 08:42:13.000000000 +0000 @@ -2,7 +2,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.debug.ui; singleton:=true -Bundle-Version: 3.14.400.qualifier +Bundle-Version: 3.14.500.qualifier Bundle-Activator: org.eclipse.debug.internal.ui.DebugUIPlugin Bundle-Vendor: %providerName Bundle-Localization: plugin @@ -94,7 +94,6 @@ org.eclipse.ui.genericeditor;bundle-version="1.1.0";resolution:=optional Bundle-ActivationPolicy: lazy Bundle-ClassPath: . -Import-Package: com.ibm.icu.text, - org.eclipse.ui.forms.widgets +Import-Package: org.eclipse.ui.forms.widgets Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Automatic-Module-Name: org.eclipse.debug.ui diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.ui/.options eclipse-platform-debug-4.16/org.eclipse.debug.ui/.options --- eclipse-platform-debug-4.15/org.eclipse.debug.ui/.options 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.ui/.options 2020-05-20 08:42:13.000000000 +0000 @@ -11,3 +11,4 @@ org.eclipse.debug.ui/debug/viewers/presentationId = org.eclipse.debug.ui/debug/breadcrumb = false org.eclipse.debug.ui/debug/memory/dynamicLoading = false +org.eclipse.debug.ui/debug/commandservice = false diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.ui/plugin.properties eclipse-platform-debug-4.16/org.eclipse.debug.ui/plugin.properties --- eclipse-platform-debug-4.15/org.eclipse.debug.ui/plugin.properties 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.ui/plugin.properties 2020-05-20 08:42:13.000000000 +0000 @@ -1,5 +1,5 @@ ############################################################################### -# Copyright (c) 2000, 2019 IBM Corporation and others. +# Copyright (c) 2000, 2020 IBM Corporation and others. # # This program and the accompanying materials # are made available under the terms of the Eclipse Public License 2.0 @@ -60,6 +60,7 @@ debugCurrentInstructionPointer=Debug Current Instruction Pointer debugCallStack=Debug Call Stack DebugDropDownAction.label=Debug +DebugQuickAccess.label=Debug DebugHistoryMenuAction.label=Debug &History DebugLastAction.label=&Debug Last Launched DebugLaunchGroup.label=De&bug @@ -69,7 +70,7 @@ LaunchConfigurationTabsExtension.name=Launch Configuration Tabs DebugPerspective.name=Debug -DebugPerspective.description=This Debug perspective is designed to support application debugging. It incorporates views for displaying the debug stack, variables and breakpoint management. +DebugPerspective.description=This Debug perspective supports application debugging by providing views for displaying the debug stack, variables and breakpoints. command.openDebugPerspective.description = Open the debug perspective DebugPreferencePage.name=Run/Debug @@ -122,6 +123,7 @@ RemoveExpressionAction.tooltip=Remove Selected Expressions ResumeAction.label=Resu&me RunDropDownAction.label=Run +RunQuickAccess.label=Run RunMenu.label=&Run RunLastAction.label=&Run Last Launched RunLaunchGroup.label=Ru&n diff -Nru eclipse-platform-debug-4.15/org.eclipse.debug.ui/plugin.xml eclipse-platform-debug-4.16/org.eclipse.debug.ui/plugin.xml --- eclipse-platform-debug-4.15/org.eclipse.debug.ui/plugin.xml 2020-02-24 06:54:38.000000000 +0000 +++ eclipse-platform-debug-4.16/org.eclipse.debug.ui/plugin.xml 2020-05-20 08:42:13.000000000 +0000 @@ -1,7 +1,7 @@