private static URL getURL()

in src/main/java/org/apache/bsf/util/StringUtils.java [206:237]


    private static URL getURL(final URL contextURL, final String spec, final int recursiveDepth) throws MalformedURLException {
        URL url = null;

        try {
            url = new URL(contextURL, spec);

            try {
                url.openStream();
            } catch (final IOException ioe1) {
                throw new MalformedURLException("This file was not found: " + url);
            }
        } catch (final MalformedURLException e1) {
            url = new URL("file", "", spec);

            try {
                url.openStream();
            } catch (final IOException ioe2) {
                if (contextURL != null) {
                    final String contextFileName = contextURL.getFile();
                    final String parentName = new File(contextFileName).getParent();

                    if (parentName != null && recursiveDepth < 3) {
                        return getURL(new URL("file", "", parentName + '/'), spec, recursiveDepth + 1);
                    }
                }

                throw new MalformedURLException("This file was not found: " + url);
            }
        }

        return url;
    }