Program: 112298
Project: 112298
Buggy source:
@Override void doSetValueAsQueryToken(String theQualifier,String theValue){
  clear();
  super.setValueAsQueryToken(theQualifier,theValue);
  if (getMissing() != null) {
    return;
  }
  if (theValue == null) {
    return;
  }
  List<String> parts=ParameterUtil.splitParameterString(theValue,'|',true);
  if (parts.size() > 0 && StringUtils.isNotBlank(parts.get(0))) {
    if (parts.get(0).startsWith("String_Node_Str")) {
      myQuantity.setComparator((QuantityCompararatorEnum)null);
      myApproximate=true;
      myQuantity.setValue(new BigDecimal(parts.get(0).substring(1)));
    }
 else     if (parts.get(0).startsWith("String_Node_Str")) {
      myQuantity.setComparator(QuantityCompararatorEnum.LESSTHAN_OR_EQUALS);
      myQuantity.setValue(new BigDecimal(parts.get(0).substring(2)));
    }
 else     if (parts.get(0).startsWith("String_Node_Str")) {
      myQuantity.setComparator(QuantityCompararatorEnum.LESSTHAN);
      String valStr=parts.get(0).substring(1);
      myQuantity.setValue(new BigDecimal(valStr));
    }
 else     if (parts.get(0).startsWith("String_Node_Str")) {
      myQuantity.setComparator(QuantityCompararatorEnum.GREATERTHAN_OR_EQUALS);
      myQuantity.setValue(new BigDecimal(parts.get(0).substring(2)));
    }
 else     if (parts.get(0).startsWith("String_Node_Str")) {
      myQuantity.setComparator(QuantityCompararatorEnum.GREATERTHAN);
      myQuantity.setValue(new BigDecimal(parts.get(0).substring(1)));
    }
 else {
      myQuantity.setValue(new BigDecimal(parts.get(0)));
    }
  }
  if (parts.size() > 1 && StringUtils.isNotBlank(parts.get(1))) {
    myQuantity.setSystem(parts.get(1));
  }
  if (parts.size() > 2 && StringUtils.isNotBlank(parts.get(2))) {
    myQuantity.setUnits(parts.get(2));
  }
}

Fixed version (ground truth):
@Override void doSetValueAsQueryToken(String theQualifier,String theValue){
  clear();
  if (theValue == null) {
    return;
  }
  List<String> parts=ParameterUtil.splitParameterString(theValue,'|',true);
  if (parts.size() > 0 && StringUtils.isNotBlank(parts.get(0))) {
    if (parts.get(0).startsWith("String_Node_Str")) {
      myQuantity.setComparator((QuantityCompararatorEnum)null);
      myApproximate=true;
      myQuantity.setValue(new BigDecimal(parts.get(0).substring(1)));
    }
 else     if (parts.get(0).startsWith("String_Node_Str")) {
      myQuantity.setComparator(QuantityCompararatorEnum.LESSTHAN_OR_EQUALS);
      myQuantity.setValue(new BigDecimal(parts.get(0).substring(2)));
    }
 else     if (parts.get(0).startsWith("String_Node_Str")) {
      myQuantity.setComparator(QuantityCompararatorEnum.LESSTHAN);
      String valStr=parts.get(0).substring(1);
      myQuantity.setValue(new BigDecimal(valStr));
    }
 else     if (parts.get(0).startsWith("String_Node_Str")) {
      myQuantity.setComparator(QuantityCompararatorEnum.GREATERTHAN_OR_EQUALS);
      myQuantity.setValue(new BigDecimal(parts.get(0).substring(2)));
    }
 else     if (parts.get(0).startsWith("String_Node_Str")) {
      myQuantity.setComparator(QuantityCompararatorEnum.GREATERTHAN);
      myQuantity.setValue(new BigDecimal(parts.get(0).substring(1)));
    }
 else {
      myQuantity.setValue(new BigDecimal(parts.get(0)));
    }
  }
  if (parts.size() > 1 && StringUtils.isNotBlank(parts.get(1))) {
    myQuantity.setSystem(parts.get(1));
  }
  if (parts.size() > 2 && StringUtils.isNotBlank(parts.get(2))) {
    myQuantity.setUnits(parts.get(2));
  }
}