private void loadProperties() {
        InputStream is = null;
        Throwable error = null;

        try {
            String configUrl = getConfigUrl();
            if (configUrl != null) {
                is = (new URL(configUrl)).openStream();
            }
        } catch (Throwable t) {
            // Ignore
        }

        if (is == null) {
            try {
                File home = new File(getApplicationHome());
                File conf = new File(home, "config");
                File propFile = new File(conf, "launcher.properties");
                is = new FileInputStream(propFile);
            } catch (Throwable t) {
                // Ignore
            }
        }

        if (is != null) {
            try {
                properties = new Properties();
                properties.load(is);
                is.close();
            } catch (Throwable t) {
                error = t;
            }
        }

        if ((is == null) || (error != null)) {
            // Do something
            LOG.log(Level.WARNING, "Failed to load launcher.properties", error);
            // That's fine - we have reasonable defaults.
            properties = new Properties();
        }
    }