Program: 5877
Project: 5877
Buggy source:
@Inject public FileLogAppender(CConfiguration cConfig,DatasetFramework dsFramework,TransactionExecutorFactory txExecutorFactory,NamespacedLocationFactory namespacedLocationFactory,RootLocationFactory rootLocationFactory,Impersonator impersonator){
  setName(APPENDER_NAME);
  this.cConf=cConfig;
  this.tableUtil=new LogSaverTableUtil(dsFramework,cConfig);
  this.txExecutorFactory=txExecutorFactory;
  this.namespacedLocationFactory=namespacedLocationFactory;
  this.rootLocationFactory=rootLocationFactory;
  this.impersonator=impersonator;
  this.logBaseDir=cConfig.get(LoggingConfiguration.LOG_BASE_DIR);
  Preconditions.checkNotNull(logBaseDir,"String_Node_Str");
  this.syncIntervalBytes=cConfig.getInt(LoggingConfiguration.LOG_FILE_SYNC_INTERVAL_BYTES,2 * 1024 * 1024);
  Preconditions.checkArgument(this.syncIntervalBytes > 0,"String_Node_Str",this.syncIntervalBytes);
  long retentionDurationDays=cConfig.getLong(LoggingConfiguration.LOG_RETENTION_DURATION_DAYS,-1);
  Preconditions.checkArgument(retentionDurationDays > 0,"String_Node_Str",retentionDurationDays);
  this.retentionDurationMs=TimeUnit.MILLISECONDS.convert(retentionDurationDays,TimeUnit.DAYS);
  maxLogFileSizeBytes=cConfig.getLong(LoggingConfiguration.LOG_MAX_FILE_SIZE_BYTES,20 * 1024 * 1024);
  Preconditions.checkArgument(maxLogFileSizeBytes > 0,"String_Node_Str",maxLogFileSizeBytes);
  inactiveIntervalMs=cConfig.getLong(LoggingConfiguration.LOG_SAVER_INACTIVE_FILE_INTERVAL_MS,LoggingConfiguration.DEFAULT_LOG_SAVER_INACTIVE_FILE_INTERVAL_MS);
  Preconditions.checkArgument(inactiveIntervalMs > 0,"String_Node_Str",inactiveIntervalMs);
  checkpointIntervalMs=cConfig.getLong(LoggingConfiguration.LOG_SAVER_CHECKPOINT_INTERVAL_MS,LoggingConfiguration.DEFAULT_LOG_SAVER_CHECKPOINT_INTERVAL_MS);
  Preconditions.checkArgument(checkpointIntervalMs > 0,"String_Node_Str",checkpointIntervalMs);
  logCleanupIntervalMins=cConfig.getInt(LoggingConfiguration.LOG_CLEANUP_RUN_INTERVAL_MINS,LoggingConfiguration.DEFAULT_LOG_CLEANUP_RUN_INTERVAL_MINS);
  Preconditions.checkArgument(logCleanupIntervalMins > 0,"String_Node_Str",logCleanupIntervalMins);
  this.scheduledExecutor=MoreExecutors.listeningDecorator(Executors.newSingleThreadScheduledExecutor(Threads.createDaemonThreadFactory("String_Node_Str")));
}

Fixed version (ground truth):
@Inject public FileLogAppender(CConfiguration cConfig,DatasetFramework dsFramework,TransactionExecutorFactory txExecutorFactory,NamespacedLocationFactory namespacedLocationFactory,RootLocationFactory rootLocationFactory,Impersonator impersonator){
  setName(APPENDER_NAME);
  this.cConf=cConfig;
  this.tableUtil=new LogSaverTableUtil(dsFramework,cConfig);
  this.txExecutorFactory=txExecutorFactory;
  this.namespacedLocationFactory=namespacedLocationFactory;
  this.rootLocationFactory=rootLocationFactory;
  this.impersonator=impersonator;
  this.logBaseDir=cConfig.get(LoggingConfiguration.LOG_BASE_DIR);
  Preconditions.checkNotNull(logBaseDir,"String_Node_Str");
  this.syncIntervalBytes=cConfig.getInt(LoggingConfiguration.LOG_FILE_SYNC_INTERVAL_BYTES,2 * 1024 * 1024);
  Preconditions.checkArgument(this.syncIntervalBytes > 0,"String_Node_Str",this.syncIntervalBytes);
  long retentionDurationDays=cConfig.getLong(LoggingConfiguration.LOG_RETENTION_DURATION_DAYS,-1);
  Preconditions.checkArgument(retentionDurationDays > 0,"String_Node_Str",retentionDurationDays);
  this.retentionDurationMs=TimeUnit.MILLISECONDS.convert(retentionDurationDays,TimeUnit.DAYS);
  maxLogFileSizeBytes=cConfig.getLong(LoggingConfiguration.LOG_MAX_FILE_SIZE_BYTES,20 * 1024 * 1024);
  Preconditions.checkArgument(maxLogFileSizeBytes > 0,"String_Node_Str",maxLogFileSizeBytes);
  maxFileLifetimeMs=cConfig.getLong(LoggingConfiguration.LOG_SAVER_MAX_FILE_LIFETIME,LoggingConfiguration.DEFAULT_LOG_SAVER_MAX_FILE_LIFETIME_MS);
  Preconditions.checkArgument(maxFileLifetimeMs > 0,"String_Node_Str",maxFileLifetimeMs);
  if (cConf.get(LoggingConfiguration.LOG_SAVER_INACTIVE_FILE_INTERVAL_MS) != null) {
    LOG.warn("String_Node_Str",LoggingConfiguration.LOG_SAVER_INACTIVE_FILE_INTERVAL_MS,LoggingConfiguration.LOG_SAVER_MAX_FILE_LIFETIME);
  }
  checkpointIntervalMs=cConfig.getLong(LoggingConfiguration.LOG_SAVER_CHECKPOINT_INTERVAL_MS,LoggingConfiguration.DEFAULT_LOG_SAVER_CHECKPOINT_INTERVAL_MS);
  Preconditions.checkArgument(checkpointIntervalMs > 0,"String_Node_Str",checkpointIntervalMs);
  logCleanupIntervalMins=cConfig.getInt(LoggingConfiguration.LOG_CLEANUP_RUN_INTERVAL_MINS,LoggingConfiguration.DEFAULT_LOG_CLEANUP_RUN_INTERVAL_MINS);
  Preconditions.checkArgument(logCleanupIntervalMins > 0,"String_Node_Str",logCleanupIntervalMins);
  this.scheduledExecutor=MoreExecutors.listeningDecorator(Executors.newSingleThreadScheduledExecutor(Threads.createDaemonThreadFactory("String_Node_Str")));
}