Fixed bug 332109: Canceling 'Open from Clipboard' results in entry dialog
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenFromClipboardAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenFromClipboardAction.java
index c191da9..44fd716 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenFromClipboardAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenFromClipboardAction.java
@@ -251,20 +251,23 @@
private static void handleSingleLineInput(String inputText) {
List matches = new ArrayList();
- int line = getJavaElementMatches(inputText, matches);
- handleMatches(matches, line, inputText);
+ try {
+ int line= getJavaElementMatches(inputText, matches);
+ handleMatches(matches, line, inputText);
+ } catch (InterruptedException ex) {
+ // Do nothing
+ }
}
/**
* Parse the input text and search for the corresponding Java elements.
*
- * @param inputText
- * the line number
- * @param matches
- * matched Java elements
+ * @param inputText the line number
+ * @param matches matched Java elements
* @return the line number
+ * @throws InterruptedException if canceled by the user
*/
- private static int getJavaElementMatches(String inputText, List matches) {
+ private static int getJavaElementMatches(String inputText, List matches) throws InterruptedException {
String s = inputText.trim();
switch (getMatchingPattern(s)) {
case JAVA_FILE_LINE: {
@@ -344,12 +347,11 @@
/**
* Perform a Java search for the type and return the corresponding Java elements.
*
- * @param typeName
- * the Type name
- * @param matches
- * matched Java elements
+ * @param typeName the Type name
+ * @param matches matched Java elements
+ * @throws InterruptedException if canceled by the user
*/
- private static void getTypeMatches(final String typeName, final List matches) {
+ private static void getTypeMatches(final String typeName, final List matches) throws InterruptedException {
executeRunnable(new IRunnableWithProgress() {
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
doTypeSearch(typeName, matches, monitor);
@@ -361,12 +363,11 @@
* Perform a Java search for methods and constructors and return the corresponding Java
* elements.
*
- * @param s
- * the method pattern
- * @param matches
- * matched Java elements
+ * @param s the method pattern
+ * @param matches matched Java elements
+ * @throws InterruptedException if canceled by the user
*/
- private static void getMethodMatches(final String s, final List matches) {
+ private static void getMethodMatches(final String s, final List matches) throws InterruptedException {
executeRunnable(new IRunnableWithProgress() {
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
doMemberSearch(s, matches, true, true, false, monitor, 100);
@@ -378,12 +379,11 @@
* Perform a Java search for fields, methods and constructors and return the corresponding Java
* elements.
*
- * @param s
- * the member pattern
- * @param matches
- * matched Java elements
+ * @param s the member pattern
+ * @param matches matched Java elements
+ * @throws InterruptedException if canceled by the user
*/
- private static void getMemberMatches(final String s, final List matches) {
+ private static void getMemberMatches(final String s, final List matches) throws InterruptedException {
executeRunnable(new IRunnableWithProgress() {
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
doMemberSearch(s, matches, true, true, true, monitor, 100);
@@ -395,12 +395,11 @@
* Perform a Java search for types, fields and methods and return the corresponding Java
* elements.
*
- * @param s
- * the qualified name pattern
- * @param matches
- * matched Java elements
+ * @param s the qualified name pattern
+ * @param matches matched Java elements
+ * @throws InterruptedException if canceled by the user
*/
- private static void getNameMatches(final String s, final List matches) {
+ private static void getNameMatches(final String s, final List matches) throws InterruptedException {
executeRunnable(new IRunnableWithProgress() {
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
SubMonitor progress = SubMonitor.convert(monitor, 100);
@@ -411,17 +410,23 @@
});
}
- private static void executeRunnable(IRunnableWithProgress runnableWithProgress) {
+ private static void executeRunnable(IRunnableWithProgress runnableWithProgress) throws InterruptedException {
try {
PlatformUI.getWorkbench().getProgressService().busyCursorWhile(runnableWithProgress);
} catch (InvocationTargetException e) {
JDIDebugUIPlugin.log(e);
- } catch (InterruptedException e) {
- // Do nothing
}
}
- private static void handleMatches(List matches, int line, String inputText) {
+ /**
+ * Handles the given matches.
+ *
+ * @param matches matched Java elements
+ * @param line the line number
+ * @param inputText the input text
+ * @throws InterruptedException if canceled by the user
+ */
+ private static void handleMatches(List matches, int line, String inputText) throws InterruptedException {
if (matches.size() > 1) {
int flags = JavaElementLabelProvider.SHOW_DEFAULT | JavaElementLabelProvider.SHOW_QUALIFIED | JavaElementLabelProvider.SHOW_ROOT;
IWorkbenchWindow window = JDIDebugUIPlugin.getActiveWorkbenchWindow();
@@ -510,8 +515,7 @@
/**
* Opens an text input dialog to let the user refine the input text.
*
- * @param inputText
- * the input text
+ * @param inputText the input text
*/
private static void openInputEditDialog(String inputText) {
IWorkbenchWindow window = JDIDebugUIPlugin.getActiveWorkbenchWindow();