Program: 178575
Project: 178575
Buggy source:
/** 
 * Contributes general settings to the macro execution properties.
 * @param properties The properties used to be filled with the settings. Not <code>null</code>.
 * @param productdef The product definition instance providing the necessary information. Not <code>null</code>.
 * @param targetplatform The TargetPlatform used to resolve the bundles against. Not <code>null</code>.
 */
private void contributeForAll(StringMap properties,ProductDefinition productdef,TargetPlatform targetplatform){
  properties.put(PROP_PRODUCTID,productdef.getId());
  properties.put(PROP_PRODUCTNAME,productdef.getName());
  properties.put(PROP_BASEDONFEATURES,String.valueOf(productdef.isBasedOnFeatures()));
  properties.put(PROP_APPLICATIONID,productdef.getApplication());
  properties.put(PROP_LAUNCHERNAME,productdef.getLaunchername());
  properties.put(PROP_VERSION,String.valueOf(productdef.getVersion()));
  properties.put(PROP_VMARGS,productdef.getVmArgs(this._os));
  properties.put(PROP_PROGRAMARGS,productdef.getProgramArgs(this._os));
  properties.put(PROP_OSGIBUNDLES,collectOsgiBundles(targetplatform.getLocations(),productdef.getConfigurationRecords()));
  String configini=productdef.getConfigIni(this._os);
  if (configini == null) {
    properties.put(PROP_CONFIGINI,"String_Node_Str");
  }
 else {
    int endofprojectname=configini.indexOf('/',1);
    String projectname=configini.substring(1,endofprojectname);
    String childname=configini.substring(endofprojectname + 1);
    EclipseProject project=getWorkspace().getProject(projectname);
    File path=project.getChild(childname);
    properties.put(PROP_CONFIGINI,path.getAbsolutePath());
  }
  String guiexe="String_Node_Str";
  String cmdexe="String_Node_Str";
switch (this._os) {
case win32:
    guiexe="String_Node_Str";
  cmdexe="String_Node_Str";
break;
default :
throw new RuntimeException("String_Node_Str");
}
File fileguiexe=null;
File filecmdexe=null;
File[] targetlocations=targetplatform.getLocations();
for (File targetlocation : targetlocations) {
if (fileguiexe == null) {
File child=new File(targetlocation,guiexe);
if (child.isFile()) {
fileguiexe=child;
}
}
if (filecmdexe == null) {
File child=new File(targetlocation,cmdexe);
if (child.isFile()) {
filecmdexe=child;
}
}
}
if ((fileguiexe == null) || (filecmdexe == null)) {
throw new RuntimeException("String_Node_Str");
}
properties.put(PROP_GUIEXE,fileguiexe.getAbsolutePath());
properties.put(PROP_CMDEXE,filecmdexe.getAbsolutePath());
}

Fixed version (ground truth):
/** 
 * Contributes general settings to the macro execution properties.
 * @param properties The properties used to be filled with the settings. Not <code>null</code>.
 * @param productdef The product definition instance providing the necessary information. Not <code>null</code>.
 * @param targetplatform The TargetPlatform used to resolve the bundles against. Not <code>null</code>.
 */
private void contributeForAll(StringMap properties,ProductDefinition productdef,TargetPlatform targetplatform){
  properties.put(PROP_PRODUCTID,productdef.getId());
  properties.put(PROP_PRODUCTNAME,productdef.getName());
  properties.put(PROP_BASEDONFEATURES,String.valueOf(productdef.isBasedOnFeatures()));
  properties.put(PROP_APPLICATIONID,productdef.getApplication());
  properties.put(PROP_LAUNCHERNAME,productdef.getLaunchername());
  properties.put(PROP_VERSION,String.valueOf(productdef.getVersion()));
  properties.put(PROP_VMARGS,productdef.getVmArgs(this._os));
  properties.put(PROP_PROGRAMARGS,productdef.getProgramArgs(this._os));
  properties.put(PROP_OSGIBUNDLES,collectOsgiBundles(targetplatform.getLocations(),productdef.getConfigurationRecords()));
  String configini=productdef.getConfigIni(this._os);
  if (configini == null) {
    properties.put(PROP_CONFIGINI,"String_Node_Str");
  }
 else {
    int endofprojectname=configini.indexOf('/',1);
    String projectname=configini.substring(1,endofprojectname);
    String childname=configini.substring(endofprojectname + 1);
    EclipseProject project=getWorkspace().getProject(projectname);
    File path=project.getChild(childname);
    properties.put(PROP_CONFIGINI,path.getAbsolutePath());
  }
  String guiexe="String_Node_Str";
  String cmdexe="String_Node_Str";
switch (this._os) {
case win32:
    guiexe="String_Node_Str";
  cmdexe="String_Node_Str";
break;
default :
throw new RuntimeException("String_Node_Str");
}
File fileguiexe=null;
File filecmdexe=null;
File[] targetlocations=targetplatform.getLocations();
for (File targetlocation : targetlocations) {
if (fileguiexe == null) {
File child=new File(targetlocation,guiexe);
if (child.isFile()) {
fileguiexe=child;
}
}
if (filecmdexe == null) {
File child=new File(targetlocation,cmdexe);
if (child.isFile()) {
filecmdexe=child;
}
}
}
if ((fileguiexe == null) || (filecmdexe == null)) {
throw new BuildException(MSG_FAILED_TO_LOOKUP_EXECUTABLES);
}
properties.put(PROP_GUIEXE,fileguiexe.getAbsolutePath());
properties.put(PROP_CMDEXE,filecmdexe.getAbsolutePath());
}