Program: 110510
Project: 110510
Buggy source:
/** 
 * Method responsible for a single Streaming RPC. 
 */
private void publishEventStream(final ConcurrentLinkedDeque<InternalOrderedBuildEvent> pendingAck,final BlockingDeque<InternalOrderedBuildEvent> pendingSend,final BuildEventServiceClient besClient) throws Exception {
  logger.log(Level.INFO,String.format("String_Node_Str",pendingSend.size()));
  ListenableFuture<Status> streamDone=besClient.openStream(ackCallback(pendingAck,besClient));
  logger.log(Level.INFO,String.format("String_Node_Str",pendingSend.size()));
  try {
    @Nullable InternalOrderedBuildEvent orderedBuildEvent;
    do {
      orderedBuildEvent=pendingSend.pollFirst(STREAMING_RPC_POLL_IN_SECS,TimeUnit.SECONDS);
      if (orderedBuildEvent != null) {
        PathConverter pathConverter;
        try {
          pathConverter=orderedBuildEvent.localFileUploadProgress().get();
        }
 catch (        ExecutionException e) {
          logger.log(Level.WARNING,String.format("String_Node_Str" + "String_Node_Str",e.getMessage()),e);
          besClient.abortStream(Status.INTERNAL.augmentDescription(e.getMessage()));
          throw e;
        }
catch (        InterruptedException e) {
          Thread.interrupted();
          String additionalDetails="String_Node_Str";
          besClient.abortStream(Status.CANCELLED.augmentDescription(additionalDetails));
          throw e;
        }
        pendingAck.add(orderedBuildEvent);
        besClient.sendOverStream(orderedBuildEvent.serialize(pathConverter));
      }
      checkState(besClient.isStreamActive(),"String_Node_Str");
    }
 while (orderedBuildEvent == null || !orderedBuildEvent.isLastEvent());
    logger.log(Level.INFO,String.format("String_Node_Str",orderedBuildEvent.isLastEvent(),besClient.isStreamActive()));
  }
 catch (  InterruptedException e) {
    Thread.interrupted();
    String additionalDetails="String_Node_Str";
    besClient.abortStream(Status.CANCELLED.augmentDescription(additionalDetails));
    throw e;
  }
catch (  Exception e) {
    Status status=streamDone.isDone() ? streamDone.get() : null;
    String additionalDetail=e.getMessage();
    logger.log(Level.WARNING,String.format("String_Node_Str",status,additionalDetail),e);
    besClient.abortStream(Status.INTERNAL.augmentDescription(additionalDetail));
    throw e;
  }
  try {
    Status status=streamDone.get(PUBLISH_EVENT_STREAM_FINISHED_TIMEOUT.toMillis(),TimeUnit.MILLISECONDS);
    logger.log(Level.INFO,"String_Node_Str" + status);
  }
 catch (  InterruptedException e) {
    Thread.interrupted();
    String additionalDetails="String_Node_Str";
    besClient.abortStream(Status.CANCELLED.augmentDescription(additionalDetails));
    throw e;
  }
catch (  TimeoutException e) {
    String additionalDetail="String_Node_Str";
    logger.log(Level.WARNING,"String_Node_Str" + additionalDetail);
    besClient.abortStream(Status.CANCELLED.augmentDescription(additionalDetail));
    throw e;
  }
}

Fixed version (ground truth):
/** 
 * Method responsible for a single Streaming RPC. 
 */
private void publishEventStream(final ConcurrentLinkedDeque<InternalOrderedBuildEvent> pendingAck,final BlockingDeque<InternalOrderedBuildEvent> pendingSend,final BuildEventServiceClient besClient) throws Exception {
  logger.log(Level.INFO,String.format("String_Node_Str",pendingSend.size()));
  ListenableFuture<Status> streamDone=besClient.openStream(ackCallback(pendingAck,besClient));
  logger.log(Level.INFO,String.format("String_Node_Str",pendingSend.size()));
  try {
    @Nullable InternalOrderedBuildEvent orderedBuildEvent;
    do {
      orderedBuildEvent=pendingSend.pollFirst(STREAMING_RPC_POLL_IN_SECS,TimeUnit.SECONDS);
      if (orderedBuildEvent != null) {
        pendingAck.add(orderedBuildEvent);
        PathConverter pathConverter=waitForLocalFileUploads(orderedBuildEvent);
        besClient.sendOverStream(orderedBuildEvent.serialize(pathConverter));
      }
      checkState(besClient.isStreamActive(),"String_Node_Str");
    }
 while (orderedBuildEvent == null || !orderedBuildEvent.isLastEvent());
    logger.log(Level.INFO,String.format("String_Node_Str",orderedBuildEvent.isLastEvent(),besClient.isStreamActive()));
  }
 catch (  InterruptedException e) {
    Thread.interrupted();
    String additionalDetails="String_Node_Str";
    besClient.abortStream(Status.CANCELLED.augmentDescription(additionalDetails));
    throw e;
  }
catch (  Exception e) {
    Status status=streamDone.isDone() ? streamDone.get() : null;
    String additionalDetail=e.getMessage();
    logger.log(Level.WARNING,String.format("String_Node_Str",status,additionalDetail),e);
    besClient.abortStream(Status.INTERNAL.augmentDescription(additionalDetail));
    throw e;
  }
  try {
    Status status=streamDone.get(PUBLISH_EVENT_STREAM_FINISHED_TIMEOUT.toMillis(),TimeUnit.MILLISECONDS);
    logger.log(Level.INFO,"String_Node_Str" + status);
  }
 catch (  InterruptedException e) {
    Thread.interrupted();
    String additionalDetails="String_Node_Str";
    besClient.abortStream(Status.CANCELLED.augmentDescription(additionalDetails));
    throw e;
  }
catch (  TimeoutException e) {
    String additionalDetail="String_Node_Str";
    logger.log(Level.WARNING,"String_Node_Str" + additionalDetail);
    besClient.abortStream(Status.CANCELLED.augmentDescription(additionalDetail));
    throw e;
  }
}