Program: 11741
Project: 11741
Buggy source:
private static void computeModels(Map<URI,URI> pluginMap,Map<String,URI> nsURIMap){
  IWorkspaceRoot root=getWorkspaceRoot();
  Object[] activeModels=(Object[])invoke(null,PLUGIN_REGISTRY_GET_ACTIVE_MODELS_METHOD,Boolean.FALSE);
  LOOP:   for (  Object activeModel : activeModels) {
    Object bundleDescription=invoke(activeModel,PLUGIN_MODEL_BASE_GET_BUNDLE_DESCRIPTION_METHOD);
    String symbolicName=(String)invoke(bundleDescription,BUNDLE_DESCRIPTION_GET_SYMBOLIC_NAME_METHOD);
    IResource underlyingResource=(IResource)invoke(activeModel,PLUGIN_MODEL_BASE_GET_UNDERLYING_RESOURCE_METHOD);
    String installLocation=(String)invoke(activeModel,PLUGIN_MODEL_BASE_GET_INSTALL_LOCATION_METHOD);
    URI location=null;
    if (underlyingResource != null) {
      location=URI.createPlatformResourceURI(underlyingResource.getFullPath().toString(),true);
    }
 else     if (installLocation != null) {
      File file=new File(installLocation);
      if (file.isDirectory()) {
        location=URI.createFileURI(installLocation);
      }
 else {
        location=URI.createURI("String_Node_Str" + URI.createFileURI(installLocation) + "String_Node_Str");
      }
    }
    if (location != null) {
      URI logicalLocation=null;
      Object extensions=invoke(activeModel,PLUGIN_MODEL_BASE_GET_EXTENSIONS_METHOD);
      Object[] pluginExtensions=(Object[])invoke(extensions,EXTENSIONS_GET_EXTENSIONS_METHOD);
      for (      Object pluginExtension : pluginExtensions) {
        String point=(String)invoke(pluginExtension,PLUGIN_EXTENSION_GET_POINT_METHOD);
        if ("String_Node_Str".equals(point)) {
          Object[] children=(Object[])invoke(pluginExtension,PLUGIN_EXTENSION_GET_CHILDREN_METHOD);
          for (          Object child : children) {
            if (PLUGIN_ELEMENT_CLASS.isInstance(child)) {
              Object uri=invoke(child,PLUGIN_ELEMENT_GET_ATTRIBUTE_METHOD,"String_Node_Str");
              Object genModel=invoke(child,PLUGIN_ELEMENT_GET_ATTRIBUTE_METHOD,"String_Node_Str");
              if (uri != null && genModel != null) {
                if (logicalLocation == null) {
                  URI platformPluginURI=URI.createPlatformPluginURI(symbolicName,true).appendSegment("String_Node_Str");
                  if (location.isPlatformResource()) {
                    if (pluginMap != null) {
                      pluginMap.put(platformPluginURI,location.appendSegment("String_Node_Str"));
                    }
                    logicalLocation=location;
                  }
 else {
                    logicalLocation=URI.createPlatformResourceURI(symbolicName,true);
                    URI resourceURI=logicalLocation.appendSegment("String_Node_Str");
                    boolean exists=root.getProject(symbolicName).isAccessible();
                    if (pluginMap != null) {
                      if (location.isFile()) {
                        pluginMap.put(platformPluginURI,location.appendSegment("String_Node_Str"));
                        if (!exists) {
                          pluginMap.put(resourceURI,location.appendSegment("String_Node_Str"));
                        }
                      }
 else {
                        pluginMap.put(platformPluginURI,location);
                        if (!exists) {
                          pluginMap.put(resourceURI,location);
                        }
                      }
                    }
                  }
                }
                if (nsURIMap == null) {
                  continue LOOP;
                }
                nsURIMap.put((String)invoke(uri,PLUGIN_ATTRIBUTE_GET_VALUE_METHOD),logicalLocation.appendSegments(new Path((String)invoke(genModel,PLUGIN_ATTRIBUTE_GET_VALUE_METHOD)).segments()));
              }
            }
          }
        }
      }
    }
  }
}

Fixed version (ground truth):
private static void computeModels(Map<URI,URI> pluginMap,Map<String,URI> nsURIMap){
  IWorkspaceRoot root=getWorkspaceRoot();
  Object[] activeModels=(Object[])invoke(null,PLUGIN_REGISTRY_GET_ACTIVE_MODELS_METHOD,Boolean.FALSE);
  LOOP:   for (  Object activeModel : activeModels) {
    Object bundleDescription=invoke(activeModel,PLUGIN_MODEL_BASE_GET_BUNDLE_DESCRIPTION_METHOD);
    String symbolicName=(String)invoke(bundleDescription,BUNDLE_DESCRIPTION_GET_SYMBOLIC_NAME_METHOD);
    IResource underlyingResource=(IResource)invoke(activeModel,PLUGIN_MODEL_BASE_GET_UNDERLYING_RESOURCE_METHOD);
    String installLocation=(String)invoke(activeModel,PLUGIN_MODEL_BASE_GET_INSTALL_LOCATION_METHOD);
    URI location=null;
    if (underlyingResource != null) {
      location=URI.createPlatformResourceURI(underlyingResource.getProject().getFullPath().toString(),true);
    }
 else     if (installLocation != null) {
      File file=new File(installLocation);
      if (file.isDirectory()) {
        location=URI.createFileURI(installLocation);
      }
 else {
        location=URI.createURI("String_Node_Str" + URI.createFileURI(installLocation) + "String_Node_Str");
      }
    }
    if (location != null) {
      URI logicalLocation=null;
      Object extensions=invoke(activeModel,PLUGIN_MODEL_BASE_GET_EXTENSIONS_METHOD);
      Object[] pluginExtensions=(Object[])invoke(extensions,EXTENSIONS_GET_EXTENSIONS_METHOD);
      for (      Object pluginExtension : pluginExtensions) {
        String point=(String)invoke(pluginExtension,PLUGIN_EXTENSION_GET_POINT_METHOD);
        if ("String_Node_Str".equals(point)) {
          Object[] children=(Object[])invoke(pluginExtension,PLUGIN_EXTENSION_GET_CHILDREN_METHOD);
          for (          Object child : children) {
            if (PLUGIN_ELEMENT_CLASS.isInstance(child)) {
              Object uri=invoke(child,PLUGIN_ELEMENT_GET_ATTRIBUTE_METHOD,"String_Node_Str");
              Object genModel=invoke(child,PLUGIN_ELEMENT_GET_ATTRIBUTE_METHOD,"String_Node_Str");
              if (uri != null && genModel != null) {
                if (logicalLocation == null) {
                  URI platformPluginURI=URI.createPlatformPluginURI(symbolicName,true).appendSegment("String_Node_Str");
                  if (location.isPlatformResource()) {
                    if (pluginMap != null) {
                      pluginMap.put(platformPluginURI,location.appendSegment("String_Node_Str"));
                    }
                    logicalLocation=location;
                  }
 else {
                    logicalLocation=URI.createPlatformResourceURI(symbolicName,true);
                    URI resourceURI=logicalLocation.appendSegment("String_Node_Str");
                    boolean exists=root.getProject(symbolicName).isAccessible();
                    if (pluginMap != null) {
                      if (location.isFile()) {
                        pluginMap.put(platformPluginURI,location.appendSegment("String_Node_Str"));
                        if (!exists) {
                          pluginMap.put(resourceURI,location.appendSegment("String_Node_Str"));
                        }
                      }
 else {
                        pluginMap.put(platformPluginURI,location);
                        if (!exists) {
                          pluginMap.put(resourceURI,location);
                        }
                      }
                    }
                  }
                }
                if (nsURIMap == null) {
                  continue LOOP;
                }
                nsURIMap.put((String)invoke(uri,PLUGIN_ATTRIBUTE_GET_VALUE_METHOD),logicalLocation.appendSegments(new Path((String)invoke(genModel,PLUGIN_ATTRIBUTE_GET_VALUE_METHOD)).segments()));
              }
            }
          }
        }
      }
    }
  }
}