Bug 568813 - Empty inspect window and hover

The empty hover on BigSur is caused due to SWT Bug 567787- Setting Shell visible doesn't send SWT.SetData for Virtual Tree/Table. Due to this the virtual tree in the hover is not populated when set to visible.

The workaround is to call getText on the item so that it is already created when hover is shown.

Change-Id: I9d49902c4013f97db4005c948205aa37ccb4c327
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ExpressionInformationControlCreator.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ExpressionInformationControlCreator.java
index 3262c54..8365652 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ExpressionInformationControlCreator.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/ExpressionInformationControlCreator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2019 IBM Corporation and others.
+ * Copyright (c) 2008, 2020 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -14,6 +14,7 @@
 package org.eclipse.jdt.internal.debug.ui;
 
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.debug.core.model.IVariable;
 import org.eclipse.debug.internal.ui.SWTFactory;
 import org.eclipse.debug.internal.ui.model.elements.ElementContentProvider;
@@ -55,6 +56,7 @@
 import org.eclipse.swt.widgets.Layout;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.IWorkbenchPartSite;
 
@@ -455,6 +457,12 @@
 			if (input instanceof IVariable) {
 				fVariable = (IVariable) input;
 		        fViewer.setInput(new TreeRoot());
+				// Workaround for empty hover popup dialog due to changed Mac API behaviour
+				if (Platform.OS_MACOSX.equals(Platform.getOS())) {
+					fTree.setItemCount(1);
+					TreeItem item = fTree.getItem(0);
+					item.getText();
+				}
 			}
 		}