Program: 90654
Project: 90654
Buggy source:
/** 
 * Load the configuration from a URI.
 * @param configLocation A URI representing the location of the configuration.
 * @return The ConfigurationSource for the configuration.
 */
protected ConfigurationSource getInputFromUri(final URI configLocation){
  final File configFile=FileUtils.fileFromUri(configLocation);
  if (configFile != null && configFile.exists() && configFile.canRead()) {
    try {
      return new ConfigurationSource(new FileInputStream(configFile),configFile);
    }
 catch (    final FileNotFoundException ex) {
      LOGGER.error("String_Node_Str",configLocation.getPath(),ex);
    }
  }
  final String scheme=configLocation.getScheme();
  final boolean isClassLoaderScheme=scheme != null && scheme.equals(CLASS_LOADER_SCHEME);
  final boolean isClassPathScheme=scheme != null && !isClassLoaderScheme && scheme.equals(CLASS_PATH_SCHEME);
  if (scheme == null || isClassLoaderScheme || isClassPathScheme) {
    final ClassLoader loader=Loader.getThreadContextClassLoader();
    String path;
    if (isClassLoaderScheme || isClassPathScheme) {
      path=configLocation.getSchemeSpecificPart();
    }
 else {
      path=configLocation.getPath();
    }
    final ConfigurationSource source=getInputFromResource(path,loader);
    if (source != null) {
      return source;
    }
  }
  try {
    return new ConfigurationSource(configLocation.toURL().openStream(),configLocation.getPath());
  }
 catch (  final MalformedURLException ex) {
    LOGGER.error("String_Node_Str",configLocation.toString(),ex);
  }
catch (  final Exception ex) {
    LOGGER.error("String_Node_Str",configLocation.toString(),ex);
  }
  return null;
}

Fixed version (ground truth):
/** 
 * Load the configuration from a URI.
 * @param configLocation A URI representing the location of the configuration.
 * @return The ConfigurationSource for the configuration.
 */
protected ConfigurationSource getInputFromUri(final URI configLocation){
  final File configFile=FileUtils.fileFromUri(configLocation);
  if (configFile != null && configFile.exists() && configFile.canRead()) {
    try {
      return new ConfigurationSource(new FileInputStream(configFile),configFile);
    }
 catch (    final FileNotFoundException ex) {
      LOGGER.error("String_Node_Str",configLocation.getPath(),ex);
    }
  }
  final String scheme=configLocation.getScheme();
  final boolean isClassLoaderScheme=scheme != null && scheme.equals(CLASS_LOADER_SCHEME);
  final boolean isClassPathScheme=scheme != null && !isClassLoaderScheme && scheme.equals(CLASS_PATH_SCHEME);
  if (scheme == null || isClassLoaderScheme || isClassPathScheme) {
    final ClassLoader loader=Loader.getThreadContextClassLoader();
    String path;
    if (isClassLoaderScheme || isClassPathScheme) {
      path=configLocation.getSchemeSpecificPart();
    }
 else {
      path=configLocation.getPath();
    }
    final ConfigurationSource source=getInputFromResource(path,loader);
    if (source != null) {
      return source;
    }
  }
  try {
    return new ConfigurationSource(configLocation.toURL().openStream(),configLocation.toURL());
  }
 catch (  final MalformedURLException ex) {
    LOGGER.error("String_Node_Str",configLocation.toString(),ex);
  }
catch (  final Exception ex) {
    LOGGER.error("String_Node_Str",configLocation.toString(),ex);
  }
  return null;
}