Program: 79539
Project: 79539
Buggy source:
@Override public void start(Collection<? extends Location> locsO){
  if (locsO != null) {
    checkArgument(locsO.size() <= 1,"String_Node_Str",this,locsO);
    addLocations(locsO);
  }
  Location loc=getLocation();
  EntitySpec<?> spec=getConfig(MEMBER_SPEC);
  if (spec != null) {
    setDefaultDisplayName("String_Node_Str" + JavaClassNames.simpleClassName(spec.getType()) + "String_Node_Str"+ loc+ "String_Node_Str");
  }
  if (isAvailabilityZoneEnabled()) {
    setAttribute(SUB_LOCATIONS,findSubLocations(loc));
  }
  setAttribute(SERVICE_STATE,Lifecycle.STARTING);
  try {
    if (isQuarantineEnabled()) {
      Group quarantineGroup=addChild(EntitySpec.create(BasicGroup.class).displayName("String_Node_Str"));
      Entities.manage(quarantineGroup);
      setAttribute(QUARANTINE_GROUP,quarantineGroup);
    }
    int initialSize=getConfig(INITIAL_SIZE).intValue();
    int initialQuorumSize=getInitialQuorumSize();
    resize(initialSize);
    int currentSize=getCurrentSize().intValue();
    if (currentSize < initialQuorumSize) {
      throw new IllegalStateException("String_Node_Str" + this + "String_Node_Str"+ initialSize+ "String_Node_Str"+ getCurrentSize()+ (initialQuorumSize != initialSize ? "String_Node_Str" + initialQuorumSize + "String_Node_Str" : "String_Node_Str"));
    }
 else     if (currentSize < initialSize) {
      LOG.warn("String_Node_Str",new Object[]{this,currentSize,initialQuorumSize,initialSize});
    }
    for (    Policy it : getPolicies()) {
      it.resume();
    }
    setAttribute(SERVICE_STATE,Lifecycle.RUNNING);
    setAttribute(SERVICE_UP,calculateServiceUp());
  }
 catch (  Exception e) {
    setAttribute(SERVICE_STATE,Lifecycle.ON_FIRE);
    throw Exceptions.propagate(e);
  }
}

Fixed version (ground truth):
@Override public void start(Collection<? extends Location> locsO){
  if (locsO != null) {
    checkArgument(locsO.size() <= 1,"String_Node_Str",this,locsO);
    addLocations(locsO);
  }
  Location loc=getLocation();
  EntitySpec<?> spec=getConfig(MEMBER_SPEC);
  if (spec != null) {
    setDefaultDisplayName("String_Node_Str" + JavaClassNames.simpleClassName(spec.getType()) + "String_Node_Str"+ loc+ "String_Node_Str");
  }
  if (isAvailabilityZoneEnabled()) {
    setAttribute(SUB_LOCATIONS,findSubLocations(loc));
  }
  setAttribute(SERVICE_STATE,Lifecycle.STARTING);
  try {
    if (isQuarantineEnabled()) {
      Group quarantineGroup=addChild(EntitySpec.create(BasicGroup.class).displayName("String_Node_Str"));
      Entities.manage(quarantineGroup);
      setAttribute(QUARANTINE_GROUP,quarantineGroup);
    }
    int initialSize=getConfig(INITIAL_SIZE).intValue();
    int initialQuorumSize=getInitialQuorumSize();
    resize(initialSize);
    Maybe<Task<?>> firstFailed=Maybe.next(Tasks.failed(Tasks.children(Tasks.current())).iterator());
    int currentSize=getCurrentSize().intValue();
    if (currentSize < initialQuorumSize) {
      String message;
      if (currentSize == 0 && firstFailed.isPresent()) {
        message="String_Node_Str" + this + "String_Node_Str";
      }
 else {
        message="String_Node_Str" + this + "String_Node_Str"+ initialSize+ "String_Node_Str"+ getCurrentSize()+ (initialQuorumSize != initialSize ? "String_Node_Str" + initialQuorumSize + "String_Node_Str" : "String_Node_Str");
      }
      Throwable firstError=Tasks.getError(firstFailed.orNull());
      if (firstError != null)       message+="String_Node_Str" + Exceptions.collapseText(firstError);
      throw new IllegalStateException(message,firstError);
    }
 else     if (currentSize < initialSize) {
      LOG.warn("String_Node_Str",new Object[]{this,currentSize,initialQuorumSize,initialSize});
    }
    for (    Policy it : getPolicies()) {
      it.resume();
    }
    setAttribute(SERVICE_STATE,Lifecycle.RUNNING);
    setAttribute(SERVICE_UP,calculateServiceUp());
  }
 catch (  Exception e) {
    setAttribute(SERVICE_STATE,Lifecycle.ON_FIRE);
    throw Exceptions.propagate(e);
  }
}