Bug569600 : Fix debug inspection popup issues

This will mainly fix two issues, first is the issue due to wrong focus
hand over events on some platforms which cause the inspection popup to
close it self as soon as it is opened. The second issue which is AIOBE
is due to trying to evaluate a empty snippet string.

Change-Id: I9bfeceff94b0469d54b98839af2b0f80009e56a8
Signed-off-by: Gayan Perera <gayanper@gmail.com>
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EvaluateAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EvaluateAction.java
index 60641c0..ca23f88 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EvaluateAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EvaluateAction.java
@@ -245,7 +245,7 @@
                         IEvaluationEngine engine = null;
                         try {
                             Object selection= getSelectedObject();
-                            if (!(selection instanceof String)) {
+							if (!(selection instanceof String) || ((String) selection).isEmpty()) {
                                 return;
                             }
                             String expression= (String)selection;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/PopupInspectAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/PopupInspectAction.java
index 2926229..c76491c 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/PopupInspectAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/PopupInspectAction.java
@@ -20,6 +20,7 @@
 import org.eclipse.jdt.internal.debug.ui.display.JavaInspectExpression;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.texteditor.ITextEditor;
 
@@ -71,6 +72,8 @@
         		return returnValue;
         	}
         };
-        displayPopup.open();
+		// Make sure the popup is shown after the BusyIndicator has focused the previous focus owner. This was a issue
+		// in MacOS which is reported under https://bugs.eclipse.org/bugs/show_bug.cgi?id=569600
+		Display.getDefault().asyncExec(displayPopup::open);
     }
 }