Program: 86029
Project: 86029
Buggy source:
public static void main(final String[] args) throws InterruptedException, IOException {
  final Options options=new Options();
  options.addOption("String_Node_Str",true,"String_Node_Str" + rateDefault + "String_Node_Str");
  options.addOption("String_Node_Str",true,"String_Node_Str" + durationDefault + "String_Node_Str");
  options.addOption("String_Node_Str",true,"String_Node_Str" + maxConnectionsDefault + "String_Node_Str");
  options.addOption("String_Node_Str",true,"String_Node_Str" + timeoutDefault + "String_Node_Str");
  options.addOption("String_Node_Str",true,"String_Node_Str" + printCycleDefault + "String_Node_Str");
  options.addOption("String_Node_Str",true,"String_Node_Str" + checkCycleDefault + "String_Node_Str");
  options.addOption("String_Node_Str",false,"String_Node_Str");
  options.addOption("String_Node_Str",false,"String_Node_Str");
  options.addOption("String_Node_Str",true,"String_Node_Str" + testNameDefault + "String_Node_Str");
  options.addOption("String_Node_Str",false,"String_Node_Str");
  try {
    final CommandLine cmd=new BasicParser().parse(options,args);
    final String[] ar=cmd.getArgs();
    if (cmd.hasOption("String_Node_Str") || ar.length != 1)     printUsageAndExit(options);
    final String url=ar[0];
    final int timeout=Integer.parseInt(cmd.getOptionValue("String_Node_Str",timeoutDefault));
    final int maxConnections=Integer.parseInt(cmd.getOptionValue("String_Node_Str",maxConnectionsDefault));
    final int duration=Integer.parseInt(cmd.getOptionValue("String_Node_Str",durationDefault));
    final int printCycle=Integer.parseInt(cmd.getOptionValue("String_Node_Str",printCycleDefault));
    final int checkCycle=Integer.parseInt(cmd.getOptionValue("String_Node_Str",checkCycleDefault));
    final String testName=cmd.getOptionValue("String_Node_Str",testNameDefault);
    final int rate=Integer.parseInt(cmd.getOptionValue("String_Node_Str",rateDefault));
    final MetricRegistry metrics=new MetricRegistry();
    final Meter requestMeter=metrics.meter("String_Node_Str");
    final Meter responseMeter=metrics.meter("String_Node_Str");
    final Meter errorsMeter=metrics.meter("String_Node_Str");
    final Logger log=LoggerFactory.getLogger(Photon.class);
    final ConcurrentHashMap<String,AtomicInteger> errors=new ConcurrentHashMap<>();
    final HttpGet request=new HttpGet(url);
    final StripedTimeSeries<Long> sts=new StripedTimeSeries<>(30000,false);
    final StripedHistogram sh=new StripedHistogram(60000,5);
    log.info("String_Node_Str" + testName + "String_Node_Str"+ url+ "String_Node_Str"+ rate+ "String_Node_Str"+ duration+ "String_Node_Str"+ maxConnections+ "String_Node_Str"+ "String_Node_Str"+ timeout);
    final DefaultConnectingIOReactor ioreactor=new DefaultConnectingIOReactor(IOReactorConfig.custom().setConnectTimeout(timeout).setIoThreadCount(10).setSoTimeout(timeout).build());
    Runtime.getRuntime().addShutdownHook(new Thread(() -> {
      final List<ExceptionEvent> events=ioreactor.getAuditLog();
      for (      ExceptionEvent event : events) {
        System.err.println("String_Node_Str" + event.getTimestamp());
        if (event.getCause() != null)         event.getCause().printStackTrace();
      }
      if (cmd.hasOption("String_Node_Str"))       printFinishStatistics(errorsMeter,sts,sh,testName);
      if (!errors.keySet().isEmpty())       errors.entrySet().stream().forEach(p -> log.info(testName + "String_Node_Str" + p.getKey()+ "String_Node_Str"+ p.getValue()+ "String_Node_Str"));
      System.out.println(testName + "String_Node_Str" + sh.getHistogramData().getValueAtPercentile(90)+ "String_Node_Str");
      if (cmd.hasOption("String_Node_Str")) {
        final HistogramData hd=sh.getHistogramData();
        System.out.format("String_Node_Str",testName,"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
        System.out.format("String_Node_Str",testName,hd.getMinValue(),hd.getMean(),hd.getStdDeviation(),hd.getMaxValue());
      }
    }
));
    final PoolingNHttpClientConnectionManager mngr=new PoolingNHttpClientConnectionManager(ioreactor);
    mngr.setDefaultMaxPerRoute(maxConnections);
    mngr.setMaxTotal(maxConnections);
    final CloseableHttpAsyncClient ahc=HttpAsyncClientBuilder.create().setConnectionManager(mngr).setDefaultRequestConfig(RequestConfig.custom().setLocalAddress(null).build()).build();
    try (final CloseableHttpClient client=new FiberHttpClient(ahc)){
      final int num=duration * rate;
      final CountDownLatch cdl=new CountDownLatch(num);
      final Semaphore sem=new Semaphore(maxConnections);
      final RateLimiter rl=RateLimiter.create(rate);
      spawnStatisticsThread(printCycle,cdl,log,requestMeter,responseMeter,errorsMeter,testName);
      for (int i=0; i < num; i++) {
        rl.acquire();
        if (sem.availablePermits() == 0)         System.out.println(new Date() + "String_Node_Str");
        sem.acquireUninterruptibly();
        new Fiber<Void>(() -> {
          requestMeter.mark();
          final long start=System.nanoTime();
          try {
            try (final CloseableHttpResponse ignored=client.execute(request)){
              responseMeter.mark();
            }
 catch (            final Throwable t) {
              markError(errorsMeter,errors,t);
            }
          }
 catch (          final Throwable t) {
            markError(errorsMeter,errors,t);
          }
 finally {
            final long now=System.nanoTime();
            final long millis=TimeUnit.NANOSECONDS.toMillis(now - start);
            sts.record(start,millis);
            sh.recordValue(millis);
            sem.release();
            cdl.countDown();
          }
        }
).start();
      }
      spawnProgressCheckThread(log,duration,checkCycle,cdl);
      cdl.await();
    }
   }
 catch (  final ParseException ex) {
    System.err.println("String_Node_Str" + ex.getMessage());
  }
}

Fixed version (ground truth):
public static void main(final String[] args) throws InterruptedException, IOException {
  final Options options=new Options();
  options.addOption("String_Node_Str",true,"String_Node_Str" + rateDefault + "String_Node_Str");
  options.addOption("String_Node_Str",true,"String_Node_Str" + durationDefault + "String_Node_Str");
  options.addOption("String_Node_Str",true,"String_Node_Str" + maxConnectionsDefault + "String_Node_Str");
  options.addOption("String_Node_Str",true,"String_Node_Str" + timeoutDefault + "String_Node_Str");
  options.addOption("String_Node_Str",true,"String_Node_Str" + printCycleDefault + "String_Node_Str");
  options.addOption("String_Node_Str",true,"String_Node_Str" + checkCycleDefault + "String_Node_Str");
  options.addOption("String_Node_Str",false,"String_Node_Str");
  options.addOption("String_Node_Str",false,"String_Node_Str");
  options.addOption("String_Node_Str",true,"String_Node_Str" + testNameDefault + "String_Node_Str");
  options.addOption("String_Node_Str",false,"String_Node_Str");
  try {
    final CommandLine cmd=new BasicParser().parse(options,args);
    final String[] ar=cmd.getArgs();
    if (cmd.hasOption("String_Node_Str") || ar.length != 1)     printUsageAndExit(options);
    final String url=ar[0];
    final int timeout=Integer.parseInt(cmd.getOptionValue("String_Node_Str",timeoutDefault));
    final int maxConnections=Integer.parseInt(cmd.getOptionValue("String_Node_Str",maxConnectionsDefault));
    final int duration=Integer.parseInt(cmd.getOptionValue("String_Node_Str",durationDefault));
    final int printCycle=Integer.parseInt(cmd.getOptionValue("String_Node_Str",printCycleDefault));
    final int checkCycle=Integer.parseInt(cmd.getOptionValue("String_Node_Str",checkCycleDefault));
    final String testName=cmd.getOptionValue("String_Node_Str",testNameDefault);
    final int rate=Integer.parseInt(cmd.getOptionValue("String_Node_Str",rateDefault));
    final MetricRegistry metrics=new MetricRegistry();
    final Meter requestMeter=metrics.meter("String_Node_Str");
    final Meter responseMeter=metrics.meter("String_Node_Str");
    final Meter errorsMeter=metrics.meter("String_Node_Str");
    final Logger log=LoggerFactory.getLogger(Photon.class);
    final ConcurrentHashMap<String,AtomicInteger> errors=new ConcurrentHashMap<>();
    final HttpGet request=new HttpGet(url);
    final StripedTimeSeries<Long> sts=new StripedTimeSeries<>(30000,false);
    final StripedHistogram sh=new StripedHistogram(60000,5);
    log.info("String_Node_Str" + testName + "String_Node_Str"+ url+ "String_Node_Str"+ rate+ "String_Node_Str"+ duration+ "String_Node_Str"+ maxConnections+ "String_Node_Str"+ "String_Node_Str"+ timeout);
    final DefaultConnectingIOReactor ioreactor=new DefaultConnectingIOReactor(IOReactorConfig.custom().setConnectTimeout(timeout).setIoThreadCount(10).setSoTimeout(timeout).build());
    Runtime.getRuntime().addShutdownHook(new Thread(() -> {
      final List<ExceptionEvent> events=ioreactor.getAuditLog();
      if (events != null)       events.stream().filter(event -> event != null).forEach(event -> {
        System.err.println("String_Node_Str" + event.getTimestamp());
        if (event.getCause() != null)         event.getCause().printStackTrace();
      }
);
      if (cmd.hasOption("String_Node_Str"))       printFinishStatistics(errorsMeter,sts,sh,testName);
      if (!errors.keySet().isEmpty())       errors.entrySet().stream().forEach(p -> log.info(testName + "String_Node_Str" + p.getKey()+ "String_Node_Str"+ p.getValue()+ "String_Node_Str"));
      System.out.println(testName + "String_Node_Str" + sh.getHistogramData().getValueAtPercentile(90)+ "String_Node_Str");
      if (cmd.hasOption("String_Node_Str")) {
        final HistogramData hd=sh.getHistogramData();
        System.out.format("String_Node_Str",testName,"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
        System.out.format("String_Node_Str",testName,hd.getMinValue(),hd.getMean(),hd.getStdDeviation(),hd.getMaxValue());
      }
    }
));
    final PoolingNHttpClientConnectionManager mngr=new PoolingNHttpClientConnectionManager(ioreactor);
    mngr.setDefaultMaxPerRoute(maxConnections);
    mngr.setMaxTotal(maxConnections);
    final CloseableHttpAsyncClient ahc=HttpAsyncClientBuilder.create().setConnectionManager(mngr).setDefaultRequestConfig(RequestConfig.custom().setLocalAddress(null).build()).build();
    try (final CloseableHttpClient client=new FiberHttpClient(ahc)){
      final int num=duration * rate;
      final CountDownLatch cdl=new CountDownLatch(num);
      final Semaphore sem=new Semaphore(maxConnections);
      final RateLimiter rl=RateLimiter.create(rate);
      spawnStatisticsThread(printCycle,cdl,log,requestMeter,responseMeter,errorsMeter,testName);
      for (int i=0; i < num; i++) {
        rl.acquire();
        if (sem.availablePermits() == 0)         System.out.println(new Date() + "String_Node_Str");
        sem.acquireUninterruptibly();
        new Fiber<Void>(() -> {
          requestMeter.mark();
          final long start=System.nanoTime();
          try {
            try (final CloseableHttpResponse ignored=client.execute(request)){
              responseMeter.mark();
            }
 catch (            final Throwable t) {
              markError(errorsMeter,errors,t);
            }
          }
 catch (          final Throwable t) {
            markError(errorsMeter,errors,t);
          }
 finally {
            final long now=System.nanoTime();
            final long millis=TimeUnit.NANOSECONDS.toMillis(now - start);
            sts.record(start,millis);
            sh.recordValue(millis);
            sem.release();
            cdl.countDown();
          }
        }
).start();
      }
      spawnProgressCheckThread(log,duration,checkCycle,cdl);
      cdl.await();
    }
   }
 catch (  final ParseException ex) {
    System.err.println("String_Node_Str" + ex.getMessage());
  }
}