Program: 141678
Project: 141678
Buggy source:
@SuppressWarnings("String_Node_Str") protected void exportAllReferenceRoutelets(String routeName,ProcessItem routeProcess,Collection<String> routelets) throws InvocationTargetException, InterruptedException {
  for (  NodeType node : (Collection<NodeType>)routeProcess.getProcess().getNode()) {
    if (!EmfModelUtils.isComponentActive(node)) {
      continue;
    }
    final ElementParameterType routeletId=EmfModelUtils.findElementParameterByName(EParameterName.PROCESS_TYPE.getName() + ':' + EParameterName.PROCESS_TYPE_PROCESS.getName(),node);
    if (null != routeletId) {
      final IRepositoryNode referencedRouteletNode;
      try {
        referencedRouteletNode=getJobRepositoryNode(routeletId.getValue(),CamelRepositoryNodeType.repositoryRouteletType);
      }
 catch (      PersistenceException e) {
        throw new InvocationTargetException(e);
      }
      final ProcessItem routeletProcess=(ProcessItem)referencedRouteletNode.getObject().getProperty().getItem();
      final String className=RouteJavaScriptOSGIForESBManager.getClassName(routeletProcess);
      if (!routelets.add(className)) {
        continue;
      }
      String routeletVersion=EmfModelUtils.findElementParameterByName(EParameterName.PROCESS_TYPE.getName() + ':' + EParameterName.PROCESS_TYPE_VERSION.getName(),node).getValue();
      if (RelationshipItemBuilder.LATEST_VERSION.equals(routeletVersion)) {
        routeletVersion=referencedRouteletNode.getObject().getVersion();
      }
      final File routeletFile;
      try {
        routeletFile=File.createTempFile("String_Node_Str",FileConstants.JAR_FILE_SUFFIX,new File(getTempDir()));
      }
 catch (      IOException e) {
        throw new InvocationTargetException(e);
      }
      String routeletName=routeName + "String_Node_Str" + referencedRouteletNode.getObject().getLabel();
      BundleModel jobModel=new BundleModel(getGroupId(),routeletName,getArtifactVersion(),routeletFile);
      if (featuresModel.addBundle(jobModel)) {
        exportRouteBundle(referencedRouteletNode,routeletFile,routeletVersion,routeletVersion,null,EmfModelUtils.findElementParameterByName(EParameterName.PROCESS_TYPE.getName() + ':' + EParameterName.PROCESS_TYPE_CONTEXT.getName(),node).getValue());
        CamelFeatureUtil.addFeatureAndBundles(routeletProcess,featuresModel);
        exportAllReferenceRoutelets(routeName,routeletProcess,routelets);
      }
    }
  }
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") protected final void exportAllReferenceRoutelets(String routeName,ProcessItem routeProcess,Set<String> routelets) throws InvocationTargetException, InterruptedException {
  for (  NodeType node : (Collection<NodeType>)routeProcess.getProcess().getNode()) {
    if (!EmfModelUtils.isComponentActive(node)) {
      continue;
    }
    final ElementParameterType routeletId=EmfModelUtils.findElementParameterByName(EParameterName.PROCESS_TYPE.getName() + ':' + EParameterName.PROCESS_TYPE_PROCESS.getName(),node);
    if (null != routeletId) {
      final IRepositoryNode referencedRouteletNode;
      try {
        referencedRouteletNode=getJobRepositoryNode(routeletId.getValue(),CamelRepositoryNodeType.repositoryRouteletType);
      }
 catch (      PersistenceException e) {
        throw new InvocationTargetException(e);
      }
      final ProcessItem routeletProcess=(ProcessItem)referencedRouteletNode.getObject().getProperty().getItem();
      final String className=RouteJavaScriptOSGIForESBManager.getClassName(routeletProcess);
      if (!routelets.add(className)) {
        continue;
      }
      String routeletVersion=EmfModelUtils.findElementParameterByName(EParameterName.PROCESS_TYPE.getName() + ':' + EParameterName.PROCESS_TYPE_VERSION.getName(),node).getValue();
      if (RelationshipItemBuilder.LATEST_VERSION.equals(routeletVersion)) {
        routeletVersion=referencedRouteletNode.getObject().getVersion();
      }
      final File routeletFile;
      try {
        routeletFile=File.createTempFile("String_Node_Str",FileConstants.JAR_FILE_SUFFIX,new File(getTempDir()));
      }
 catch (      IOException e) {
        throw new InvocationTargetException(e);
      }
      String routeletName=referencedRouteletNode.getObject().getLabel();
      String routeletArtifactName=routeName + "String_Node_Str" + routeletName+ "String_Node_Str";
      String routeletBundleVersion=routeletVersion;
      if (getArtifactVersion().endsWith("String_Node_Str")) {
        routeletBundleVersion+="String_Node_Str";
      }
      BundleModel routeletModel=new BundleModel(getGroupId(),routeletArtifactName,getArtifactVersion(),routeletFile);
      if (featuresModel.addBundle(routeletModel)) {
        exportRouteBundle(referencedRouteletNode,routeletFile,routeletVersion,routeletBundleVersion,null,EmfModelUtils.findElementParameterByName(EParameterName.PROCESS_TYPE.getName() + ':' + EParameterName.PROCESS_TYPE_CONTEXT.getName(),node).getValue());
        CamelFeatureUtil.addFeatureAndBundles(routeletProcess,featuresModel);
        exportAllReferenceRoutelets(routeName,routeletProcess,routelets);
      }
    }
  }
}