< prev index next >
src/share/classes/sun/awt/SunToolkit.java
Print this page
@@ -713,36 +713,39 @@
public static boolean getSunAwtErasebackgroundonresize() {
return AccessController.doPrivileged(new GetBooleanAction("sun.awt.erasebackgroundonresize"));
}
- static final SoftCache imgCache = new SoftCache();
+ static final SoftCache fileImgCache = new SoftCache();
+
+ static final SoftCache urlImgCache = new SoftCache();
static Image getImageFromHash(Toolkit tk, URL url) {
checkPermissions(url);
- synchronized (imgCache) {
- Image img = (Image)imgCache.get(url);
+ synchronized (urlImgCache) {
+ String key = url.toString();
+ Image img = (Image)urlImgCache.get(key);
if (img == null) {
try {
img = tk.createImage(new URLImageSource(url));
- imgCache.put(url, img);
+ urlImgCache.put(key, img);
} catch (Exception e) {
}
}
return img;
}
}
static Image getImageFromHash(Toolkit tk,
String filename) {
checkPermissions(filename);
- synchronized (imgCache) {
- Image img = (Image)imgCache.get(filename);
+ synchronized (fileImgCache) {
+ Image img = (Image)fileImgCache.get(filename);
if (img == null) {
try {
img = tk.createImage(new FileImageSource(filename));
- imgCache.put(filename, img);
+ fileImgCache.put(filename, img);
} catch (Exception e) {
}
}
return img;
}
@@ -756,32 +759,33 @@
return getImageFromHash(this, url);
}
protected Image getImageWithResolutionVariant(String fileName,
String resolutionVariantName) {
- synchronized (imgCache) {
+ synchronized (fileImgCache) {
Image image = getImageFromHash(this, fileName);
if (image instanceof MultiResolutionImage) {
return image;
}
Image resolutionVariant = getImageFromHash(this, resolutionVariantName);
image = createImageWithResolutionVariant(image, resolutionVariant);
- imgCache.put(fileName, image);
+ fileImgCache.put(fileName, image);
return image;
}
}
protected Image getImageWithResolutionVariant(URL url,
URL resolutionVariantURL) {
- synchronized (imgCache) {
+ synchronized (urlImgCache) {
Image image = getImageFromHash(this, url);
if (image instanceof MultiResolutionImage) {
return image;
}
Image resolutionVariant = getImageFromHash(this, resolutionVariantURL);
image = createImageWithResolutionVariant(image, resolutionVariant);
- imgCache.put(url, image);
+ String key = url.toString();
+ urlImgCache.put(key, image);
return image;
}
}
@@ -882,12 +886,17 @@
}
}
return null;
}
- protected static boolean imageCached(Object key) {
- return imgCache.containsKey(key);
+ protected static boolean imageCached(String fileName) {
+ return fileImgCache.containsKey(fileName);
+ }
+
+ protected static boolean imageCached(URL url) {
+ String key = url.toString();
+ return urlImgCache.containsKey(key);
}
protected static boolean imageExists(String filename) {
if (filename != null) {
checkPermissions(filename);
< prev index next >