Program: 5153
Project: 5153
Buggy source:
/** 
 * Loads the extensions with basic class loading.
 * @param registry the Eclipse platform extension registry
 * @param eid extension point id
 */
@SuppressWarnings("String_Node_Str") private void loadExtensions(){
  final IConfiguration config=Configuration.getSingleton();
  final String pluginsDirName=Tools.concatFileName(config.getAppRootDirectory(),config.getPropertyAsStr(IConfiguration.CONF_PLUGINS_FOLDER));
  final File pluginsDir=new File(pluginsDirName);
  final String defExtensionsFileName=pluginsDirName + File.separatorChar + EXTENSIONS_FILE_NAME;
  final File defExtensionsFile=new File(defExtensionsFileName);
  final String EXTENSION_FILE_PATH=config.DEFAULT_PLUGINS_FOLDER_IN_CLASSPATH + '/' + EXTENSIONS_FILE_NAME;
  Set<URL> extensioInfoURLs=new HashSet<URL>();
  Enumeration<URL> eURLs;
  try {
    eURLs=ClassLoader.getSystemResources(EXTENSION_FILE_PATH);
    while (eURLs.hasMoreElements()) {
      extensioInfoURLs.add(eURLs.nextElement());
    }
    URL enginePathURL=this.getClass().getClassLoader().getResource(EXTENSION_FILE_PATH);
    if (enginePathURL != null) {
      extensioInfoURLs.add(enginePathURL);
    }
  }
 catch (  IOException e1) {
  }
  if (defExtensionsFile.exists()) {
    try {
      extensioInfoURLs.add(new URL("String_Node_Str" + defExtensionsFileName));
    }
 catch (    MalformedURLException e1) {
      logger.warn("String_Node_Str",defExtensionsFile,e1.getMessage());
    }
  }
  for (  URL url : extensioInfoURLs)   logger.debug("String_Node_Str",url);
  if (extensioInfoURLs.size() == 0)   logger.warn("String_Node_Str");
  Set<String> extensionClasses=new HashSet<String>();
  for (  URL url : extensioInfoURLs) {
    try {
      extensionClasses.addAll(Tools.readLines(url));
    }
 catch (    IOException e) {
      e.printStackTrace();
    }
  }
  ClassLoader cl=this.getClass().getClassLoader();
  if (pluginsDir.exists()) {
    String[] names=Tools.getFileNames(pluginsDirName,"String_Node_Str");
    ArrayList<URL> urls=new ArrayList<URL>();
    if (names.length > 0) {
      for (      String str : names) {
        final String jarName=Tools.concatFileName(pluginsDirName,str);
        try {
          urls.add(new URL("String_Node_Str" + jarName));
        }
 catch (        MalformedURLException e) {
          logger.warn("String_Node_Str",jarName);
        }
      }
    }
    for (    URL url : urls)     logger.debug("String_Node_Str",url);
    cl=new URLClassLoader(urls.toArray(new URL[]{}),this.getClass().getClassLoader());
  }
 else {
    logger.debug("String_Node_Str",pluginsDirName);
  }
  for (  String extClassName : extensionClasses) {
    Class<?> c;
    try {
      c=cl.loadClass(extClassName);
      Object o=c.newInstance();
      if (o instanceof ISoPeCoExtension) {
        ISoPeCoExtension ext=(ISoPeCoExtension)o;
        this.addExtension(ext);
        logger.debug("String_Node_Str",ext.getName());
      }
    }
 catch (    Exception e) {
      logger.warn("String_Node_Str",new Object[]{extClassName,e.getClass().getSimpleName(),e.getMessage()});
    }
  }
}

Fixed version (ground truth):
/** 
 * Loads the extensions with basic class loading.
 * @param registry the Eclipse platform extension registry
 * @param eid extension point id
 */
@SuppressWarnings("String_Node_Str") private void loadExtensions(){
  final IConfiguration config=Configuration.getSingleton();
  final String pluginsDirName=Tools.concatFileName(config.getAppRootDirectory(),config.getPropertyAsStr(IConfiguration.CONF_PLUGINS_FOLDER));
  final File pluginsDir=new File(pluginsDirName);
  final String defExtensionsFileName=pluginsDirName + File.separatorChar + EXTENSIONS_FILE_NAME;
  final File defExtensionsFile=new File(defExtensionsFileName);
  final String EXTENSION_FILE_PATH=config.DEFAULT_PLUGINS_FOLDER_IN_CLASSPATH + '/' + EXTENSIONS_FILE_NAME;
  Set<URL> extensioInfoURLs=new HashSet<URL>();
  Enumeration<URL> eURLs;
  try {
    eURLs=ClassLoader.getSystemResources(EXTENSION_FILE_PATH);
    while (eURLs.hasMoreElements()) {
      extensioInfoURLs.add(eURLs.nextElement());
    }
    URL enginePathURL=this.getClass().getClassLoader().getResource(EXTENSION_FILE_PATH);
    if (enginePathURL != null) {
      extensioInfoURLs.add(enginePathURL);
    }
  }
 catch (  IOException e1) {
  }
  if (defExtensionsFile.exists()) {
    try {
      extensioInfoURLs.add(new URL("String_Node_Str" + defExtensionsFileName));
    }
 catch (    MalformedURLException e1) {
      logger.warn("String_Node_Str",defExtensionsFile,e1.getMessage());
    }
  }
  for (  URL url : extensioInfoURLs)   logger.debug("String_Node_Str",url);
  if (extensioInfoURLs.size() == 0)   logger.warn("String_Node_Str");
  Set<String> extensionClasses=new HashSet<String>();
  for (  URL url : extensioInfoURLs) {
    try {
      extensionClasses.addAll(Tools.readLines(url));
    }
 catch (    IOException e) {
      e.printStackTrace();
    }
  }
  ClassLoader cl=this.getClass().getClassLoader();
  if (pluginsDir.exists()) {
    String[] names=Tools.getFileNames(pluginsDirName,"String_Node_Str");
    ArrayList<URL> urls=new ArrayList<URL>();
    if (names.length > 0) {
      for (      String str : names) {
        final String jarName=Tools.concatFileName(pluginsDirName,str);
        try {
          urls.add(new URL("String_Node_Str","String_Node_Str",jarName));
        }
 catch (        MalformedURLException e) {
          logger.warn("String_Node_Str",jarName);
        }
      }
    }
    for (    URL url : urls)     logger.debug("String_Node_Str",url);
    cl=new URLClassLoader(urls.toArray(new URL[]{}),this.getClass().getClassLoader());
  }
 else {
    logger.debug("String_Node_Str",pluginsDirName);
  }
  for (  String extClassName : extensionClasses) {
    Class<?> c;
    try {
      c=cl.loadClass(extClassName);
      Object o=c.newInstance();
      if (o instanceof ISoPeCoExtension) {
        ISoPeCoExtension ext=(ISoPeCoExtension)o;
        this.addExtension(ext);
        logger.debug("String_Node_Str",ext.getName());
      }
    }
 catch (    Exception e) {
      logger.warn("String_Node_Str",new Object[]{extClassName,e.getClass().getSimpleName(),e.getMessage()});
    }
  }
}