Skip to content
Commits on Source (4)
......@@ -20,9 +20,9 @@ Information regarding source code management, builds, coding standards, and more
Contributor License Agreement:
------------------------------
Before your contribution can be accepted by the project, you need to create and electronically sign the Eclipse Foundation Contributor License Agreement (CLA).
Before your contribution can be accepted by the project, you need to create and electronically sign the Eclipse Foundation Contributor License Agreement (ECA).
- http://www.eclipse.org/legal/CLA.php
- http://www.eclipse.org/legal/ECA.php
Contact:
--------
......
eclipse-jdt-debug (4.8-1) unstable; urgency=medium
* New upstream release
- Depend on libeclipse-jdt-core-java (>= 3.14)
-- Emmanuel Bourg <ebourg@apache.org> Wed, 28 Nov 2018 09:38:14 +0100
eclipse-jdt-debug (4.7.3-2) unstable; urgency=medium
* Build the org.eclipse.jdt.debug.ui bundle
......
......@@ -17,7 +17,7 @@ Build-Depends:
libeclipse-core-variables-java,
libeclipse-debug-core-java,
libeclipse-debug-ui-java,
libeclipse-jdt-core-java,
libeclipse-jdt-core-java (>= 3.14),
libeclipse-jdt-core-manipulation-java,
libeclipse-jdt-ui-java,
libeclipse-jface-java,
......@@ -112,7 +112,7 @@ Depends:
libeclipse-core-runtime-java,
libeclipse-core-variables-java,
libeclipse-debug-core-java,
libeclipse-jdt-core-java,
libeclipse-jdt-core-java (>= 3.14),
libequinox-common-java,
libequinox-preferences-java,
libequinox-registry-java,
......
......@@ -220,10 +220,10 @@ org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
......
......@@ -220,10 +220,10 @@ org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
......
......@@ -33,7 +33,7 @@
<stringAttribute key="pde.version" value="3.3"/>
<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
<booleanAttribute key="run_in_ui_thread" value="true"/>
<stringAttribute key="selected_target_plugins" value="org.eclipse.team.cvs.core@default:default,com.jcraft.jsch@default:default,org.eclipse.core.commands@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.apache.jasper@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.jsch.core@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.help@default:default,org.eclipse.ui.net@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.help.base@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.mortbay.jetty.util@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.p2.metadata.generator@default:default,org.eclipse.core.filesystem.linux.x86@default:false,org.sat4j.pb@default:default,org.eclipse.platform@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.pde.ds.ui@default:default,org.apache.commons.logging@default:default,org.eclipse.equinox.common@default:default,org.eclipse.pde@default:default,org.eclipse.core.resources.compatibility@default:false,org.eclipse.core.net@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.security@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.rcp@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.update.scheduler@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.sdk@default:default,org.eclipse.swt@default:default,org.eclipse.ui.views@default:default,org.apache.commons.codec@default:default,org.eclipse.core.databinding@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.compare.core@default:default,org.eclipse.update.core@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.core.expressions@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.ui.forms@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.osgi.services@default:default,org.eclipse.help.appserver@default:default,org.eclipse.update.ui@default:default,org.mortbay.jetty.server@default:default,org.junit@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.cvs@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.jface.text@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.ui.ide.application@default:default,org.eclipse.team.core@default:default,org.eclipse.equinox.registry@default:default,org.junit4@default:default,org.eclipse.compare@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.frameworkadmin@default:default,com.api.tools.buildnotes.nl@default:false,org.eclipse.team.cvs.ssh@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.pde.ds.core@default:default,org.apache.ant@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.search@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.apache.commons.httpclient@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ui.intro@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.core.resources@default:default,javax.servlet@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.exemplarysetup@default:default,org.eclipse.ui@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.equinox.preferences@default:default,org.eclipse.core.net.linux.x86@default:false,javax.servlet.jsp@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,com.ibm.icu@default:default,org.eclipse.core.boot@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.osgi.util@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.workbench.compatibility@default:false,org.eclipse.equinox.launcher@default:default,org.apache.lucene.analysis@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.jetty@default:default,org.apache.commons.el@default:default,org.eclipse.equinox.launcher.gtk.linux.x86@default:false,org.eclipse.ui.presentations.r21@default:default,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.equinox.app@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.swt.gtk.linux.x86@default:false,org.eclipse.update.configurator@default:default,org.eclipse.osgi@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.jdt.apt.ui@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.pde.ua.ui@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.team.cvs.ui@default:default,org.eclipse.help.webapp@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.equinox.p2.ui@default:default,org.objectweb.asm@default:default,org.sat4j.core@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.team.ui@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ecf@default:default,org.eclipse.update.core.linux@default:false,org.eclipse.jdt@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.metadata@default:default,org.apache.lucene@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.jobs@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.equinox.simpleconfigurator@default:default,org.eclipse.equinox.p2.core@default:default"/>
<stringAttribute key="selected_target_plugins" value="org.eclipse.team.cvs.core@default:default,com.jcraft.jsch@default:default,org.eclipse.core.commands@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.apache.jasper@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.jsch.core@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.help@default:default,org.eclipse.ui.net@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.help.base@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.mortbay.jetty.util@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.p2.metadata.generator@default:default,org.eclipse.core.filesystem.linux.x86@default:false,org.sat4j.pb@default:default,org.eclipse.platform@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.pde.ds.ui@default:default,org.apache.commons.logging@default:default,org.eclipse.equinox.common@default:default,org.eclipse.pde@default:default,org.eclipse.core.resources.compatibility@default:false,org.eclipse.core.net@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.security@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.rcp@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.equinox.p2.console@default:default,org.eclipse.sdk@default:default,org.eclipse.swt@default:default,org.eclipse.ui.views@default:default,org.apache.commons.codec@default:default,org.eclipse.core.databinding@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.compare.core@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.core.expressions@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.ui.forms@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.osgi.services@default:default,org.eclipse.help.appserver@default:default,org.mortbay.jetty.server@default:default,org.junit@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.cvs@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.jface.text@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.ui.ide.application@default:default,org.eclipse.team.core@default:default,org.eclipse.equinox.registry@default:default,org.junit4@default:default,org.eclipse.compare@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.frameworkadmin@default:default,com.api.tools.buildnotes.nl@default:false,org.eclipse.team.cvs.ssh@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.pde.ds.core@default:default,org.apache.ant@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.search@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.apache.commons.httpclient@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ui.intro@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.core.resources@default:default,javax.servlet@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.exemplarysetup@default:default,org.eclipse.ui@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.equinox.preferences@default:default,org.eclipse.core.net.linux.x86@default:false,javax.servlet.jsp@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,com.ibm.icu@default:default,org.eclipse.core.boot@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.osgi.util@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.workbench.compatibility@default:false,org.eclipse.equinox.launcher@default:default,org.apache.lucene.analysis@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.jetty@default:default,org.apache.commons.el@default:default,org.eclipse.equinox.launcher.gtk.linux.x86@default:false,org.eclipse.ui.presentations.r21@default:default,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.equinox.app@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.swt.gtk.linux.x86@default:false,org.eclipse.osgi@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.jdt.apt.ui@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.pde.ua.ui@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.team.cvs.ui@default:default,org.eclipse.help.webapp@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.equinox.p2.ui@default:default,org.objectweb.asm@default:default,org.sat4j.core@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.team.ui@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ecf@default:default,org.eclipse.jdt@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.metadata@default:default,org.apache.lucene@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.jobs@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.equinox.simpleconfigurator@default:default,org.eclipse.equinox.p2.core@default:default"/>
<stringAttribute key="selected_workspace_plugins" value="org.eclipse.jdt.core.tests.compiler@default:default,org.eclipse.example.mixedmode@default:default,org.eclipse.debug.examples.ui@default:default,org.eclipse.ant.core@default:default,org.eclipse.platform.doc.isv@default:default,org.eclipse.ant.ui@default:default,org.eclipse.jdt.core.tests.builder@default:default,org.eclipse.debug.util@default:default,org.eclipse.platform.doc.user@default:default,com.api.tools.buildnotes.nl@default:false,org.eclipse.jdt.doc.isv@default:default,org.eclipse.ui.console@default:default,org.eclipse.debug.ui@default:default,org.eclipse.pde.api.tools@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.jdt.ui.examples.javafamily@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.doc.user@default:default,org.eclipse.jdt.debug.tests@default:default,org.eclipse.debug.examples.core@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.launching@default:default,refproject@default:default,org.eclipse.ant.tests.ui@default:default,org.eclipse.debug.core@default:default,org.eclipse.ant.tests.core@default:default,org.eclipse.core.variables@default:default,Testing@default:default,com.api.tools.buildnotes@default:default,org.eclipse.test.performance@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.pde.api.tools.ui@default:default,usagetests@default:default,org.eclipse.pde.api.tools.tests@default:default"/>
<booleanAttribute key="show_selected_only" value="false"/>
<booleanAttribute key="tracing" value="false"/>
......
......@@ -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.50.qualifier
Bundle-Version: 3.11.100.qualifier
Bundle-ClassPath: javadebugtests.jar
Bundle-Activator: org.eclipse.jdt.debug.testplugin.JavaTestPlugin
Bundle-Vendor: %providerName
......@@ -52,3 +52,4 @@ Require-Bundle: org.eclipse.ui.ide;resolution:=optional,
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Eclipse-BundleShape: dir
Automatic-Module-Name: org.eclipse.jdt.debug.tests
# To force a version qualifier update, add the bug here
Bug 530709 - Comparator errors in jdt debug and jdt ui in I20180204-2000
/*******************************************************************************
* Copyright (c) 2017 Andrey Loskutov
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Andrey Loskutov <loskutov@gmx.de> - initial API and implementation
*******************************************************************************/
import java.util.concurrent.LinkedTransferQueue;
import java.util.concurrent.TransferQueue;
public class ThreadNameChange {
public static void main(String[] args) throws Exception {
final TransferQueue queue = new LinkedTransferQueue();
Thread t = new Thread(new Runnable() {
public void run() {
Thread thread = Thread.currentThread();
try {
queue.transfer("");
thread.setName("2");
// give debugger time to check the name
queue.transfer("");
} catch (InterruptedException e) {
}
}
}, "1");
t.start();
// wait for thread to start, debugger should see "1" at this breakpoint
queue.take(); // <-- bp 1
System.out.println("thread name: " + t.getName());
// second breakpoint, debugger should see "2" as thread name
queue.take(); // <-- bp 2
System.out.println("thread name: " + t.getName());
}
}
/*******************************************************************************
* Copyright (c) 2017 Andrey Loskutov and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Andrey Loskutov <loskutov@gmx.de> - initial API and implementation
*******************************************************************************/
public class DebugHoverTest18 {
public static void main(String[] args) {
new DebugHoverTest18().run("Hello");
}
private void run(String arg) {
Object var1 = "v0";
int var2 = 2;
String [][] var3 = null;
Long[] args = null;
run(var1, var2, var3, args);
}
private void run(Object arg, int i, String [][] args, Long...objects) {
String var1 = "v1";
run(()->{
String var2 = "v2";
System.out.println(var2);
System.out.println(var1);
System.out.println(arg);
run(()->{
String var3 = "v2";
System.out.println(var2);
System.out.println(var3);
System.out.println(var1);
System.out.println(arg);
});
});
}
/*
* Variables below to check if we don't resolve to wrong frame
*/
@SuppressWarnings("unused")
static void run(Runnable r) {
int var1 = 1;
int var2 = 2;
int var3 = 3;
int arg = 4;
r.run();
}
}
......@@ -14,11 +14,11 @@
<parent>
<artifactId>eclipse.jdt.debug</artifactId>
<groupId>eclipse.jdt.debug</groupId>
<version>4.7.3-SNAPSHOT</version>
<version>4.8.0-SNAPSHOT</version>
</parent>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.debug.tests</artifactId>
<version>3.11.50-SNAPSHOT</version>
<version>3.11.100-SNAPSHOT</version>
<packaging>eclipse-test-plugin</packaging>
<properties>
<code.ignoredWarnings>${tests.ignoredWarnings}</code.ignoredWarnings>
......
......@@ -10,6 +10,9 @@
*******************************************************************************/
package org.eclipse.jdt.debug.testplugin;
import java.util.LinkedHashSet;
import java.util.Set;
import org.eclipse.debug.core.DebugException;
import org.eclipse.jdt.core.dom.Message;
import org.eclipse.jdt.debug.core.IJavaBreakpoint;
......@@ -24,18 +27,18 @@ import org.eclipse.jdt.debug.core.IJavaType;
*/
public class GlobalBreakpointListener implements IJavaBreakpointListener {
public static IJavaBreakpoint ADDED;
public static IJavaBreakpoint HIT;
public static IJavaBreakpoint INSTALLED;
public static IJavaBreakpoint REMOVED;
public static IJavaBreakpoint INSTALLING;
public static Set<IJavaBreakpoint> ADDED = new LinkedHashSet<>();
public static Set<IJavaBreakpoint> HIT = new LinkedHashSet<>();
public static Set<IJavaBreakpoint> INSTALLED = new LinkedHashSet<>();
public static Set<IJavaBreakpoint> REMOVED = new LinkedHashSet<>();
public static Set<IJavaBreakpoint> INSTALLING = new LinkedHashSet<>();
public static void clear() {
ADDED = null;
HIT = null;
INSTALLED = null;
REMOVED = null;
INSTALLING = null;
ADDED.clear();
HIT.clear();
INSTALLED.clear();
REMOVED.clear();
INSTALLING.clear();
}
public GlobalBreakpointListener() {
......@@ -43,7 +46,7 @@ public class GlobalBreakpointListener implements IJavaBreakpointListener {
@Override
public void addingBreakpoint(IJavaDebugTarget target, IJavaBreakpoint breakpoint) {
ADDED = breakpoint;
ADDED.add(breakpoint);
}
@Override
......@@ -56,23 +59,23 @@ public class GlobalBreakpointListener implements IJavaBreakpointListener {
@Override
public int breakpointHit(IJavaThread thread, IJavaBreakpoint breakpoint) {
HIT = breakpoint;
HIT.add(breakpoint);
return DONT_CARE;
}
@Override
public void breakpointInstalled(IJavaDebugTarget target, IJavaBreakpoint breakpoint) {
INSTALLED = breakpoint;
INSTALLED.add(breakpoint);
}
@Override
public void breakpointRemoved(IJavaDebugTarget target, IJavaBreakpoint breakpoint) {
REMOVED = breakpoint;
REMOVED.add(breakpoint);
}
@Override
public int installingBreakpoint(IJavaDebugTarget target, IJavaBreakpoint breakpoint, IJavaType type) {
INSTALLING = breakpoint;
INSTALLING.add(breakpoint);
return DONT_CARE;
}
......
/*******************************************************************************
* Copyright (c) 2017 salesforce.com.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* salesforce.com - initial API and implementation
*******************************************************************************/
public class BulkThreadCreationTest {
public static void main(String[] args) throws Exception {
int count = 1000;
Thread[] threads = new Thread[count];
for (int i = 0; i < count; i++) {
threads[i] = new Thread("bulk-" + i);
threads[i].start();
}
for (int i = 0; i < count; i++) {
threads[i].join();
}
return;
}
}
/*******************************************************************************
* Copyright (c) 2017 Till Brychcy and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Till Brychcy - initial API and implementation
*******************************************************************************/
class MyException extends Exception {
public final int value;
public MyException(int value) {
this.value = value;
}
}
public class MethodExitAndException {
public static void main(String[] args) {
int x = f();
try {
g(x);
} catch (MyException e) {
e.printStackTrace();
}
}
private static int f() {
return 123;
}
private static void g(int i) throws MyException {
throw new MyException(i);
}
}
/*******************************************************************************
* Copyright (c) 2017 Till Brychcy and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Till Brychcy - initial API and implementation
*******************************************************************************/
public class StepUncaught {
public static void main(String[] args) {
try {
f(); // bp
} catch (Throwable e) {
}
g();
}
private static void f() {
throw new RuntimeException("caught");
}
private static void g() {
throw new RuntimeException("uncaught");
}
}
/*******************************************************************************
* Copyright (c) 2016 Till Brychcy and others.
* Copyright (c) 2017 Till Brychcy and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
......@@ -14,11 +14,16 @@ import org.eclipse.debug.core.model.ILineBreakpoint;
import org.eclipse.debug.core.model.IStackFrame;
import org.eclipse.debug.core.model.IVariable;
import org.eclipse.jdt.debug.core.IJavaDebugTarget;
import org.eclipse.jdt.debug.core.IJavaExceptionBreakpoint;
import org.eclipse.jdt.debug.core.IJavaMethodBreakpoint;
import org.eclipse.jdt.debug.core.IJavaObject;
import org.eclipse.jdt.debug.core.IJavaStackFrame;
import org.eclipse.jdt.debug.core.IJavaThread;
import org.eclipse.jdt.debug.core.IJavaValue;
import org.eclipse.jdt.debug.tests.AbstractDebugTest;
import org.eclipse.jdt.internal.debug.ui.IJDIPreferencesConstants;
import org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin;
import org.eclipse.jface.preference.IPreferenceStore;
public class StepResultTests extends AbstractDebugTest {
......@@ -44,7 +49,6 @@ public class StepResultTests extends AbstractDebugTest {
assertEquals("h() returned", varInG.getName());
assertEquals("\"h-i\"", varInG.getValue().toString());
// skip the synthetic via a step filter.
IJavaDebugTarget javaDebugTarget = (IJavaDebugTarget) stackFrame.getDebugTarget();
boolean oldStepFiltersEnabled = javaDebugTarget.isStepFiltersEnabled();
......@@ -470,4 +474,65 @@ public class StepResultTests extends AbstractDebugTest {
}
}
public void testStepUncaught() throws Exception {
IPreferenceStore preferenceStore = JDIDebugUIPlugin.getDefault().getPreferenceStore();
boolean origPrefValue = preferenceStore.getBoolean(IJDIPreferencesConstants.PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS);
preferenceStore.setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS, true);
String typeName = "StepUncaught";
ILineBreakpoint bp = createLineBreakpoint(15, "StepUncaught");
bp.setEnabled(true);
IJavaThread thread = null;
try {
thread = launchAndSuspend(typeName);
IJavaStackFrame stackFrame = (IJavaStackFrame) thread.getTopStackFrame();
assertEquals("main", stackFrame.getMethodName());
stepOver(stackFrame);
stackFrame = (IJavaStackFrame) thread.getTopStackFrame();
assertEquals("main", stackFrame.getMethodName());
assertEquals("f() threw", stackFrame.getVariables()[0].getName());
stepOverToBreakpoint(stackFrame);
stackFrame = (IJavaStackFrame) thread.getTopStackFrame();
assertEquals("g", stackFrame.getMethodName());
}
finally {
preferenceStore.setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS, origPrefValue);
terminateAndRemove(thread);
removeAllBreakpoints();
}
}
public void testMethodResultOnMethodExitAndExceptionBreakpoints() throws Exception {
IPreferenceStore preferenceStore = JDIDebugUIPlugin.getDefault().getPreferenceStore();
boolean origPrefValue = preferenceStore.getBoolean(IJDIPreferencesConstants.PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS);
preferenceStore.setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS, true);
String typeName = "MethodExitAndException";
IJavaMethodBreakpoint methodExitBreakpoint = createMethodBreakpoint("MethodExitAndException", "f", null, false, true);
IJavaExceptionBreakpoint exceptionBreakpoint = createExceptionBreakpoint("MyException", true, true);
methodExitBreakpoint.setEnabled(true);
exceptionBreakpoint.setEnabled(true);
IJavaThread thread = null;
try {
thread = launchAndSuspend(typeName);
IJavaStackFrame stackFrame = (IJavaStackFrame) thread.getTopStackFrame();
assertEquals("f", stackFrame.getMethodName());
assertEquals("f() is returning", stackFrame.getVariables()[0].getName());
resume(thread);
stackFrame = (IJavaStackFrame) thread.getTopStackFrame();
assertEquals("g", stackFrame.getMethodName());
assertEquals("g() is throwing", stackFrame.getVariables()[0].getName());
}
finally {
preferenceStore.setValue(IJDIPreferencesConstants.PREF_SUSPEND_ON_UNCAUGHT_EXCEPTIONS, origPrefValue);
terminateAndRemove(thread);
removeAllBreakpoints();
}
}
}
/*******************************************************************************
* Copyright (c) 2000, 2016 IBM Corporation and others.
* Copyright (c) 2000, 2017 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
......@@ -22,6 +22,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
......@@ -197,9 +198,7 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation
"bug329294", "bug401270", "org.eclipse.debug.tests.targets.HcrClass2", "org.eclipse.debug.tests.targets.HcrClass3", "org.eclipse.debug.tests.targets.HcrClass4",
"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", "TriggerPoint_01" };
final String[] LAUNCH_CONFIG_NAMES_1_8 = {"LargeSourceFile"};
"StepResult2", "StepResult3", "StepUncaught", "TriggerPoint_01", "BulkThreadCreationTest", "MethodExitAndException" };
/**
* the default timeout
......@@ -427,6 +426,7 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation
if (!loaded17) {
jp = createProject(ONE_SEVEN_PROJECT_NAME, JavaProjectHelper.TEST_1_7_SRC_DIR.toString(), JavaProjectHelper.JAVA_SE_1_7_EE_NAME, false);
cfgs.add(createLaunchConfiguration(jp, LiteralTests17.LITERAL_TYPE_NAME));
cfgs.add(createLaunchConfiguration(jp, "ThreadNameChange"));
loaded17 = true;
waitForBuild();
}
......@@ -459,6 +459,7 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation
cfgs.add(createLaunchConfiguration(jp, "EvalTest18"));
cfgs.add(createLaunchConfiguration(jp, "EvalTestIntf18"));
cfgs.add(createLaunchConfiguration(jp, "EvalIntfSuperDefault"));
cfgs.add(createLaunchConfiguration(jp, "DebugHoverTest18"));
loaded18 = true;
waitForBuild();
}
......@@ -475,7 +476,7 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation
catch (CoreException ce) {
//ignore
}
handleProjectCreationException(e, ONE_SEVEN_PROJECT_NAME, jp);
handleProjectCreationException(e, ONE_EIGHT_PROJECT_NAME, jp);
}
}
......@@ -2474,6 +2475,7 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation
ILaunchConfigurationWorkingCopy config = type.newInstance(project.getProject().getFolder(LAUNCHCONFIGURATIONS), configName);
config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, mainTypeName);
config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, project.getElementName());
setEnvironment(config);
Set<String> modes = new HashSet<>();
modes.add(ILaunchManager.RUN_MODE);
config.setPreferredLaunchDelegate(modes, LOCAL_JAVA_APPLICATION_TYPE_ID);
......@@ -2496,6 +2498,7 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation
ILaunchConfigurationWorkingCopy config = type.newInstance(project.getProject().getFolder(containername), mainTypeName);
config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, mainTypeName);
config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, project.getElementName());
setEnvironment(config);
Set<String> modes = new HashSet<>();
modes.add(ILaunchManager.RUN_MODE);
config.setPreferredLaunchDelegate(modes, LOCAL_JAVA_APPLICATION_TYPE_ID);
......@@ -2510,6 +2513,14 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation
return config.doSave();
}
private void setEnvironment(ILaunchConfigurationWorkingCopy workingCopy) {
Map<String, String> env = getLaunchManager().getNativeEnvironment().entrySet().stream()
.filter(e -> !"JAVA_TOOL_OPTIONS".equals(e.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
workingCopy.setAttribute(ILaunchManager.ATTR_APPEND_ENVIRONMENT_VARIABLES, false);
workingCopy.setAttribute(ILaunchManager.ATTR_ENVIRONMENT_VARIABLES, env);
}
/**
* When a test throws the 'try again' exception, try it again.
* @see junit.framework.TestCase#runBare()
......@@ -2780,4 +2791,3 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation
}
}
......@@ -39,6 +39,7 @@ import org.eclipse.jdt.debug.tests.breakpoints.TargetPatternBreakpointTests;
import org.eclipse.jdt.debug.tests.breakpoints.TestToggleBreakpointsTarget;
import org.eclipse.jdt.debug.tests.breakpoints.TestToggleBreakpointsTarget8;
import org.eclipse.jdt.debug.tests.breakpoints.ThreadFilterBreakpointsTests;
import org.eclipse.jdt.debug.tests.breakpoints.ThreadNameChangeTests;
import org.eclipse.jdt.debug.tests.breakpoints.TriggerPointBreakpointsTests;
import org.eclipse.jdt.debug.tests.breakpoints.TypeNameBreakpointTests;
import org.eclipse.jdt.debug.tests.breakpoints.WatchpointTests;
......@@ -58,6 +59,7 @@ import org.eclipse.jdt.debug.tests.core.ConsoleTests;
import org.eclipse.jdt.debug.tests.core.DebugEventTests;
import org.eclipse.jdt.debug.tests.core.EEDefinitionTests;
import org.eclipse.jdt.debug.tests.core.EnvironmentTests;
import org.eclipse.jdt.debug.tests.core.EventDispatcherTest;
import org.eclipse.jdt.debug.tests.core.EventSetTests;
import org.eclipse.jdt.debug.tests.core.ExecutionEnvironmentTests;
import org.eclipse.jdt.debug.tests.core.HcrTests;
......@@ -117,7 +119,7 @@ import org.eclipse.jdt.debug.tests.sourcelookup.SourceLocationTests;
import org.eclipse.jdt.debug.tests.sourcelookup.SourceLookupTests;
import org.eclipse.jdt.debug.tests.sourcelookup.TypeResolutionTests;
import org.eclipse.jdt.debug.tests.state.RefreshStateTests;
import org.eclipse.jdt.debug.tests.ui.DebugViewTests;
import org.eclipse.jdt.debug.tests.ui.DebugHoverTests;
import org.eclipse.jdt.debug.tests.ui.DetailPaneManagerTests;
import org.eclipse.jdt.debug.tests.ui.OpenFromClipboardTests;
import org.eclipse.jdt.debug.tests.ui.ViewManagementTests;
......@@ -190,6 +192,7 @@ public class AutomatedSuite extends DebugSuite {
addTest(new TestSuite(BreakpointListenerTests.class));
addTest(new TestSuite(JavaBreakpointListenerTests.class));
addTest(new TestSuite(MiscBreakpointsTests.class));
addTest(new TestSuite(ThreadNameChangeTests.class));
addTest(new TestSuite(BreakpointLocationVerificationTests.class));
addTest(new TestSuite(RunToLineTests.class));
addTest(new TestSuite(TestToggleBreakpointsTarget.class));
......@@ -279,6 +282,7 @@ public class AutomatedSuite extends DebugSuite {
addTest(new TestSuite(StratumTests.class));
addTest(new TestSuite(JavaDebugTargetTests.class));
addTest(new TestSuite(WorkingDirectoryTests.class));
addTest(new TestSuite(EventDispatcherTest.class));
// Refactoring tests
//TODO: project rename
......@@ -321,7 +325,11 @@ public class AutomatedSuite extends DebugSuite {
addTest(new TestSuite(ViewManagementTests.class));
// Debug view tests
addTest(new TestSuite(DebugViewTests.class));
// Test is not stable, see bug 516024
// addTest(new TestSuite(DebugViewTests.class));
// Debug hover tests
addTest(new TestSuite(DebugHoverTests.class));
// Leak tests
addTest(new TestSuite(InstructionPointerTests.class));
......
......@@ -210,7 +210,10 @@ public class ConditionalBreakpointsTests extends AbstractDebugTest {
assertNotNull("Missing top frame", frame);
assertEquals("Wrong location", "calculateSum", frame.getName());
thread.resume();
assertFalse("Thread should be resumed", thread.isSuspended());
Thread.sleep(300);
// TODO: see bug 519382 - [tests] testSuspendLongRunningCondition: thread sporadically stays suspended
// For whatever reason we sometimes see that thread is not resumed.
// assertFalse("Thread should be resumed", thread.isSuspended());
} finally {
terminateAndRemove(thread);
removeAllBreakpoints();
......
......@@ -171,9 +171,9 @@ public class JavaBreakpointListenerTests extends AbstractDebugTest implements IJ
*/
class Collector implements IJavaBreakpointListener {
public List<IJavaBreakpoint> HIT = new ArrayList<IJavaBreakpoint>();
public List<IJavaLineBreakpoint> COMPILATION_ERRORS = new ArrayList<IJavaLineBreakpoint>();
public List<IJavaLineBreakpoint> RUNTIME_ERRORS = new ArrayList<IJavaLineBreakpoint>();
public List<IJavaBreakpoint> HIT = new ArrayList<>();
public List<IJavaLineBreakpoint> COMPILATION_ERRORS = new ArrayList<>();
public List<IJavaLineBreakpoint> RUNTIME_ERRORS = new ArrayList<>();
@Override
public void addingBreakpoint(IJavaDebugTarget target, IJavaBreakpoint breakpoint) {
......@@ -989,14 +989,14 @@ public class JavaBreakpointListenerTests extends AbstractDebugTest implements IJ
try {
thread= launchToLineBreakpoint(typeName, bp);
assertEquals("Should be ADDED", bp, GlobalBreakpointListener.ADDED);
assertEquals("Should be INSTALLING", bp, GlobalBreakpointListener.INSTALLING);
assertEquals("Should be INSTALLED", bp, GlobalBreakpointListener.INSTALLED);
assertEquals("Should be HIT", bp, GlobalBreakpointListener.HIT);
assertNull("Should not be REMOVED", GlobalBreakpointListener.REMOVED);
assertTrue("Should be ADDED", GlobalBreakpointListener.ADDED.contains(bp));
assertTrue("Should be INSTALLING", GlobalBreakpointListener.INSTALLING.contains(bp));
assertTrue("Should be INSTALLED", GlobalBreakpointListener.INSTALLED.contains(bp));
assertTrue("Should be HIT", GlobalBreakpointListener.HIT.contains(bp));
assertFalse("Should not be REMOVED", GlobalBreakpointListener.REMOVED.contains(bp));
bp.delete();
assertEquals("Should be REMOVED", bp, GlobalBreakpointListener.REMOVED);
assertTrue("Should be REMOVED", GlobalBreakpointListener.REMOVED.contains(bp));
} finally {
terminateAndRemove(thread);
removeAllBreakpoints();
......