From de24f2b9f25bc28f079242619ce5f41f6ca38707 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Thu, 24 Jan 2013 15:54:34 +0100 Subject: Fix crash when module ResourceURL is invalid --- src/main/java/com/c2kernel/utils/Resource.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/main/java/com/c2kernel/utils/Resource.java') diff --git a/src/main/java/com/c2kernel/utils/Resource.java b/src/main/java/com/c2kernel/utils/Resource.java index 3065f6a..541c2dc 100644 --- a/src/main/java/com/c2kernel/utils/Resource.java +++ b/src/main/java/com/c2kernel/utils/Resource.java @@ -6,6 +6,7 @@ import java.net.URL; import java.util.HashMap; import java.util.Hashtable; +import com.c2kernel.common.InvalidDataException; import com.c2kernel.common.ObjectNotFoundException; /************************************************************************** @@ -15,9 +16,13 @@ import com.c2kernel.common.ObjectNotFoundException; **************************************************************************/ public class Resource { static private Hashtable txtCache = new Hashtable(); - static private URL baseURL = getURLorResURL("com/c2kernel/utils/resources/"); + static private URL baseURL; static private HashMap moduleBaseURLs = new HashMap(); + public static void initKernelBaseURL() throws InvalidDataException { + baseURL = getURLorResURL("com/c2kernel/utils/resources/"); + } + public static URL getKernelBaseURL() { return baseURL; } @@ -31,7 +36,7 @@ public class Resource { Logger.msg("Adding resource URL for "+ns+": "+newBaseURL.toString()); } - public static void addModuleBaseURL(String ns, String newBaseURL) { + public static void addModuleBaseURL(String ns, String newBaseURL) throws InvalidDataException { addModuleBaseURL(ns, getURLorResURL(newBaseURL)); } @@ -47,7 +52,7 @@ public class Resource { return new URL(moduleBaseURLs.get(ns), resName); } - private static URL getURLorResURL(String newURL) { + private static URL getURLorResURL(String newURL) throws InvalidDataException { URL result; try { result = new URL(newURL); @@ -56,6 +61,10 @@ public class Resource { //of files resolvable from the CLASSPATH result = Resource.class.getClassLoader().getResource(newURL); } + if (result == null) { + Logger.error("URL "+newURL+" could not be found"); + throw new InvalidDataException(); + } return result; } /************************************************************************** -- cgit v1.2.3