Program: 78051
Project: 78051
Buggy source:
public void startup(PlatformConfig config) throws BirtException {
  IPlatformContext context=config.getPlatformContext();
  if (context == null) {
    throw new BirtException("String_Node_Str",new Object[]{"String_Node_Str"});
  }
  String root=context.getPlatform();
  platformDirectory=new File(root);
  if (!platformDirectory.exists() || !platformDirectory.isDirectory()) {
    throw new BirtException("String_Node_Str" + root,root);
  }
  if (frameworkClassLoader != null) {
    logger.log(Level.WARNING,"String_Node_Str");
    return;
  }
  System.setProperty("String_Node_Str","String_Node_Str");
  System.setProperty("String_Node_Str",platformDirectory.getAbsolutePath());
  File configurationDirectory=new File(platformDirectory,"String_Node_Str");
  if (!configurationDirectory.exists()) {
    configurationDirectory.mkdirs();
  }
  System.setProperty("String_Node_Str",configurationDirectory.getAbsolutePath());
  File workspaceDirectory=new File(platformDirectory,"String_Node_Str");
  if (!workspaceDirectory.exists()) {
    workspaceDirectory.mkdirs();
  }
  System.setProperty("String_Node_Str",workspaceDirectory.getAbsolutePath());
  System.setProperty("String_Node_Str","String_Node_Str");
  System.setProperty("String_Node_Str","String_Node_Str");
  String path=new File(platformDirectory,"String_Node_Str").toString();
  path=searchFor("String_Node_Str",path);
  if (path == null) {
    throw new BirtException("String_Node_Str",new Object[]{"String_Node_Str"});
  }
  final String framework=new File(path).getAbsolutePath();
  String[] args=config.getOSGiArguments();
  if (args == null) {
    args=new String[]{"String_Node_Str"};
  }
  ClassLoader original=Thread.currentThread().getContextClassLoader();
  try {
    URL frameworkUrl=new File(framework).toURL();
    System.setProperty("String_Node_Str",frameworkUrl.toExternalForm());
    frameworkClassLoader=new URLClassLoader(new URL[]{frameworkUrl},this.getClass().getClassLoader());
    Class clazz=frameworkClassLoader.loadClass(ECLIPSE_STARTER);
    System.setProperty("String_Node_Str","String_Node_Str");
    Method runMethod=clazz.getMethod("String_Node_Str",new Class[]{String[].class,Runnable.class});
    bundleContext=runMethod.invoke(null,new Object[]{args,null});
    frameworkContextClassLoader=Thread.currentThread().getContextClassLoader();
  }
 catch (  Exception e) {
    e.printStackTrace();
    return;
  }
 finally {
    Thread.currentThread().setContextClassLoader(original);
  }
}

Fixed version (ground truth):
public void startup(PlatformConfig config) throws BirtException {
  IPlatformContext context=config.getPlatformContext();
  if (context == null) {
    throw new BirtException("String_Node_Str",new Object[]{"String_Node_Str"});
  }
  String root=context.getPlatform();
  platformDirectory=new File(root);
  if (!platformDirectory.exists() || !platformDirectory.isDirectory()) {
    throw new BirtException("String_Node_Str" + root,root);
  }
  if (frameworkClassLoader != null) {
    logger.log(Level.WARNING,"String_Node_Str");
    return;
  }
  System.setProperty("String_Node_Str","String_Node_Str");
  System.setProperty("String_Node_Str",platformDirectory.getAbsolutePath());
  File configurationDirectory=new File(platformDirectory,"String_Node_Str");
  if (!configurationDirectory.exists()) {
    configurationDirectory.mkdirs();
  }
  System.setProperty("String_Node_Str",configurationDirectory.getAbsolutePath());
  File workspaceDirectory=new File(platformDirectory,"String_Node_Str");
  if (!workspaceDirectory.exists()) {
    workspaceDirectory.mkdirs();
  }
  System.setProperty("String_Node_Str",workspaceDirectory.getAbsolutePath());
  System.setProperty("String_Node_Str","String_Node_Str");
  System.setProperty("String_Node_Str","String_Node_Str");
  String path=new File(platformDirectory,"String_Node_Str").toString();
  path=searchFor("String_Node_Str",path);
  if (path == null) {
    throw new BirtException("String_Node_Str",new Object[]{"String_Node_Str"});
  }
  final String framework=new File(path).getAbsolutePath();
  String[] args=config.getOSGiArguments();
  if (args == null) {
    args=new String[]{"String_Node_Str"};
  }
  ClassLoader original=Thread.currentThread().getContextClassLoader();
  try {
    URL frameworkUrl=new File(framework).toURL();
    System.setProperty("String_Node_Str",frameworkUrl.toExternalForm());
    ClassLoader loader=this.getClass().getClassLoader();
    frameworkClassLoader=new URLClassLoader(new URL[]{frameworkUrl},loader);
    try {
      loader.loadClass("String_Node_Str");
    }
 catch (    Exception ex) {
    }
    Class clazz=frameworkClassLoader.loadClass(ECLIPSE_STARTER);
    System.setProperty("String_Node_Str","String_Node_Str");
    Method runMethod=clazz.getMethod("String_Node_Str",new Class[]{String[].class,Runnable.class});
    bundleContext=runMethod.invoke(null,new Object[]{args,null});
    frameworkContextClassLoader=Thread.currentThread().getContextClassLoader();
  }
 catch (  Exception e) {
    e.printStackTrace();
    return;
  }
 finally {
    Thread.currentThread().setContextClassLoader(original);
  }
}