Program: 20713
Project: 20713
Buggy source:
/** 
 * Lädt ein Dynamicplugin.
 * @throws IOException
 */
public static void loadDynamics() throws Exception {
  final ArrayList<String> classes=new ArrayList<String>();
  final URLClassLoader classLoader=new URLClassLoader(new URL[]{JDUtilities.getJDHomeDirectoryFromEnvironment().toURI().toURL()},Thread.currentThread().getContextClassLoader());
  if (JDUtilities.getRunType() == JDUtilities.RUNTYPE_LOCAL) {
    final Enumeration<URL> resources=classLoader.getResources("String_Node_Str");
    final ArrayList<String> dynamics=new ArrayList<String>();
    while (resources.hasMoreElements()) {
      final URL resource=resources.nextElement();
      if (resource.toURI().getPath() != null) {
        final String[] files=new File(resource.toURI().getPath()).list();
        if (files != null) {
          for (          final String file : files) {
            dynamics.add(new File(file).getName());
          }
        }
      }
    }
    if (dynamics.size() == 0) {
      return;
    }
    for (    final String dynamic : dynamics) {
      if (!dynamic.contains("String_Node_Str") && !classes.contains("String_Node_Str" + dynamic) && !dynamic.equalsIgnoreCase("String_Node_Str")) {
        System.out.println("String_Node_Str" + dynamic);
        classes.add("String_Node_Str" + dynamic);
      }
    }
  }
 else {
    Main.LOG.finest("String_Node_Str");
    if (WebUpdater.getPluginList() == null) {
      return;
    }
    for (    final Entry<String,FileUpdate> entry : WebUpdater.PLUGIN_LIST.entrySet()) {
      System.out.println("String_Node_Str" + entry.getKey());
      if (entry.getKey().startsWith("String_Node_Str") && !entry.getKey().contains("String_Node_Str")) {
        Main.LOG.finest("String_Node_Str" + entry.getKey());
        if (!entry.getValue().equals()) {
          if (!new WebUpdater().updateUpdatefile(entry.getValue())) {
            Main.LOG.warning("String_Node_Str" + entry.getValue());
            continue;
          }
 else {
            Main.LOG.finest("String_Node_Str");
          }
        }
        if (!entry.getKey().contains("String_Node_Str") && !classes.contains(entry.getKey())) {
          classes.add(entry.getKey());
        }
      }
    }
  }
  for (  final String clazz : classes) {
    try {
      Class<?> plgClass;
      Main.LOG.finest("String_Node_Str" + clazz);
      plgClass=classLoader.loadClass(clazz.replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str").substring(1));
      if (plgClass == null) {
        Main.LOG.info("String_Node_Str" + clazz);
        continue;
      }
      if (plgClass == DynamicPluginInterface.class) {
        continue;
      }
      final Constructor<?> con=plgClass.getConstructor(new Class[]{});
      final DynamicPluginInterface dplg=(DynamicPluginInterface)con.newInstance(new Object[]{});
      dplg.execute();
    }
 catch (    final Throwable e) {
      JDLogger.exception(Level.FINER,e);
    }
  }
}

Fixed version (ground truth):
/** 
 * Lädt ein Dynamicplugin.
 * @throws IOException
 */
public static void loadDynamics() throws Exception {
  final ArrayList<String> classes=new ArrayList<String>();
  final URLClassLoader classLoader=new URLClassLoader(new URL[]{JDUtilities.getJDHomeDirectoryFromEnvironment().toURI().toURL()},Thread.currentThread().getContextClassLoader());
  if (JDUtilities.getRunType() == JDUtilities.RUNTYPE_LOCAL) {
    final Enumeration<URL> resources=classLoader.getResources("String_Node_Str");
    final ArrayList<String> dynamics=new ArrayList<String>();
    while (resources.hasMoreElements()) {
      final URL resource=resources.nextElement();
      if (resource.toURI().getPath() != null) {
        final String[] files=new File(resource.toURI().getPath()).list();
        if (files != null) {
          for (          final String file : files) {
            dynamics.add(new File(file).getName());
          }
        }
      }
    }
    if (dynamics.size() == 0) {
      return;
    }
    for (    final String dynamic : dynamics) {
      if (!dynamic.contains("String_Node_Str") && !classes.contains("String_Node_Str" + dynamic) && !dynamic.equalsIgnoreCase("String_Node_Str")) {
        System.out.println("String_Node_Str" + dynamic);
        classes.add("String_Node_Str" + dynamic);
      }
    }
  }
 else {
  }
  for (  final String clazz : classes) {
    try {
      Class<?> plgClass;
      Main.LOG.finest("String_Node_Str" + clazz);
      plgClass=classLoader.loadClass(clazz.replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str").substring(1));
      if (plgClass == null) {
        Main.LOG.info("String_Node_Str" + clazz);
        continue;
      }
      if (plgClass == DynamicPluginInterface.class) {
        continue;
      }
      final Constructor<?> con=plgClass.getConstructor(new Class[]{});
      final DynamicPluginInterface dplg=(DynamicPluginInterface)con.newInstance(new Object[]{});
      dplg.execute();
    }
 catch (    final Throwable e) {
      JDLogger.exception(Level.FINER,e);
    }
  }
}