nus-yam/ex-repair huggingface dataset:
Program: 89864
Project: 89864
Buggy source:
/** 
 * Method for updating the checksum status of a replicafileinfo instance. Updates the following fields for the entry in the replicafileinfo: <br/> checksum_status = CORRUPT. <br/> checksum_checkdatetime = current time.  The replicafileinfo is in the filelist.
 * @param replicafileinfoId The id of the replicafileinfo.
 */
private void updateReplicaFileInfoChecksumCorrupt(long replicafileinfoId){
  try {
    String sql="String_Node_Str" + "String_Node_Str";
    PreparedStatement statement=null;
    dbConnection.setAutoCommit(false);
    Date now=new Date(Calendar.getInstance().getTimeInMillis());
    statement=DBUtils.prepareStatement(dbConnection,sql,ChecksumStatus.CORRUPT.ordinal(),now,replicafileinfoId);
    statement.executeUpdate();
    dbConnection.commit();
  }
 catch (  Exception e) {
    String msg="String_Node_Str";
    log.warn(msg);
    throw new IOFailure(msg,e);
  }
}

Fixed version (ground truth):
/** 
 * Method for updating the checksum status of a replicafileinfo instance. Updates the following fields for the entry in the replicafileinfo: <br/> checksum_status = CORRUPT. <br/> checksum_checkdatetime = current time.  The replicafileinfo is in the filelist.
 * @param replicafileinfoId The id of the replicafileinfo.
 */
private void updateReplicaFileInfoChecksumCorrupt(long replicafileinfoId){
  try {
    String sql="String_Node_Str" + "String_Node_Str" + "String_Node_Str";
    PreparedStatement statement=null;
    dbConnection.setAutoCommit(false);
    Date now=new Date(Calendar.getInstance().getTimeInMillis());
    statement=DBUtils.prepareStatement(dbConnection,sql,ChecksumStatus.CORRUPT.ordinal(),now,replicafileinfoId);
    statement.executeUpdate();
    dbConnection.commit();
  }
 catch (  Exception e) {
    String msg="String_Node_Str";
    log.warn(msg);
    throw new IOFailure(msg,e);
  }
}
Program: 89865
Project: 89865
Buggy source:
/** 
 * Method for updating the checksum status of a replicafileinfo instance. Updates the following fields for the entry in the replicafileinfo: <br/> checksum_status = UNKNOWN. <br/> checksum_checkdatetime = current time.  The replicafileinfo is in the filelist.
 * @param replicafileinfoId The id of the replicafileinfo.
 */
private void updateReplicaFileInfoChecksumUnknown(long replicafileinfoId){
  try {
    String sql="String_Node_Str" + "String_Node_Str";
    PreparedStatement statement=null;
    dbConnection.setAutoCommit(false);
    Date now=new Date(Calendar.getInstance().getTimeInMillis());
    statement=DBUtils.prepareStatement(dbConnection,sql,ChecksumStatus.UNKNOWN.ordinal(),now,replicafileinfoId);
    statement.executeUpdate();
    dbConnection.commit();
  }
 catch (  Exception e) {
    String msg="String_Node_Str";
    log.warn(msg);
    throw new IOFailure(msg,e);
  }
}

Fixed version (ground truth):
/** 
 * Method for updating the checksum status of a replicafileinfo instance. Updates the following fields for the entry in the replicafileinfo: <br/> checksum_status = UNKNOWN. <br/> checksum_checkdatetime = current time.  The replicafileinfo is in the filelist.
 * @param replicafileinfoId The id of the replicafileinfo.
 */
private void updateReplicaFileInfoChecksumUnknown(long replicafileinfoId){
  try {
    String sql="String_Node_Str" + "String_Node_Str" + "String_Node_Str";
    PreparedStatement statement=null;
    dbConnection.setAutoCommit(false);
    Date now=new Date(Calendar.getInstance().getTimeInMillis());
    statement=DBUtils.prepareStatement(dbConnection,sql,ChecksumStatus.UNKNOWN.ordinal(),now,replicafileinfoId);
    statement.executeUpdate();
    dbConnection.commit();
  }
 catch (  Exception e) {
    String msg="String_Node_Str";
    log.warn(msg);
    throw new IOFailure(msg,e);
  }
}
Program: 89868
Project: 89868
Buggy source:
/** 
 * The method is used to update the checksum for all the files in a replica. The checksum for the replica is retrieved either through a ChecksumJob (for a bitarchive) or through a GetAllChecksumMessage (for a  checksumarchive). This will take a very large amount of time for the bitarchive, but a  more limited amount of time for the checksumarchive. The corresponding replicafileinfo entries in the database for the  retrieved checksum results will be updated. Then a checksum update will  be performed to check for corrupted replicafileinfo.
 * @param replica The replica to find the changed files for.
 */
public void findChangedFiles(Replica replica){
  ArgumentNotValid.checkNotNull(replica,"String_Node_Str");
  runChecksum(replica);
  initChecksumStatusUpdate();
  cache.updateChecksumStatus();
}

Fixed version (ground truth):
/** 
 * The method is used to update the checksum for all the files in a replica. The checksum for the replica is retrieved either through a ChecksumJob (for a bitarchive) or through a GetAllChecksumMessage (for a  checksumarchive). This will take a very large amount of time for the bitarchive, but a  more limited amount of time for the checksumarchive. The corresponding replicafileinfo entries in the database for the  retrieved checksum results will be updated. Then a checksum update will  be performed to check for corrupted replicafileinfo.
 * @param replica The replica to find the changed files for.
 * @throws ArgumentNotValid If the replica is null.
 */
public void findChangedFiles(Replica replica) throws ArgumentNotValid {
  ArgumentNotValid.checkNotNull(replica,"String_Node_Str");
  runChecksum(replica);
  initChecksumStatusUpdate();
  cache.updateChecksumStatus();
}
Program: 89869
Project: 89869
Buggy source:
@Override public FilePreservationState getFilePreservationState(String filename){
  throw new NotImplementedException("String_Node_Str");
}

Fixed version (ground truth):
/** 
 * Method for retrieving the FilePreservationState for a specific file.
 * @param filename The name of the file for whom the FilePreservationStateshould be retrieved.
 * @return The FilePreservationState for the file.
 * @throws NotImplementedException This method has not yet been implemented.
 * @throws ArgumentNotValid If the filename does not have a valid name.
 */
@Override public FilePreservationState getFilePreservationState(String filename) throws NotImplementedException, ArgumentNotValid {
  ArgumentNotValid.checkNotNullOrEmpty(filename,"String_Node_Str");
  throw new NotImplementedException("String_Node_Str");
}
Program: 89870
Project: 89870
Buggy source:
@Override public Iterable<String> getChangedFilesForAdminData(){
  throw new NotImplementedException("String_Node_Str" + "String_Node_Str");
}

Fixed version (ground truth):
/** 
 * Old method, which refers to the checksum replica part of admin data.
 * @return nothing, since it always throws an exception.
 * @throws NotImplementedException This method will not be implemented.
 */
@Override public Iterable<String> getChangedFilesForAdminData(){
  throw new NotImplementedException("String_Node_Str" + "String_Node_Str");
}
Program: 89871
Project: 89871
Buggy source:
@Override public Map<String,FilePreservationState> getFilePreservationStateMap(String... filenames){
  throw new NotImplementedException("String_Node_Str");
}

Fixed version (ground truth):
/** 
 * Method for retrieving the FilePreservationState for a list of files.
 * @param filenames The list of filenames whos FilePreservationState shouldbe retrieved.
 * @return A mapping between the filenames and their FilePreservationState.
 * @throws NotImplementedException Since it has not yet been implemented.
 * @throws ArgumentNotValid If the filenames are invalid.
 */
@Override public Map<String,FilePreservationState> getFilePreservationStateMap(String... filenames) throws ArgumentNotValid, NotImplementedException {
  ArgumentNotValid.checkNotNull(filenames,"String_Node_Str");
  throw new NotImplementedException("String_Node_Str");
}
Program: 89872
Project: 89872
Buggy source:
@Override public Iterable<String> getMissingFilesForAdminData(){
  throw new NotImplementedException("String_Node_Str" + "String_Node_Str");
}

Fixed version (ground truth):
/** 
 * Old method, which refers to the checksum replica part of admin data.
 * @return nothing, since it always throws an exception.
 * @throws NotImplementedException This method will not be implemented.
 */
@Override public Iterable<String> getMissingFilesForAdminData(){
  throw new NotImplementedException("String_Node_Str" + "String_Node_Str");
}
Program: 89873
Project: 89873
Buggy source:
/** 
 * Method for retrieving the filelist from a specific replica. The filelist are retrieved differently for the different types of  replica: <br/> The filelist of a bitarchive is retrieved through running  the BatchJob FilelistJob on the replica. <br/> The filelist of a checksumsarchive is retrieved through a  GetAllFilenamesMessage.
 * @param replica The replica to retrieve the filelist from.
 * @return The names of the files in a list.
 */
private List<String> getFilenamesList(Replica replica){
  ArgumentNotValid.checkNotNull(replica,"String_Node_Str");
  if (replica.getType() == ReplicaType.BITARCHIVE) {
    File outputFile=WorkFiles.getFile(replica,WorkFiles.CHECKSUMS_ON_BA);
    log.info("String_Node_Str" + replica + "String_Node_Str");
    runBatchJob(new FileListJob(),replica,null,outputFile);
    return FileUtils.readListFromFile(outputFile);
  }
 else   if (replica.getType() == ReplicaType.CHECKSUM) {
    log.info("String_Node_Str" + replica + "String_Node_Str");
    return FileUtils.readListFromFile(ArcRepositoryClientFactory.getPreservationInstance().getAllFilenames(replica.getId()));
  }
 else {
    String msg="String_Node_Str" + replica + "String_Node_Str";
    log.warn(msg);
    throw new IllegalState(msg);
  }
}

Fixed version (ground truth):
/** 
 * Method for retrieving the filelist from a specific replica. The filelist are retrieved differently for the different types of  replica: <br/> The filelist of a bitarchive is retrieved through running  the BatchJob FilelistJob on the replica. <br/> The filelist of a checksumsarchive is retrieved through a  GetAllFilenamesMessage.
 * @param replica The replica to retrieve the filelist from.
 * @return The names of the files in a list.
 * @throws ArgumentNotValid If the replica is 'null'.
 * @throws UnknownID If the replica has a unhandled replica type.
 */
private List<String> getFilenamesList(Replica replica) throws ArgumentNotValid, UnknownID {
  ArgumentNotValid.checkNotNull(replica,"String_Node_Str");
  if (replica.getType() == ReplicaType.BITARCHIVE) {
    File outputFile=WorkFiles.getFile(replica,WorkFiles.CHECKSUMS_ON_BA);
    log.info("String_Node_Str" + replica + "String_Node_Str");
    runBatchJob(new FileListJob(),replica,null,outputFile);
    return FileUtils.readListFromFile(outputFile);
  }
 else   if (replica.getType() == ReplicaType.CHECKSUM) {
    log.info("String_Node_Str" + replica + "String_Node_Str");
    return FileUtils.readListFromFile(ArcRepositoryClientFactory.getPreservationInstance().getAllFilenames(replica.getId()));
  }
 else {
    String msg="String_Node_Str" + replica + "String_Node_Str";
    log.warn(msg);
    throw new UnknownID(msg);
  }
}
Program: 89874
Project: 89874
Buggy source:
/** 
 * This method retrieves the filelist for the replica, and then it updates the database with this list of filenames.
 * @param replica The replica to find the missing files for.
 */
public void findMissingFiles(Replica replica){
  ArgumentNotValid.checkNotNull(replica,"String_Node_Str");
  List<String> filenames=getFilenamesList(replica);
  cache.addFileListInformation(filenames,replica);
}

Fixed version (ground truth):
/** 
 * This method retrieves the filelist for the replica, and then it updates the database with this list of filenames.
 * @param replica The replica to find the missing files for.
 * @throws ArgumentNotValid If the replica is null.
 */
public void findMissingFiles(Replica replica) throws ArgumentNotValid {
  ArgumentNotValid.checkNotNull(replica,"String_Node_Str");
  List<String> filenames=getFilenamesList(replica);
  cache.addFileListInformation(filenames,replica);
}
Program: 89875
Project: 89875
Buggy source:
@Override public void changeStateForAdminData(String filename){
  throw new NotImplementedException("String_Node_Str");
}

Fixed version (ground truth):
/** 
 * This should reestablish the state for the file.
 * @param filename The name of the file to change the state for.
 * @throws ArgumentNotValid If the filename is invalid.
 * @throws NotImplementedException Since it has not yet been implemented.
 */
@Override public void changeStateForAdminData(String filename) throws ArgumentNotValid, NotImplementedException {
  ArgumentNotValid.checkNotNullOrEmpty(filename,"String_Node_Str");
  throw new NotImplementedException("String_Node_Str");
}
Program: 89876
Project: 89876
Buggy source:
@Override public void cleanup(){
  instance=null;
  cache.cleanup();
}

Fixed version (ground truth):
/** 
 * Method for cleaning up this instance.
 */
@Override public void cleanup(){
  instance=null;
  cache.cleanup();
}
Program: 89877
Project: 89877
Buggy source:
@Override public void addMissingFilesToAdminData(String... filenames){
  throw new NotImplementedException("String_Node_Str" + "String_Node_Str");
}

Fixed version (ground truth):
/** 
 * Old method, which refers to teh checksum replica part of admin data.
 * @param filenames The list of filenames which should be added to admin data.
 * @throws NotImplementedException This method will not be implemented.
 * @throws ArgumentNotValid If filenames invalid.
 */
@Override public void addMissingFilesToAdminData(String... filenames) throws ArgumentNotValid, NotImplementedException {
  ArgumentNotValid.checkNotNull(filenames,"String_Node_Str");
  throw new NotImplementedException("String_Node_Str" + "String_Node_Str");
}
Program: 89878
Project: 89878
Buggy source:
/** 
 * Reloads the settings. This will reload the settings from disk, and forget all settings that were set with   {@link #set}The field   {@link #lastModified} is updated to timestamp of the settingsfile that has been changed most recently.
 * @throws IOFailure if settings cannot be loaded
 * @see #conditionalReload()
 */
public static synchronized void reload(){
  lastModified=0;
  List<File> settingsFiles=getSettingsFiles();
  List<SimpleXml> simpleXmlList=new ArrayList<SimpleXml>();
  for (  File settingsFile : settingsFiles) {
    if (settingsFile.isFile()) {
      simpleXmlList.add(new SimpleXml(settingsFile));
    }
 else {
      log.warn("String_Node_Str" + settingsFile.getAbsolutePath() + "String_Node_Str");
    }
    if (settingsFile.lastModified() > lastModified) {
      lastModified=settingsFile.lastModified();
    }
  }
  fileSettingsXmlList.addAll(simpleXmlList);
}

Fixed version (ground truth):
/** 
 * Reloads the settings. This will reload the settings from disk, and forget all settings that were set with   {@link #set}The field   {@link #lastModified} is updated to timestamp of the settingsfile that has been changed most recently.
 * @throws IOFailure if settings cannot be loaded
 * @see #conditionalReload()
 */
public static synchronized void reload(){
  lastModified=0;
  List<File> settingsFiles=getSettingsFiles();
  List<SimpleXml> simpleXmlList=new ArrayList<SimpleXml>();
  for (  File settingsFile : settingsFiles) {
    if (settingsFile.isFile()) {
      simpleXmlList.add(new SimpleXml(settingsFile));
    }
 else {
      log.warn("String_Node_Str" + settingsFile.getAbsolutePath() + "String_Node_Str");
    }
    if (settingsFile.lastModified() > lastModified) {
      lastModified=settingsFile.lastModified();
    }
  }
  fileSettingsXmlList.clear();
  fileSettingsXmlList.addAll(simpleXmlList);
}
Program: 89879
Project: 89879
Buggy source:
/** 
 * This method returns an instance of the UrlCanonicalizer class specified in the settings.xml for the dk.netarkivet.wayback module. In the event that reading this file generates a SecurityException, as may occur in batch operation if security does not allow System properties to be read, the method will fall back on returning an instance of the class dk.netarkivet.wayback.batch.copycode.NetarchiveSuiteAggressiveUrlCanonicalizer
 * @return a canonicalizer for urls
 */
public static UrlCanonicalizer getDefaultUrlCanonicalizer(){
  try {
    return SettingsFactory.getInstance(WaybackSettings.URL_CANONICALIZER_CLASSNAME);
  }
 catch (  SecurityException e) {
    return new NetarchiveSuiteAggressiveUrlCanonicalizer();
  }
}

Fixed version (ground truth):
/** 
 * This method returns an instance of the UrlCanonicalizer class specified in the settings.xml for the dk.netarkivet.wayback module. In the event that reading this file generates a SecurityException, as may occur in batch operation if security does not allow System properties to be read, the method will fall back on returning an instance of the class dk.netarkivet.wayback.batch.copycode.NetarchiveSuiteAggressiveUrlCanonicalizer
 * @return a canonicalizer for urls
 */
public static UrlCanonicalizer getDefaultUrlCanonicalizer(){
  try {
    return SettingsFactory.getInstance(WaybackSettings.URL_CANONICALIZER_CLASSNAME);
  }
 catch (  SecurityException e) {
    logger.debug("String_Node_Str" + "String_Node_Str" + NetarchiveSuiteAggressiveUrlCanonicalizer.class.toString(),e);
    return new NetarchiveSuiteAggressiveUrlCanonicalizer();
  }
}
Program: 89881
Project: 89881
Buggy source:
/** 
 * This method launches heritrix in the following way:</br>  1. copies the orderfile and the seedsfile to current working directory. </br> 2. sets up the newly created copy of the orderfile </br> 3. starts the crawler </br> 4. stops the crawler (Either when heritrix has finished crawling, or when heritrix is forcefully stopped due to inactivity). </p> The exit from the while-loop depends on Heritrix calling the crawlEnded() method, when the crawling is finished. This method is called from the HarvestControllerServer.onDoOneCrawl() method.
 * @throws IOFailure - if the order.xml is invalid if unable to initializeHeritrix CrawlController if Heritrix process interrupted
 */
public void doCrawl() throws IOFailure {
  setupOrderfile();
  heritrixController=HeritrixControllerFactory.getDefaultHeritrixController(args);
  try {
    heritrixController.initialize();
    log.debug("String_Node_Str");
    heritrixController.requestCrawlStart();
    if (heritrixController.atFinish()) {
      heritrixController.beginCrawlStop();
    }
 else {
      doCrawlLoop();
    }
  }
 catch (  IOFailure e) {
    log.warn("String_Node_Str",e);
    throw (e);
  }
catch (  Exception e) {
    log.warn("String_Node_Str",e);
    throw new RuntimeException("String_Node_Str",e);
  }
 finally {
    if (heritrixController != null) {
      heritrixController.cleanup();
    }
  }
  log.debug("String_Node_Str");
}

Fixed version (ground truth):
/** 
 * This method launches heritrix in the following way:</br> 1. copies the orderfile and the seedsfile to current working directory. </br> 2. sets up the newly created copy of the orderfile </br> 3. starts the crawler </br> 4. stops the crawler (Either when heritrix has finished crawling, or when heritrix is forcefully stopped due to inactivity). </p> The exit from the while-loop depends on Heritrix calling the crawlEnded() method, when the crawling is finished. This method is called from the HarvestControllerServer.onDoOneCrawl() method.
 * @throws IOFailure - if the order.xml is invalid if unable to initializeHeritrix CrawlController if Heritrix process interrupted
 */
public void doCrawl() throws IOFailure {
  setupOrderfile();
  heritrixController=HeritrixControllerFactory.getDefaultHeritrixController(args);
  try {
    heritrixController.initialize();
    log.debug("String_Node_Str");
    heritrixController.requestCrawlStart();
    if (heritrixController.atFinish()) {
      heritrixController.beginCrawlStop();
    }
 else {
      doCrawlLoop();
    }
  }
 catch (  IOFailure e) {
    log.warn("String_Node_Str",e);
    throw (e);
  }
catch (  Exception e) {
    log.warn("String_Node_Str",e);
    throw new RuntimeException("String_Node_Str",e);
  }
 finally {
    if (heritrixController != null) {
      heritrixController.cleanup();
    }
  }
  log.debug("String_Node_Str");
}
Program: 89882
Project: 89882
Buggy source:
/** 
 * Get instance of this class.
 * @param files Object encapsulating location of Heritrix crawldir andconfiguration files
 * @return HeritrixLauncher object
 * @throws ArgumentNotValid If either order.xmlor seeds.txt does not exist, or argument files is null.
 */
public static HeritrixLauncher getInstance(HeritrixFiles files) throws ArgumentNotValid {
  ArgumentNotValid.checkNotNull(files,"String_Node_Str");
  return new HeritrixLauncher(files);
}

Fixed version (ground truth):
/** 
 * Get instance of this class.
 * @param files Object encapsulating location of Heritrix crawldir andconfiguration files
 * @return HeritrixLauncher object
 * @throws ArgumentNotValid If either order.xml or seeds.txt does not exist,or argument files is null.
 */
public static HeritrixLauncher getInstance(HeritrixFiles files) throws ArgumentNotValid {
  ArgumentNotValid.checkNotNull(files,"String_Node_Str");
  return new HeritrixLauncher(files);
}
Program: 89884
Project: 89884
Buggy source:
/** 
 * Sets the key to one or more values.  Calls to this method are forgotten whenever the   {@link #reload()} is executed.TODO write these values to its own simpleXml structure, that are not reset during reload.
 * @param key     The settings key to add this under, legal keys arefields in this class.
 * @param values  The (ordered) list of values to put under this key.
 * @throws ArgumentNotValid if key or values are null
 * @throws UnknownID        if the key does not already exist
 */
public static void set(String key,String... values){
  ArgumentNotValid.checkNotNullOrEmpty(key,"String_Node_Str");
  ArgumentNotValid.checkNotNull(values,"String_Node_Str");
  if (fileSettingsXmlList.isEmpty()) {
    fileSettingsXmlList.add(new SimpleXml("String_Node_Str"));
  }
  SimpleXml simpleXml=fileSettingsXmlList.get(0);
  if (simpleXml.hasKey(key)) {
    simpleXml.update(key,values);
  }
 else {
    simpleXml.add(key,values);
  }
}

Fixed version (ground truth):
/** 
 * Sets the key to one or more values. Calls to this method are forgotten whenever the   {@link #reload()} is executed.TODO write these values to its own simpleXml structure, that are not reset during reload.
 * @param key    The settings key to add this under, legal keys are fieldsin this class.
 * @param values The (ordered) list of values to put under this key.
 * @throws ArgumentNotValid if key or values are null
 * @throws UnknownID        if the key does not already exist
 */
public static void set(String key,String... values){
  ArgumentNotValid.checkNotNullOrEmpty(key,"String_Node_Str");
  ArgumentNotValid.checkNotNull(values,"String_Node_Str");
  if (fileSettingsXmlList.isEmpty()) {
    fileSettingsXmlList.add(new SimpleXml("String_Node_Str"));
  }
  SimpleXml simpleXml=fileSettingsXmlList.get(0);
  if (simpleXml.hasKey(key)) {
    simpleXml.update(key,values);
  }
 else {
    simpleXml.add(key,values);
  }
}
Program: 89885
Project: 89885
Buggy source:
/** 
 * Reloads the settings. This will reload the settings from disk, and forget all settings that were set with   {@link #set}The field   {@link #lastModified} is updated to timestampof the settings file that has been changed most recently.
 * @throws IOFailure if settings cannot be loaded
 * @see #conditionalReload()
 */
public static synchronized void reload(){
  lastModified=0;
  List<File> settingsFiles=getSettingsFiles();
  List<SimpleXml> simpleXmlList=new ArrayList<SimpleXml>();
  for (  File settingsFile : settingsFiles) {
    if (settingsFile.isFile()) {
      simpleXmlList.add(new SimpleXml(settingsFile));
    }
 else {
      log.warn("String_Node_Str" + settingsFile.getAbsolutePath() + "String_Node_Str");
    }
    if (settingsFile.lastModified() > lastModified) {
      lastModified=settingsFile.lastModified();
    }
  }
  fileSettingsXmlList=Collections.synchronizedList(simpleXmlList);
}

Fixed version (ground truth):
/** 
 * Reloads the settings. This will reload the settings from disk, and forget all settings that were set with   {@link #set}The field   {@link #lastModified} is updated to timestamp of the settingsfile that has been changed most recently.
 * @throws IOFailure if settings cannot be loaded
 * @see #conditionalReload()
 */
public static synchronized void reload(){
  lastModified=0;
  List<File> settingsFiles=getSettingsFiles();
  List<SimpleXml> simpleXmlList=new ArrayList<SimpleXml>();
  for (  File settingsFile : settingsFiles) {
    if (settingsFile.isFile()) {
      simpleXmlList.add(new SimpleXml(settingsFile));
    }
 else {
      log.warn("String_Node_Str" + settingsFile.getAbsolutePath() + "String_Node_Str");
    }
    if (settingsFile.lastModified() > lastModified) {
      lastModified=settingsFile.lastModified();
    }
  }
  fileSettingsXmlList.addAll(simpleXmlList);
}
Program: 89886
Project: 89886
Buggy source:
/** 
 * Add the settings file represented by this path to the list of default classpath settings.
 * @param defaultClasspathSettingsPath the given default classpath setting.
 */
public static void addDefaultClasspathSettings(String defaultClasspathSettingsPath){
  ArgumentNotValid.checkNotNullOrEmpty(defaultClasspathSettingsPath,"String_Node_Str");
  InputStream stream=Thread.currentThread().getContextClassLoader().getResourceAsStream(defaultClasspathSettingsPath);
  if (stream != null) {
    if (defaultClasspathSettingsXmlList == null) {
      defaultClasspathSettingsXmlList=Collections.synchronizedList(new ArrayList<SimpleXml>());
    }
    defaultClasspathSettingsXmlList.add(new SimpleXml(stream));
  }
 else {
    log.warn("String_Node_Str" + defaultClasspathSettingsPath + "String_Node_Str");
  }
}

Fixed version (ground truth):
/** 
 * Add the settings file represented by this path to the list of default classpath settings.
 * @param defaultClasspathSettingsPath the given default classpath setting.
 */
public static void addDefaultClasspathSettings(String defaultClasspathSettingsPath){
  ArgumentNotValid.checkNotNullOrEmpty(defaultClasspathSettingsPath,"String_Node_Str");
  InputStream stream=Thread.currentThread().getContextClassLoader().getResourceAsStream(defaultClasspathSettingsPath);
  if (stream != null) {
    defaultClasspathSettingsXmlList.add(new SimpleXml(stream));
  }
 else {
    log.warn("String_Node_Str" + defaultClasspathSettingsPath + "String_Node_Str");
  }
}
Program: 89887
Project: 89887
Buggy source:
/** 
 * Gets a setting. The search order for a given setting is as follows: First it is checked, if the argument key is set as a System property. If yes, return this value. If no, we continue the search. Secondly, we check, if the setting is in one of the loaded settings xml files. If the value is there, it is returned. If no, we continue the search. Finally, we check if the setting is in one of default settings  files from classpath. If the value is there, it is returned. Otherwise an UnknownId exception is thrown. Note: The retrieved value can be the empty string
 * @param key name of the setting to retrieve
 * @return the retrieved value
 * @throws ArgumentNotValid if key is null or the empty string
 * @throws UnknownID        if no setting loaded matches key
 * @throws IOFailure        if IO Failure
 */
public static String get(String key) throws UnknownID, IOFailure, ArgumentNotValid {
  ArgumentNotValid.checkNotNullOrEmpty(key,"String_Node_Str");
  String val=System.getProperty(key);
  if (val != null) {
    return val;
  }
synchronized (fileSettingsXmlList) {
    for (    SimpleXml settingsXml : fileSettingsXmlList) {
      if (settingsXml.hasKey(key)) {
        return settingsXml.getString(key);
      }
    }
  }
synchronized (defaultClasspathSettingsXmlList) {
    for (    SimpleXml settingsXml : defaultClasspathSettingsXmlList) {
      if (settingsXml.hasKey(key)) {
        return settingsXml.getString(key);
      }
    }
  }
  throw new UnknownID("String_Node_Str" + key + "String_Node_Str");
}

Fixed version (ground truth):
/** 
 * Gets a setting. The search order for a given setting is as follows: First it is checked, if the argument key is set as a System property. If yes, return this value. If no, we continue the search. Secondly, we check, if the setting is in one of the loaded settings xml files. If the value is there, it is returned. If no, we continue the search. Finally, we check if the setting is in one of default settings files from classpath. If the value is there, it is returned. Otherwise an UnknownId exception is thrown. Note: The retrieved value can be the empty string
 * @param key name of the setting to retrieve
 * @return the retrieved value
 * @throws ArgumentNotValid if key is null or the empty string
 * @throws UnknownID        if no setting loaded matches key
 * @throws IOFailure        if IO Failure
 */
public static String get(String key) throws UnknownID, IOFailure, ArgumentNotValid {
  ArgumentNotValid.checkNotNullOrEmpty(key,"String_Node_Str");
  String val=System.getProperty(key);
  if (val != null) {
    return val;
  }
synchronized (fileSettingsXmlList) {
    for (    SimpleXml settingsXml : fileSettingsXmlList) {
      if (settingsXml.hasKey(key)) {
        return settingsXml.getString(key);
      }
    }
  }
synchronized (defaultClasspathSettingsXmlList) {
    for (    SimpleXml settingsXml : defaultClasspathSettingsXmlList) {
      if (settingsXml.hasKey(key)) {
        return settingsXml.getString(key);
      }
    }
  }
  throw new UnknownID("String_Node_Str" + key + "String_Node_Str");
}
Program: 89890
Project: 89890
Buggy source:
/** 
 * Returns the queue for sending messages to bitarchive monitors.
 * @return the <code>ChannelID</code> object for this queue.
 * @throws IllegalState If the current replica is not a checksum replica.
 */
public static ChannelID getTheBamon() throws IllegalState {
  ChannelID res=getInstance().THE_BAMON;
  if (res == null) {
    throw new IllegalState("String_Node_Str" + "String_Node_Str" + Replica.getReplicaFromId(getInstance().allReplicaIds[getInstance().indexOfUseReplicaId]) + "String_Node_Str");
  }
  return res;
}

Fixed version (ground truth):
/** 
 * Returns the queue for sending messages to bitarchive monitors.
 * @return the <code>ChannelID</code> object for this queue.
 * @throws IllegalState If the current replica is not a checksum replica.
 */
public static ChannelID getTheBamon() throws IllegalState {
  ChannelID res=getInstance().THE_BAMON;
  if (res == null) {
    throw new IllegalState("String_Node_Str" + "String_Node_Str" + getInstance().useReplica + "String_Node_Str");
  }
  return res;
}
Program: 89893
Project: 89893
Buggy source:
@Override public void correct(String replicaId,String checksum,File file,String credentials){
  ArgumentNotValid.checkNotNullOrEmpty(replicaId,"String_Node_Str");
  ArgumentNotValid.checkNotNullOrEmpty(checksum,"String_Node_Str");
  ArgumentNotValid.checkNotNull(file,"String_Node_Str");
  ArgumentNotValid.checkNotNullOrEmpty(credentials,"String_Node_Str");
  RemoteFile rm=RemoteFileFactory.getCopyfileInstance(file);
  CorrectMessage correctMsg=new CorrectMessage(Channels.getTheRepos(),replyQ,checksum,rm);
  CorrectMessage responseMessage=(CorrectMessage)sendAndWaitForOneReply(correctMsg,0);
  if (responseMessage == null) {
    String msg="String_Node_Str" + "String_Node_Str";
    log.debug(msg);
    throw new IOFailure(msg);
  }
 else   if (!responseMessage.isOk()) {
    String msg="String_Node_Str" + responseMessage.getErrMsg();
    log.warn(msg);
    throw new IOFailure(msg);
  }
}

Fixed version (ground truth):
public void correct(String replicaId,String checksum,File file,String credentials){
  ArgumentNotValid.checkNotNullOrEmpty(replicaId,"String_Node_Str");
  ArgumentNotValid.checkNotNullOrEmpty(checksum,"String_Node_Str");
  ArgumentNotValid.checkNotNull(file,"String_Node_Str");
  ArgumentNotValid.checkNotNullOrEmpty(credentials,"String_Node_Str");
  RemoteFile rm=RemoteFileFactory.getCopyfileInstance(file);
  CorrectMessage correctMsg=new CorrectMessage(Channels.getTheRepos(),replyQ,checksum,rm);
  CorrectMessage responseMessage=(CorrectMessage)sendAndWaitForOneReply(correctMsg,0);
  if (responseMessage == null) {
    String msg="String_Node_Str" + "String_Node_Str";
    log.debug(msg);
    throw new IOFailure(msg);
  }
 else   if (!responseMessage.isOk()) {
    String msg="String_Node_Str" + responseMessage.getErrMsg();
    log.warn(msg);
    throw new IOFailure(msg);
  }
}
Program: 89894
Project: 89894
Buggy source:
/** 
 * Sends a BatchMessage to the Arcrepos queue and waits for the BatchReplyMessage reply before returning.
 * @param job        An object that implements the FileBatchJob interface.The initialize() method will be called before processing and the finish() method will be called afterwards.  The process() method will be called with each File entry.
 * @param replicaId The id of the archive to execute the job on
 * @return           A local batch status
 * @throws IOFailure if no results can be read at all
 */
public BatchStatus batch(FileBatchJob job,String replicaId){
  ArgumentNotValid.checkNotNull(job,"String_Node_Str");
  ArgumentNotValid.checkNotNullOrEmpty(replicaId,"String_Node_Str");
  log.debug("String_Node_Str" + job + "String_Node_Str"+ replicaId+ "String_Node_Str");
  BatchMessage bMsg=new BatchMessage(Channels.getTheRepos(),replyQ,job,replicaId);
  log.debug("String_Node_Str" + Channels.getTheRepos() + "String_Node_Str"+ replyQ+ "String_Node_Str");
  BatchReplyMessage brMsg=(BatchReplyMessage)sendAndWaitForOneReply(bMsg,0);
  if (!brMsg.isOk()) {
    String msg="String_Node_Str" + bMsg + "String_Node_Str"+ "String_Node_Str"+ brMsg.getErrMsg();
    log.warn(msg);
    if (brMsg.getResultFile() == null) {
      throw new IOFailure(msg);
    }
  }
  return new BatchStatus(brMsg.getFilesFailed(),brMsg.getNoOfFilesProcessed(),brMsg.getResultFile(),job.getExceptions());
}

Fixed version (ground truth):
/** 
 * Sends a BatchMessage to the Arcrepos queue and waits for the BatchReplyMessage reply before returning.
 * @param job       An object that implements the FileBatchJob interface.The initialize() method will be called before processing and the finish() method will be called afterwards.  The process() method will be called with each File entry.
 * @param replicaId The id of the archive to execute the job on
 * @return A local batch status
 * @throws IOFailure if no results can be read at all
 */
public BatchStatus batch(FileBatchJob job,String replicaId){
  ArgumentNotValid.checkNotNull(job,"String_Node_Str");
  ArgumentNotValid.checkNotNullOrEmpty(replicaId,"String_Node_Str");
  log.debug("String_Node_Str" + job + "String_Node_Str"+ replicaId+ "String_Node_Str");
  BatchMessage bMsg=new BatchMessage(Channels.getTheRepos(),replyQ,job,replicaId);
  log.debug("String_Node_Str" + Channels.getTheRepos() + "String_Node_Str"+ replyQ+ "String_Node_Str");
  BatchReplyMessage brMsg=(BatchReplyMessage)sendAndWaitForOneReply(bMsg,0);
  if (!brMsg.isOk()) {
    String msg="String_Node_Str" + bMsg + "String_Node_Str"+ "String_Node_Str"+ brMsg.getErrMsg();
    log.warn(msg);
    if (brMsg.getResultFile() == null) {
      throw new IOFailure(msg);
    }
  }
  return new BatchStatus(brMsg.getFilesFailed(),brMsg.getNoOfFilesProcessed(),brMsg.getResultFile(),job.getExceptions());
}
Program: 89896
Project: 89896
Buggy source:
/** 
 * Synchronously retrieves a file from a bitarchive and places it in a local file. This is the interface for sending GetFileMessage on the "TheArcrepos" queue. This is a blocking call.
 * @param arcfilename    Name of the arcfile to retrieve.
 * @param replica   The bitarchive to retrieve the data from.
 * @param toFile Filename of a place where the file fetched can be put.
 * @throws IOFailure if there are problems getting a reply or the filecould not be found.
 */
public void getFile(String arcfilename,Replica replica,File toFile){
  ArgumentNotValid.checkNotNullOrEmpty(arcfilename,"String_Node_Str");
  ArgumentNotValid.checkNotNull(replica,"String_Node_Str");
  ArgumentNotValid.checkNotNull(toFile,"String_Node_Str");
  log.debug("String_Node_Str" + arcfilename + "String_Node_Str"+ replica+ "String_Node_Str");
  GetFileMessage gfMsg=new GetFileMessage(Channels.getTheRepos(),replyQ,arcfilename,replica.getId());
  GetFileMessage getFileMessage=(GetFileMessage)sendAndWaitForOneReply(gfMsg,0);
  if (getFileMessage == null) {
    String msg="String_Node_Str" + "String_Node_Str";
    log.debug(msg);
    throw new IOFailure(msg);
  }
 else   if (!getFileMessage.isOk()) {
    String msg="String_Node_Str" + getFileMessage.getErrMsg();
    log.warn(msg);
    throw new IOFailure(msg);
  }
 else {
    getFileMessage.getData(toFile);
  }
}

Fixed version (ground truth):
/** 
 * Synchronously retrieves a file from a bitarchive and places it in a local file. This is the interface for sending GetFileMessage on the "TheArcrepos" queue. This is a blocking call.
 * @param arcfilename Name of the arcfile to retrieve.
 * @param replica     The bitarchive to retrieve the data from.
 * @param toFile      Filename of a place where the file fetched can beput.
 * @throws IOFailure if there are problems getting a reply or the file couldnot be found.
 */
public void getFile(String arcfilename,Replica replica,File toFile){
  ArgumentNotValid.checkNotNullOrEmpty(arcfilename,"String_Node_Str");
  ArgumentNotValid.checkNotNull(replica,"String_Node_Str");
  ArgumentNotValid.checkNotNull(toFile,"String_Node_Str");
  log.debug("String_Node_Str" + arcfilename + "String_Node_Str"+ replica+ "String_Node_Str");
  GetFileMessage gfMsg=new GetFileMessage(Channels.getTheRepos(),replyQ,arcfilename,replica.getId());
  GetFileMessage getFileMessage=(GetFileMessage)sendAndWaitForOneReply(gfMsg,0);
  if (getFileMessage == null) {
    String msg="String_Node_Str" + "String_Node_Str";
    log.debug(msg);
    throw new IOFailure(msg);
  }
 else   if (!getFileMessage.isOk()) {
    String msg="String_Node_Str" + getFileMessage.getErrMsg();
    log.warn(msg);
    throw new IOFailure(msg);
  }
 else {
    getFileMessage.getData(toFile);
  }
}
Program: 89897
Project: 89897
Buggy source:
/** 
 * Request update of admin data to specific state.
 * @param fileName The file for which admin data should be updated.
 * @param bitarchiveName The bitarchive for which admin data should beupdated.
 * @param newval The new value in admin data.
 * @throws IOFailure If the reply to the request update timed out.
 */
public void updateAdminData(String fileName,String bitarchiveName,BitArchiveStoreState newval){
  ArgumentNotValid.checkNotNullOrEmpty(fileName,"String_Node_Str");
  ArgumentNotValid.checkNotNullOrEmpty(bitarchiveName,"String_Node_Str");
  ArgumentNotValid.checkNotNull(newval,"String_Node_Str");
  String msg="String_Node_Str" + fileName + "String_Node_Str"+ bitarchiveName+ "String_Node_Str"+ newval;
  log.warn(msg);
  NotificationsFactory.getInstance().errorEvent(msg);
  AdminDataMessage aMsg=new AdminDataMessage(fileName,bitarchiveName,newval);
  sendAndWaitForOneReply(aMsg,0);
}

Fixed version (ground truth):
/** 
 * Request update of admin data to specific state.
 * @param fileName       The file for which admin data should be updated.
 * @param bitarchiveName The bitarchive for which admin data should beupdated.
 * @param newval         The new value in admin data.
 * @throws IOFailure If the reply to the request update timed out.
 */
public void updateAdminData(String fileName,String bitarchiveName,BitArchiveStoreState newval){
  ArgumentNotValid.checkNotNullOrEmpty(fileName,"String_Node_Str");
  ArgumentNotValid.checkNotNullOrEmpty(bitarchiveName,"String_Node_Str");
  ArgumentNotValid.checkNotNull(newval,"String_Node_Str");
  String msg="String_Node_Str" + fileName + "String_Node_Str"+ bitarchiveName+ "String_Node_Str"+ newval;
  log.warn(msg);
  NotificationsFactory.getInstance().errorEvent(msg);
  AdminDataMessage aMsg=new AdminDataMessage(fileName,bitarchiveName,newval);
  sendAndWaitForOneReply(aMsg,0);
}
Program: 89899
Project: 89899
Buggy source:
/** 
 * Adds this Synchronizer as listener on a jms connection.
 */
protected JMSArcRepositoryClient(){
  storeRetries=Settings.getLong(ARCREPOSITORY_STORE_RETRIES);
  storeTimeout=Settings.getLong(ARCREPOSITORY_STORE_TIMEOUT);
  getTimeout=Settings.getLong(ARCREPOSITORY_GET_TIMEOUT);
  log.info("String_Node_Str" + storeRetries + "String_Node_Str"+ storeTimeout+ "String_Node_Str"+ getTimeout+ "String_Node_Str");
  replyQ=Channels.getThisReposClient();
  ArgumentNotValid.checkNotNull(replyQ,"String_Node_Str");
  JMSConnectionFactory.getInstance().setListener(replyQ,this);
  log.info("String_Node_Str" + replyQ + "String_Node_Str");
}

Fixed version (ground truth):
/** 
 * Adds this Synchronizer as listener on a jms connection. 
 */
protected JMSArcRepositoryClient(){
  storeRetries=Settings.getLong(ARCREPOSITORY_STORE_RETRIES);
  storeTimeout=Settings.getLong(ARCREPOSITORY_STORE_TIMEOUT);
  getTimeout=Settings.getLong(ARCREPOSITORY_GET_TIMEOUT);
  log.info("String_Node_Str" + storeRetries + "String_Node_Str"+ storeTimeout+ "String_Node_Str"+ getTimeout+ "String_Node_Str");
  replyQ=Channels.getThisReposClient();
  JMSConnectionFactory.getInstance().setListener(replyQ,this);
  log.info("String_Node_Str" + replyQ + "String_Node_Str");
}
Program: 89900
Project: 89900
Buggy source:
/** 
 * Get an JMSArcRepositoryClient instance. This is guaranteed to be a singleton. 
 * @return an JMSArcRepositoryClient instance.
 */
public static synchronized JMSArcRepositoryClient getInstance(){
  if (instance == null) {
    instance=new JMSArcRepositoryClient();
  }
  return instance;
}

Fixed version (ground truth):
/** 
 * Get an JMSArcRepositoryClient instance. This is guaranteed to be a singleton.
 * @return an JMSArcRepositoryClient instance.
 */
public static synchronized JMSArcRepositoryClient getInstance(){
  if (instance == null) {
    instance=new JMSArcRepositoryClient();
  }
  return instance;
}
Program: 89901
Project: 89901
Buggy source:
/** 
 * Removes this object as a JMS listener.
 */
public void close(){
synchronized (this.getClass()) {
    JMSConnectionFactory.getInstance().removeListener(replyQ,this);
    instance=null;
  }
}

Fixed version (ground truth):
/** 
 * Removes this object as a JMS listener. 
 */
public void close(){
synchronized (JMSArcRepositoryClient.class) {
    JMSConnectionFactory.getInstance().removeListener(replyQ,this);
    instance=null;
  }
}
Program: 89903
Project: 89903
Buggy source:
/** 
 * Message to signal from BitarchiveMonitorServer that the batch job identified by originatingBatchMsgId is completed. Holds status information: list of files processed and a list of files on which the batch job failed
 * @param to The queue to which this message is to be sent. This willnormally be the ARCREPOS queue
 * @param replyTo The queue that should receive replies.
 * @param originatingBatchMsgId The Id of the BathMessage which gaverise to this reply
 * @param filesProcessed  the total number of file processed in thisbatch job
 * @param filesFailed a Collection<String> of the names of files onwhich this batch job failed
 * @param resultFile The RemoteFile containing the output fromthe batch job, or null if an error occurred that prevented the creation of the file.
 * @throws ArgumentNotValid if the input parameters are not meaningful
 */
public BatchReplyMessage(ChannelID to,ChannelID replyTo,String originatingBatchMsgId,int filesProcessed,Collection<File> filesFailed,RemoteFile resultFile) throws ArgumentNotValid {
  super(to,replyTo);
  ArgumentNotValid.checkNotNullOrEmpty(originatingBatchMsgId,"String_Node_Str");
  ArgumentNotValid.checkTrue(filesProcessed >= 0,"String_Node_Str");
  this.replyOfId=originatingBatchMsgId;
  this.noOfFilesProcessed=filesProcessed;
  if (filesFailed != null) {
    this.filesFailed=new HashSet<File>(filesFailed);
  }
 else {
    this.filesFailed=new HashSet<File>();
  }
  this.resultFile=resultFile;
}

Fixed version (ground truth):
/** 
 * Message to signal from BitarchiveMonitorServer that the batch job identified by originatingBatchMsgId is completed. Holds status information: list of files processed and a list of files on which the batch job failed
 * @param to                    The queue to which this message is to besent. This will normally be the ARCREPOS queue
 * @param replyTo               The queue that should receive replies.
 * @param originatingBatchMsgId The Id of the BathMessage which gave rise tothis reply
 * @param filesProcessed        the total number of file processed in thisbatch job
 * @param filesFailed           a Collection<String> of the names of fileson which this batch job failed. May be null or empty for no errors.
 * @param resultFile            The RemoteFile containing the output fromthe batch job, or null if an error occurred that prevented the creation of the file.
 * @throws ArgumentNotValid if the input parameters are not meaningful
 */
public BatchReplyMessage(ChannelID to,ChannelID replyTo,String originatingBatchMsgId,int filesProcessed,Collection<File> filesFailed,RemoteFile resultFile) throws ArgumentNotValid {
  super(to,replyTo);
  ArgumentNotValid.checkNotNullOrEmpty(originatingBatchMsgId,"String_Node_Str");
  ArgumentNotValid.checkTrue(filesProcessed >= 0,"String_Node_Str");
  this.replyOfId=originatingBatchMsgId;
  this.noOfFilesProcessed=filesProcessed;
  if (filesFailed != null) {
    this.filesFailed=new HashSet<File>(filesFailed);
  }
 else {
    this.filesFailed=new HashSet<File>();
  }
  this.resultFile=resultFile;
}
Program: 89904
Project: 89904
Buggy source:
/** 
 * Writes the files involved with a harvests. Creates the Heritrix arcs directory to ensure that this directory exists in advance.
 * @param crawldir        The directory that the crawl should take placein.
 * @param job             The Job object containing various harvest setupdata.
 * @param metadataEntries Any metadata entries sent along with the job thatshould be stored for later use.
 * @return An object encapsulating where these files have been written.
 */
public HeritrixFiles writeHarvestFiles(File crawldir,Job job,List<MetadataEntry> metadataEntries){
  final HeritrixFiles files=new HeritrixFiles(crawldir,job.getJobID(),job.getOrigHarvestDefinitionID());
  log.debug("String_Node_Str" + job.getJobID());
  new PersistentJobData(files.getCrawlDir()).write(job);
  writePreharvestMetadata(job,metadataEntries,crawldir);
  files.writeSeedsTxt(job.getSeedListAsString());
  files.writeOrderXml(job.getOrderXMLdoc());
  if (HeritrixLauncher.isDeduplicationEnabledInTemplate(job.getOrderXMLdoc())) {
    files.setIndexDir(fetchDeduplicateIndex(metadataEntries));
  }
  boolean created=files.getArcsDir().mkdir();
  if (!created) {
    log.warn("String_Node_Str" + files.getArcsDir());
  }
  return files;
}

Fixed version (ground truth):
/** 
 * Writes the files involved with a harvests. Creates the Heritrix arcs directory to ensure that this directory exists in advance.
 * @param crawldir        The directory that the crawl should take placein.
 * @param job             The Job object containing various harvest setupdata.
 * @param metadataEntries Any metadata entries sent along with the job thatshould be stored for later use.
 * @return An object encapsulating where these files have been written.
 */
public HeritrixFiles writeHarvestFiles(File crawldir,Job job,List<MetadataEntry> metadataEntries){
  final HeritrixFiles files=new HeritrixFiles(crawldir,job.getJobID(),job.getOrigHarvestDefinitionID());
  log.debug("String_Node_Str" + job.getJobID());
  new PersistentJobData(files.getCrawlDir()).write(job);
  writePreharvestMetadata(job,metadataEntries,crawldir);
  files.writeSeedsTxt(job.getSeedListAsString());
  files.writeOrderXml(job.getOrderXMLdoc());
  if (HeritrixLauncher.isDeduplicationEnabledInTemplate(job.getOrderXMLdoc())) {
    log.debug("String_Node_Str");
    files.setIndexDir(fetchDeduplicateIndex(metadataEntries));
  }
 else {
    log.debug("String_Node_Str");
  }
  boolean created=files.getArcsDir().mkdir();
  if (!created) {
    log.warn("String_Node_Str" + files.getArcsDir());
  }
  return files;
}