* make sure to gracefully ignore all cache errors
This commit is contained in:
parent
fa6909ddfe
commit
30f05c1f9c
@ -5,6 +5,8 @@ package net.sourceforge.filebot;
|
|||||||
import java.awt.Image;
|
import java.awt.Image;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
import javax.swing.Icon;
|
import javax.swing.Icon;
|
||||||
@ -19,12 +21,12 @@ public final class ResourceManager {
|
|||||||
|
|
||||||
private static final Cache cache = CacheManager.getInstance().getCache("resource");
|
private static final Cache cache = CacheManager.getInstance().getCache("resource");
|
||||||
|
|
||||||
|
|
||||||
public static Icon getIcon(String name) {
|
public static Icon getIcon(String name) {
|
||||||
return getIcon(name, null);
|
return getIcon(name, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static Icon getIcon(String name, String def) {
|
public static Icon getIcon(String name, String def) {
|
||||||
Icon icon = probeCache(name, Icon.class);
|
Icon icon = probeCache(name, Icon.class);
|
||||||
|
|
||||||
@ -39,12 +41,12 @@ public final class ResourceManager {
|
|||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static Icon getFlagIcon(String languageCode) {
|
public static Icon getFlagIcon(String languageCode) {
|
||||||
return getIcon(String.format("flags/%s", languageCode));
|
return getIcon(String.format("flags/%s", languageCode));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static Image getImage(String name) {
|
public static Image getImage(String name) {
|
||||||
try {
|
try {
|
||||||
return ImageIO.read(getImageResource(name));
|
return ImageIO.read(getImageResource(name));
|
||||||
@ -53,7 +55,7 @@ public final class ResourceManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the URL of an image resource in this jar. Image must be located in <code>resources/</code> and the file type
|
* Get the URL of an image resource in this jar. Image must be located in <code>resources/</code> and the file type
|
||||||
* is assumed to be png.
|
* is assumed to be png.
|
||||||
@ -65,7 +67,7 @@ public final class ResourceManager {
|
|||||||
return ResourceManager.class.getResource("resources/" + name + ".png");
|
return ResourceManager.class.getResource("resources/" + name + ".png");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static URL getImageResource(String name, String def) {
|
private static URL getImageResource(String name, String def) {
|
||||||
URL resource = getImageResource(name);
|
URL resource = getImageResource(name);
|
||||||
|
|
||||||
@ -75,25 +77,33 @@ public final class ResourceManager {
|
|||||||
return resource;
|
return resource;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static <T> T probeCache(String name, Class<T> type) {
|
private static <T> T probeCache(String name, Class<T> type) {
|
||||||
Element entry = cache.get(type.getName() + ":" + name);
|
try {
|
||||||
|
Element entry = cache.get(type.getName() + ":" + name);
|
||||||
if (entry != null) {
|
|
||||||
return type.cast(entry.getObjectValue());
|
if (entry != null) {
|
||||||
|
return type.cast(entry.getObjectValue());
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
Logger.getLogger(ResourceManager.class.getName()).log(Level.WARNING, e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static <T> T populateCache(String name, Class<? super T> type, T value) {
|
private static <T> T populateCache(String name, Class<? super T> type, T value) {
|
||||||
cache.put(new Element(type.getName() + ":" + name, value));
|
try {
|
||||||
|
cache.put(new Element(type.getName() + ":" + name, value));
|
||||||
|
} catch (Exception e) {
|
||||||
|
Logger.getLogger(ResourceManager.class.getName()).log(Level.WARNING, e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dummy constructor to prevent instantiation.
|
* Dummy constructor to prevent instantiation.
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user