Bug 564084 - Use deferred image descriptor
Change-Id: I17cc24a4fd5ed006e1f6694d6cedb2de0d7e505e
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
diff --git a/org.eclipse.jdt.debug.ui/META-INF/MANIFEST.MF b/org.eclipse.jdt.debug.ui/META-INF/MANIFEST.MF
index 072c492..4a7d4f3 100644
--- a/org.eclipse.jdt.debug.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.jdt.debug.ui/META-INF/MANIFEST.MF
@@ -30,6 +30,7 @@
org.eclipse.jdt.internal.debug.ui.threadgroups;x-internal:=true,
org.eclipse.jdt.internal.debug.ui.variables;x-internal:=true
Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.jface;bundle-version="[3.21.0,4.0.0)",
org.eclipse.jface.text;bundle-version="[3.5.0,4.0.0)",
org.eclipse.ui.workbench.texteditor;bundle-version="[3.5.0,4.0.0)",
org.eclipse.ui.editors;bundle-version="[3.5.0,4.0.0)",
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugImages.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugImages.java
index 3be8d8f..50f3d04 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugImages.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugImages.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2018 IBM Corporation and others.
+ * Copyright (c) 2000, 2020 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -13,15 +13,13 @@
*******************************************************************************/
package org.eclipse.jdt.internal.debug.ui;
-import java.net.URL;
-
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.graphics.Image;
import org.osgi.framework.Bundle;
+import org.osgi.framework.FrameworkUtil;
/**
* Bundle of most images used by the Java debug plug-in.
@@ -239,15 +237,11 @@
* this plugin class is found (i.e. typically the packages directory)
*/
private final static void declareRegistryImage(String key, String path) {
- ImageDescriptor desc = ImageDescriptor.getMissingImageDescriptor();
- Bundle bundle = Platform.getBundle(JDIDebugUIPlugin.getUniqueIdentifier());
- URL url = null;
- if (bundle != null){
- url = FileLocator.find(bundle, new Path(path), null);
- if(url != null) {
- desc = ImageDescriptor.createFromURL(url);
- }
- }
- fgImageRegistry.put(key, desc);
+ Bundle bundle = FrameworkUtil.getBundle(JavaDebugImages.class);
+ if (bundle == null) {
+ fgImageRegistry.put(key, ImageDescriptor.getMissingImageDescriptor());
+ } else {
+ fgImageRegistry.put(key, ImageDescriptor.createFromURLSupplier(true, () -> FileLocator.find(bundle, new Path(path), null)));
+ }
}
}