Commit dcccb0a1 authored by Emmanuel Bourg's avatar Emmanuel Bourg

New upstream version 4.10

parent 5d6e409b
Contributing to JDT - Java development tools
============================================
# Contributing to Eclipse Java development tools
Thanks for your interest in this project.
Project description:
--------------------
## Project description
The JDT project provides the tool plug-ins that implement a Java IDE supporting the development of any Java application, including Eclipse plug-ins. It adds a Java project nature and Java perspective to the Eclipse Workbench as well as a number of views, editors, wizards, builders, and code merging and refactoring tools. The JDT project allows Eclipse to be a development environment for itself.
The JDT project provides the tool plug-ins that implement a Java IDE supporting
the development of any Java application, including Eclipse plug-ins. It adds a
Java project nature and Java perspective to the Eclipse Workbench as well as a
number of views, editors, wizards, builders, and code merging and refactoring
tools. The JDT project allows Eclipse to be a development environment for
itself.
- https://projects.eclipse.org/projects/eclipse.jdt
* https://projects.eclipse.org/projects/eclipse.jdt
Developer resources:
--------------------
## Developer resources
Information regarding source code management, builds, coding standards, and more.
Information regarding source code management, builds, coding standards, and
more.
- https://projects.eclipse.org/projects/eclipse.jdt/developer
* https://projects.eclipse.org/projects/eclipse.jdt/developer
Contributor License Agreement:
------------------------------
The project maintains the following source code repositories
Before your contribution can be accepted by the project, you need to create and electronically sign the Eclipse Foundation Contributor License Agreement (ECA).
* http://git.eclipse.org/c/jdt/eclipse.jdt.core.binaries.git
* http://git.eclipse.org/c/jdt/eclipse.jdt.core.git
* http://git.eclipse.org/c/jdt/eclipse.jdt.debug.git
* http://git.eclipse.org/c/jdt/eclipse.jdt.git
* http://git.eclipse.org/c/jdt/eclipse.jdt.ui.git
- http://www.eclipse.org/legal/ECA.php
This project uses Bugzilla to track ongoing development and issues.
Contact:
--------
* Search for issues: https://eclipse.org/bugs/buglist.cgi?product=JDT
* Create a new report: https://eclipse.org/bugs/enter_bug.cgi?product=JDT
Contact the project developers via the project's "dev" list.
Be sure to search for existing bugs before you create another one. Remember that
contributions are always welcome!
- https://dev.eclipse.org/mailman/listinfo/jdt-dev
## Eclipse Contributor Agreement
Search for bugs:
----------------
Before your contribution can be accepted by the project team contributors must
electronically sign the Eclipse Contributor Agreement (ECA).
This project uses Bugzilla to track ongoing development and issues.
* http://www.eclipse.org/legal/ECA.php
- https://bugs.eclipse.org/bugs/buglist.cgi?product=JDT
Commits that are provided by non-committers must have a Signed-off-by field in
the footer indicating that the author is aware of the terms by which the
contribution has been provided to the project. The non-committer must
additionally have an Eclipse Foundation account and must have a signed Eclipse
Contributor Agreement (ECA) on file.
Create a new bug:
-----------------
For more information, please see the Eclipse Committer Handbook:
https://www.eclipse.org/projects/handbook/#resources-commit
Be sure to search for existing bugs before you create another one. Remember that contributions are always welcome!
## Contact
Contact the project developers via the project's "dev" list.
- https://bugs.eclipse.org/bugs/enter_bug.cgi?product=JDT
* https://dev.eclipse.org/mailman/listinfo/jdt-dev
\ No newline at end of file
This diff is collapsed.
# Notices for Eclipse Java development tools
This content is produced and maintained by the Eclipse Java development tools
project.
* Project home: https://projects.eclipse.org/projects/eclipse.jdt
## Trademarks
Eclipse Java development tools, Java development tools, Eclipse JDT, and JDT are
trademarks of the Eclipse Foundation.
## Copyright
All content is the property of the respective authors or their employers. For
more information regarding authorship of content, please consult the listed
source code repository logs.
## Declared Project Licenses
This program and the accompanying materials are made available under the terms
of the Eclipse Public License v. 2.0 which is available at
http://www.eclipse.org/legal/epl-2.0.
SPDX-License-Identifier: EPL-2.0
## Source Code
The project maintains the following source code repositories:
* http://git.eclipse.org/c/jdt/eclipse.jdt.core.binaries.git
* http://git.eclipse.org/c/jdt/eclipse.jdt.core.git
* http://git.eclipse.org/c/jdt/eclipse.jdt.debug.git
* http://git.eclipse.org/c/jdt/eclipse.jdt.git
* http://git.eclipse.org/c/jdt/eclipse.jdt.ui.git
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="tests"/>
<classpathentry kind="src" path="tests">
<attributes>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="/org.eclipse.jdt.debug"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>
......
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="test plugin"/>
<classpathentry kind="src" path="tests"/>
<classpathentry kind="src" path="console tests"/>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="test plugin">
<attributes>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="tests">
<attributes>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="console tests">
<attributes>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
......@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.jdt.debug.tests; singleton:=true
Bundle-Version: 3.11.200.qualifier
Bundle-Version: 3.11.300.qualifier
Bundle-ClassPath: javadebugtests.jar
Bundle-Activator: org.eclipse.jdt.debug.testplugin.JavaTestPlugin
Bundle-Vendor: %providerName
......
/*******************************************************************************
* Copyright (c) 2018 Simeon Andreev 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:
* Simeon Andreev - initial API and implementation
*******************************************************************************/
import java.util.HashMap;
import java.util.Map;
public class Bug541110 {
public final Map<String, String> map = new HashMap<>();
public void breakpointMethod(final String key, final String value) {
map.compute(key, (k, v) -> value);
}
public static void main(String[] args) {
Bug541110 delta = new Bug541110();
delta.breakpointMethod("someKey", "someValue");
}
}
......@@ -7,7 +7,7 @@
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
#
# Contributors:
# IBM Corporation - Initial implementation
###############################################################################
......@@ -48,6 +48,7 @@ environment.description.1 = Java 2 Platform, Test Edition 1.5.x
environment.description.2 = Test default system package access rules
view.name = Java Debug Context View 1
view.name.0 = Java Debug Context View 2
view.name.1 = Java Debug Context View 3
shortcut.description = General Description
shortcut.label = Test Shortcut
description.description = Run Description
......
......@@ -9,7 +9,7 @@
https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
IBM Corporation - initial API and implementation
-->
......@@ -177,7 +177,7 @@
class="org.eclipse.jdt.debug.tests.console.TestShowConsoleActionDelegate"
menubarPath="org.eclipse.ui.run/TestGroup"
id="org.eclipse.jdt.debug.tests.testShowConsoleAction">
</action>
</action>
</actionSet>
<actionSet
label="%actionSet.label.0"
......@@ -283,6 +283,10 @@
class="org.eclipse.jdt.debug.testplugin.ContextView"
id="org.eclipse.jdt.debug.tests.context.view.two"
name="%view.name.0"/>
<view
class="org.eclipse.jdt.debug.testplugin.ContextView"
id="org.eclipse.jdt.debug.tests.context.view.three"
name="%view.name.1"/>
</extension>
<extension
point="org.eclipse.debug.ui.contextViewBindings">
......@@ -400,7 +404,7 @@
</enablement>
</contextualLaunch>
</shortcut>
</extension>
</extension>
<extension
point="org.eclipse.debug.ui.detailPaneFactories">
<detailFactories
......
......@@ -14,11 +14,11 @@
<parent>
<artifactId>eclipse.jdt.debug</artifactId>
<groupId>eclipse.jdt.debug</groupId>
<version>4.9.0-SNAPSHOT</version>
<version>4.10.0-SNAPSHOT</version>
</parent>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.debug.tests</artifactId>
<version>3.11.200-SNAPSHOT</version>
<version>3.11.300-SNAPSHOT</version>
<packaging>eclipse-test-plugin</packaging>
<properties>
<code.ignoredWarnings>${tests.ignoredWarnings}</code.ignoredWarnings>
......
/*******************************************************************************
* Copyright (c) 2018 Simeon Andreev 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:
* Simeon Andreev - initial API and implementation
*******************************************************************************/
public class Bug538303 {
public static void main(String[] args) throws InterruptedException {
Thread t = new Thread(new Runnable() {
public void run() {
for (int i = 0; i < 2; ++i) {
sleep(250);
breakpointMethod();
}
}
});
t.start();
t.join();
}
static void sleep(long ms) {
try {
Thread.sleep(ms);
} catch (InterruptedException e) {
// ignore
}
}
public static void breakpointMethod() {
System.out.println("set a breakpoint here");
}
}
......@@ -20,6 +20,9 @@ import java.io.File;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
......@@ -29,9 +32,11 @@ import java.util.stream.Collectors;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IMarkerDelta;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
......@@ -202,7 +207,7 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation
"org.eclipse.debug.tests.targets.HcrClass5", "org.eclipse.debug.tests.targets.HcrClass6", "org.eclipse.debug.tests.targets.HcrClass7", "org.eclipse.debug.tests.targets.HcrClass8",
"org.eclipse.debug.tests.targets.HcrClass9", "TestContributedStepFilterClass", "TerminateAll_01", "TerminateAll_02", "StepResult1",
"StepResult2", "StepResult3", "StepUncaught", "TriggerPoint_01", "BulkThreadCreationTest", "MethodExitAndException",
"Bug534319earlyStart", "Bug534319lateStart", "Bug534319singleThread", "Bug534319startBetwen", "MethodCall" };
"Bug534319earlyStart", "Bug534319lateStart", "Bug534319singleThread", "Bug534319startBetwen", "MethodCall", "Bug538303" };
/**
* the default timeout
......@@ -464,6 +469,7 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation
cfgs.add(createLaunchConfiguration(jp, "EvalTestIntf18"));
cfgs.add(createLaunchConfiguration(jp, "EvalIntfSuperDefault"));
cfgs.add(createLaunchConfiguration(jp, "DebugHoverTest18"));
cfgs.add(createLaunchConfiguration(jp, "Bug541110"));
loaded18 = true;
waitForBuild();
}
......@@ -745,7 +751,7 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation
}
/**
* Returns the 'OneSeven' project.
* Returns the 'OneEight' project.
*
* @return the test project
*/
......@@ -2113,6 +2119,8 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation
} catch (CoreException e) {
}
}
TestUtil.waitForJobs(getName(), 100, 10000);
TestUtil.runEventLoop();
getLaunchManager().removeLaunch(launch);
// ensure event queue is flushed
DebugEventWaiter waiter = new DebugElementEventWaiter(DebugEvent.MODEL_SPECIFIC, this);
......@@ -2819,4 +2827,32 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation
return false;
}
protected void assertNoErrorMarkersExist() throws Exception {
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
IProject[] projects = root.getProjects();
for (IProject project : projects) {
assertNoErrorMarkersExist(project);
}
}
protected void assertNoErrorMarkersExist(IProject project) throws Exception {
if (project.isAccessible()) {
IMarker[] projectMarkers = project.findMarkers(null, false, IResource.DEPTH_INFINITE);
List<IMarker> errorMarkers = Arrays.stream(projectMarkers).filter(marker -> isErrorMarker(marker)).collect(Collectors.toList());
String projectErrors = toString(errorMarkers);
assertEquals("found errors on project " + project + ":" + System.lineSeparator() + projectErrors, Collections.EMPTY_LIST, errorMarkers);
}
}
private static boolean isErrorMarker(IMarker marker) {
return marker.getAttribute(IMarker.SEVERITY, -1) == IMarker.SEVERITY_ERROR;
}
private static String toString(Collection<IMarker> markers) {
StringBuilder markersInfo = new StringBuilder();
for (IMarker marker : markers) {
markersInfo.append(marker);
}
return markersInfo.toString();
}
}
/*******************************************************************************
* Copyright (c) 2018 Simeon Andreev 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:
* Simeon Andreev - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.debug.tests.breakpoints;
import java.util.Arrays;
import java.util.List;
import org.eclipse.debug.core.DebugEvent;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchManager;
import org.eclipse.debug.core.model.IDebugTarget;
import org.eclipse.debug.internal.ui.views.console.ProcessConsole;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.debug.core.IJavaDebugTarget;
import org.eclipse.jdt.debug.testplugin.DebugEventWaiter;
import org.eclipse.jdt.debug.tests.AbstractDebugTest;
import org.eclipse.jdt.debug.tests.TestUtil;
/**
* Tests conditional breakpoints.
*/
public class LambdaBreakpointsTests extends AbstractDebugTest {
/**
* Constructor
* @param name
*/
public LambdaBreakpointsTests(String name) {
super(name);
}
@Override
protected IJavaProject getProjectContext() {
return get18Project();
}
/**
* Test for Bug 541110 - ClassCastException in Instruction.popValue and a zombie EventDispatcher$1 job afterwards
*
* We check that a specific conditional breakpoint on a line with a lambda expression does not cause a {@link ClassCastException}.
*/
public void testBug541110() throws Exception {
assertNoErrorMarkersExist();
String typeName = "Bug541110";
createConditionalLineBreakpoint(22, typeName, "map.get(key) != null", true);
try {
// The class cast exception causes a job which runs forever. So we will timeout when waiting for debug events, if the exception occurs.
ILaunchConfiguration config = getLaunchConfiguration(typeName);
DebugEventWaiter waiter = new DebugEventWaiter(DebugEvent.TERMINATE);
launchAndWait(config, waiter);
// Join running jobs in case the launch did go through, but we have the endless job.
TestUtil.waitForJobs(getName(), 1_000, 30_000, ProcessConsole.class);
} finally {
terminateAndRemoveJavaLaunches();
removeAllBreakpoints();
}
}
private void terminateAndRemoveJavaLaunches() {
ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager();
List<ILaunch> launches = Arrays.asList(launchManager.getLaunches());
for (ILaunch launch : launches) {
IDebugTarget debugTarget = launch.getDebugTarget();
if (debugTarget instanceof IJavaDebugTarget) {
terminateAndRemove((IJavaDebugTarget) debugTarget);
}
}
}
}
/*******************************************************************************
* Copyright (c) 2000, 2005 IBM Corporation and others.
* Copyright (c) 2000, 2018 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
......
/*******************************************************************************
* Copyright (c) 2000, 2015 IBM Corporation and others.
* Copyright (c) 2000, 2018 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
......@@ -96,6 +96,10 @@ public class LineTrackerTests extends AbstractDebugTest implements IConsoleLineT
assertTrue("Never received 'start' notification", fStarted);
assertTrue("Never received 'stopped' notification", fStopped);
// there are 10 lines and one "empty line" (i.e. the last "new line")
String firstLine = fLinesRead.get(0);
if (firstLine.contains("advanced source lookup disabled")) {
fLinesRead.remove(0);
}
assertEquals("Wrong number of lines output", 11, fLinesRead.size());
for (int i = 0; i < 10; i++) {
assertEquals("Line " + i + " not equal", fLines[i], fLinesRead.get(i));
......@@ -124,6 +128,10 @@ public class LineTrackerTests extends AbstractDebugTest implements IConsoleLineT
dumpOnError(10);
assertTrue("Never received 'start' notification", fStarted);
assertTrue("Did not receive 'stopped' notification", fStopped);
String firstLine = fLinesRead.get(0);
if (firstLine.contains("advanced source lookup disabled")) {
fLinesRead.remove(0);
}
assertEquals("Wrong number of lines", 10, fLinesRead.size());
for (int i = 0; i < 10; i++) {
assertEquals("Line " + i + " not equal", fLines[i], fLinesRead.get(i));
......@@ -272,6 +280,10 @@ public class LineTrackerTests extends AbstractDebugTest implements IConsoleLineT
dumpOnError(2);
assertTrue("Never received 'start' notification", fStarted);
assertTrue("Never received 'stopped' notification", fStopped);
String firstLine = fLinesRead.get(0);
if (firstLine.contains("advanced source lookup disabled")) {
fLinesRead.remove(0);
}
assertEquals("Wrong number of lines output", 2, fLinesRead.size());
assertEquals("Wrong output", "var = foo", fLinesRead.get(0));
} finally {
......@@ -296,6 +308,10 @@ public class LineTrackerTests extends AbstractDebugTest implements IConsoleLineT
dumpOnError(2);
assertTrue("Never received 'start' notification", fStarted);
assertTrue("Never received 'stopped' notification", fStopped);
String firstLine = fLinesRead.get(0);
if (firstLine.contains("advanced source lookup disabled")) {
fLinesRead.remove(0);
}
assertEquals("Wrong number of lines output", 2, fLinesRead.size());
assertEquals("Wrong output", "var = 35", fLinesRead.get(0));
} finally {
......
/*******************************************************************************
* Copyright (c) 2000, 2005 IBM Corporation and others.
* Copyright (c) 2000, 2018 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
......@@ -15,6 +15,7 @@ package org.eclipse.jdt.debug.tests.core;
import java.util.Arrays;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.debug.core.IJavaDebugTarget;
import org.eclipse.jdt.debug.core.IJavaReferenceType;
import org.eclipse.jdt.debug.core.IJavaStackFrame;
......@@ -47,9 +48,17 @@ public class StratumTests extends AbstractDebugTest {
IJavaReferenceType type = ((IJavaStackFrame)thread.getTopStackFrame()).getReferenceType();
String[] strata = type.getAvailableStrata();
Arrays.sort(strata);
assertEquals("Wrong number of available strata", 2, strata.length);
assertEquals("Wrong strata", "Java", strata[0]);
assertEquals("Wrong strata", JDIHelpers.STRATA_ID, strata[1]);
String version = ((IJavaDebugTarget)thread.getDebugTarget()).getVersion();
// TODO ideally need to check "if NN or newer"
if (!JavaCore.isSupportedJavaVersion(version)) {
// as of 2018-11-15 java 12 was not supported by the sourcelookup agent
assertEquals("Wrong number of available strata", 1, strata.length);
assertEquals("Wrong strata", "Java", strata[0]);
} else {
assertEquals("Wrong number of available strata", 2, strata.length);
assertEquals("Wrong strata", "Java", strata[0]);
assertEquals("Wrong strata", JDIHelpers.STRATA_ID, strata[1]);
}
} finally {
terminateAndRemove(thread);
removeAllBreakpoints();
......
......@@ -31,6 +31,7 @@ public class DebugViewPerspectiveFactory implements IPerspectiveFactory {
public void createInitialLayout(IPageLayout layout) {
IFolderLayout rightFolder = layout.createFolder(IInternalDebugUIConstants.ID_TOOLS_FOLDER_VIEW, IPageLayout.LEFT, (float) 0.50, layout.getEditorArea());
rightFolder.addView(IDebugUIConstants.ID_DEBUG_VIEW);
rightFolder.addPlaceholder(ViewManagementTests.VIEW_THREE);
IFolderLayout consoleFolder = layout.createFolder(IInternalDebugUIConstants.ID_CONSOLE_FOLDER_VIEW, IPageLayout.BOTTOM, (float) 0.65, layout.getEditorArea());
consoleFolder.addView(IPageLayout.ID_PROJECT_EXPLORER);
......
......@@ -41,6 +41,10 @@ public class ViewManagementTests extends AbstractDebugUiTests implements IPerspe
private static final boolean HAS_BUG_420778 = true;
// view ids
/**
* The id of test view 'three'
*/
public static final String VIEW_THREE = "org.eclipse.jdt.debug.tests.context.view.three";
/**
* The id of test view 'two'
*/
......
......@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.jdt.debug.ui; singleton:=true
Bundle-Version: 3.10.0.qualifier
Bundle-Version: 3.10.100.qualifier
Bundle-Activator: org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
......@@ -37,11 +37,11 @@ Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.5.0,4.0.0)",
org.eclipse.core.filebuffers;bundle-version="[3.5.0,4.0.0)",
org.eclipse.core.variables;bundle-version="[3.2.0,4.0.0)",
org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
org.eclipse.jdt.core;bundle-version="[3.14.0,4.0.0)",
org.eclipse.jdt.core;bundle-version="[3.15.0,4.0.0)",
org.eclipse.debug.ui;bundle-version="[3.13.100,4.0.0)",
org.eclipse.jdt.debug;bundle-version="[3.11.0,4.0.0)",
org.eclipse.jdt.launching;bundle-version="[3.11.0,4.0.0)",
org.eclipse.jdt.ui;bundle-version="[3.15.0,4.0.0)",
org.eclipse.jdt.ui;bundle-version="[3.15.100,4.0.0)",
org.eclipse.core.runtime;bundle-version="[3.11.0,4.0.0)",
org.eclipse.ltk.core.refactoring;bundle-version="[3.5.0,4.0.0)",
org.eclipse.ui.console;bundle-version="[3.4.0,4.0.0)",
......
......@@ -3360,6 +3360,7 @@ M4 = Platform-specific fourth key
<extension
point="org.eclipse.ui.console.consoleFactories">
<consoleFactory
icon="$nl$/icons/full/obj16/javastacktrace_console.png"
label="%javaStackTraceConsole.label"
class="org.eclipse.jdt.debug.ui.console.JavaStackTraceConsoleFactory">
</consoleFactory>
......
......@@ -14,11 +14,11 @@
<parent>
<artifactId>eclipse.jdt.debug</artifactId>
<groupId>eclipse.jdt.debug</groupId>
<version>4.9.0-SNAPSHOT</version>
<version>4.10.0-SNAPSHOT</version>
</parent>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.debug.ui</artifactId>
<version>3.10.0-SNAPSHOT</version>
<version>3.10.100-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
<properties>
<code.ignoredWarnings>-warn:+resource,-deprecation,unavoidableGenericProblems</code.ignoredWarnings>
......
......@@ -332,13 +332,16 @@ public class JavaJRETab extends JavaLaunchTab {
if(vmver != null) {
int val = JavaCore.compareJavaVersions(compliance, vmver);
if(val > 0) {
String setting = null;
if (environmentId == null) {
setting = LauncherMessages.JavaJRETab_2;
} else {
setting = LauncherMessages.JavaJRETab_1;
if (JavaCore.isSupportedJavaVersion(vmver)) {
String setting = null;
if (environmentId == null) {
setting = LauncherMessages.JavaJRETab_2;
} else {
setting = LauncherMessages.JavaJRETab_1;
}
return new Status(IStatus.ERROR, IJavaDebugUIConstants.PLUGIN_ID, IStatus.ERROR, NLS.bind(LauncherMessages.JavaJRETab_0, new String[] {
setting, source, compliance }), null);
}
return new Status(IStatus.ERROR, IJavaDebugUIConstants.PLUGIN_ID, IStatus.ERROR, NLS.bind(LauncherMessages.JavaJRETab_0, new String[] {setting, source, compliance}), null);
}
}
}
......