Program: 49271
Project: 49271
Buggy source:
/** 
 * Creates a Subscription object using information derived from the specified pool. Used to support deprecated API calls that still require a subscription.
 * @param pool The pool from which to build a subscription
 * @return a new subscription object derived from the specified pool.
 */
@Override public Subscription fabricateSubscriptionFromPool(Pool pool){
  if (pool == null) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  Long poolQuantity=pool.getQuantity();
  Long multiplier=1L;
  if (pool.getProduct() != null) {
    multiplier=pool.getProduct().getMultiplier();
  }
 else {
    log.error("String_Node_Str",pool.getId());
  }
  if (poolQuantity != null && multiplier != null && multiplier != 0 && pool.getProduct() != null) {
    if (poolQuantity % multiplier != 0) {
      log.error("String_Node_Str" + "String_Node_Str",pool.getId(),poolQuantity,multiplier);
    }
 else {
      poolQuantity/=multiplier;
    }
    if (pool.getProduct().hasAttribute("String_Node_Str") && pool.getUpstreamPoolId() == null) {
      Integer instMult=null;
      String stringInstmult=pool.getProduct().getAttributeValue("String_Node_Str");
      try {
        instMult=Integer.parseInt(stringInstmult);
      }
 catch (      NumberFormatException nfe) {
        log.error("String_Node_Str",stringInstmult);
      }
      if (instMult != null && instMult != 0 && poolQuantity % instMult == 0) {
        poolQuantity/=instMult;
      }
 else {
        log.error("String_Node_Str" + "String_Node_Str",poolQuantity,instMult,poolQuantity);
      }
    }
  }
 else {
    log.warn("String_Node_Str",poolQuantity,multiplier,pool.getProduct());
  }
  return new Subscription(pool);
}

Fixed version (ground truth):
/** 
 * Creates a Subscription object using information derived from the specified pool. Used to support deprecated API calls that still require a subscription.
 * @param pool The pool from which to build a subscription
 * @return a new subscription object derived from the specified pool.
 */
@Override public Subscription fabricateSubscriptionFromPool(Pool pool){
  if (pool == null) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  Long poolQuantity=pool.getQuantity();
  Long multiplier=1L;
  if (pool.getProduct() != null) {
    multiplier=pool.getProduct().getMultiplier();
  }
 else {
    log.error("String_Node_Str",pool.getId());
  }
  if (poolQuantity != null && multiplier != null && multiplier != 0 && pool.getProduct() != null) {
    if (poolQuantity % multiplier != 0) {
      log.error("String_Node_Str" + "String_Node_Str",pool.getId(),poolQuantity,multiplier);
    }
 else {
      poolQuantity/=multiplier;
    }
    if (pool.getProduct().hasAttribute("String_Node_Str") && pool.getUpstreamPoolId() == null) {
      Integer instMult=null;
      String stringInstmult=pool.getProduct().getAttributeValue("String_Node_Str");
      try {
        instMult=Integer.parseInt(stringInstmult);
      }
 catch (      NumberFormatException nfe) {
        log.error("String_Node_Str",stringInstmult);
      }
      if (instMult != null && instMult != 0 && poolQuantity % instMult == 0) {
        poolQuantity/=instMult;
      }
 else {
        log.error("String_Node_Str" + "String_Node_Str",poolQuantity,instMult,poolQuantity);
      }
    }
  }
 else {
    log.warn("String_Node_Str",poolQuantity,multiplier,pool.getProduct());
  }
  Subscription subscription=new Subscription(pool);
  subscription.setQuantity(poolQuantity);
  return subscription;
}