Program: 143522
Project: 143522
Buggy source:
private void loadObjectMetaDatas(String moduleNames,Map<UUID,RootObjectReference> referencedModules) throws RepositoryException {
  if (moduleNames == null)   return;
  StringTokenizer tk=new StringTokenizer(moduleNames,"String_Node_Str");
  int count=tk.countTokens();
  if (count > 0) {
    while (tk.hasMoreTokens()) {
      try {
        String moduleDescriptor=tk.nextToken();
        SolutionMetaData metaData;
        int releaseNumber=0;
        int i=moduleDescriptor.indexOf(':');
        String name;
        UUID uuid;
        if (i != -1) {
          releaseNumber=Integer.parseInt(moduleDescriptor.substring(i + 1));
          moduleDescriptor=moduleDescriptor.substring(0,i);
        }
        if (moduleDescriptor.indexOf('-') != -1) {
          uuid=UUID.fromString(moduleDescriptor);
          metaData=(SolutionMetaData)developerRepository.getRootObjectMetaData(uuid);
          if (metaData == null) {
            continue;
          }
          name=metaData.getName();
        }
 else {
          name=moduleDescriptor;
          metaData=(SolutionMetaData)developerRepository.getRootObjectMetaData(name,IRepository.SOLUTIONS);
          if (metaData == null) {
            continue;
          }
          uuid=metaData.getRootObjectUuid();
        }
        if (referencedModules.get(uuid) == null && (loadImportHooks || !SolutionMetaData.isImportHook(metaData))) {
          referencedModules.put(uuid,new RootObjectReference(name,uuid,metaData,releaseNumber));
          Solution sol=(Solution)developerRepository.getRootObject(metaData.getRootObjectId(),releaseNumber);
          loadObjectMetaDatas(sol.getModulesNames(),referencedModules);
        }
      }
 catch (      RemoteException e) {
        throw new RepositoryException(e);
      }
    }
  }
}

Fixed version (ground truth):
private void loadObjectMetaDatas(String moduleNames,Map<UUID,RootObjectReference> referencedModules,boolean loadImportHooks) throws RepositoryException {
  if (moduleNames == null)   return;
  StringTokenizer tk=new StringTokenizer(moduleNames,"String_Node_Str");
  int count=tk.countTokens();
  if (count > 0) {
    while (tk.hasMoreTokens()) {
      try {
        String moduleDescriptor=tk.nextToken();
        SolutionMetaData metaData;
        int releaseNumber=0;
        int i=moduleDescriptor.indexOf(':');
        String name;
        UUID uuid;
        if (i != -1) {
          releaseNumber=Integer.parseInt(moduleDescriptor.substring(i + 1));
          moduleDescriptor=moduleDescriptor.substring(0,i);
        }
        if (moduleDescriptor.indexOf('-') != -1) {
          uuid=UUID.fromString(moduleDescriptor);
          metaData=(SolutionMetaData)developerRepository.getRootObjectMetaData(uuid);
          if (metaData == null) {
            continue;
          }
          name=metaData.getName();
        }
 else {
          name=moduleDescriptor;
          metaData=(SolutionMetaData)developerRepository.getRootObjectMetaData(name,IRepository.SOLUTIONS);
          if (metaData == null) {
            continue;
          }
          uuid=metaData.getRootObjectUuid();
        }
        if (referencedModules.get(uuid) == null && (loadImportHooks || !SolutionMetaData.isImportHook(metaData))) {
          referencedModules.put(uuid,new RootObjectReference(name,uuid,metaData,releaseNumber));
          Solution sol=(Solution)developerRepository.getRootObject(metaData.getRootObjectId(),releaseNumber);
          loadObjectMetaDatas(sol.getModulesNames(),referencedModules,loadImportHooks);
        }
      }
 catch (      RemoteException e) {
        throw new RepositoryException(e);
      }
    }
  }
}