Program: 112214
Project: 112214
Buggy source:
/** 
 * Set the value <p> <b>Description</b>: A whole number in the range 0 to 2^64-1 (optionally represented in hex), a uuid, an oid, or any other combination of lowercase letters, numerals, "-" and ".", with a length limit of 36 characters. </p> <p> regex: [a-z0-9\-\.]{1,36} </p>
 */
@Override public IdDt setValue(String theValue) throws DataFormatException {
  super.setValue(theValue);
  myHaveComponentParts=false;
  if (StringUtils.isBlank(theValue)) {
    myBaseUrl=null;
    super.setValue(null);
    myUnqualifiedId=null;
    myUnqualifiedVersionId=null;
    myResourceType=null;
  }
 else   if (theValue.charAt(0) == '#' && theValue.length() > 1) {
    super.setValue(theValue);
    myBaseUrl=null;
    myUnqualifiedId=theValue;
    myUnqualifiedVersionId=null;
    myResourceType=null;
    myHaveComponentParts=true;
  }
 else   if (theValue.startsWith("String_Node_Str")) {
    myBaseUrl=null;
    myUnqualifiedId=theValue;
    myUnqualifiedVersionId=null;
    myResourceType=null;
    myHaveComponentParts=true;
  }
 else {
    int vidIndex=theValue.indexOf("String_Node_Str");
    int idIndex;
    if (vidIndex != -1) {
      myUnqualifiedVersionId=theValue.substring(vidIndex + "String_Node_Str".length());
      idIndex=theValue.lastIndexOf('/',vidIndex - 1);
      myUnqualifiedId=theValue.substring(idIndex + 1,vidIndex);
    }
 else {
      idIndex=theValue.lastIndexOf('/');
      myUnqualifiedId=theValue.substring(idIndex + 1);
      myUnqualifiedVersionId=null;
    }
    myBaseUrl=null;
    if (idIndex <= 0) {
      myResourceType=null;
    }
 else {
      int typeIndex=theValue.lastIndexOf('/',idIndex - 1);
      if (typeIndex == -1) {
        myResourceType=theValue.substring(0,idIndex);
      }
 else {
        myResourceType=theValue.substring(typeIndex + 1,idIndex);
        if (typeIndex > 4) {
          myBaseUrl=theValue.substring(0,typeIndex);
        }
      }
    }
  }
  return this;
}

Fixed version (ground truth):
/** 
 * Set the value <p> <b>Description</b>: A whole number in the range 0 to 2^64-1 (optionally represented in hex), a uuid, an oid, or any other combination of lowercase letters, numerals, "-" and ".", with a length limit of 36 characters. </p> <p> regex: [a-z0-9\-\.]{1,36} </p>
 */
@Override public IdDt setValue(String theValue) throws DataFormatException {
  super.setValue(theValue);
  myHaveComponentParts=false;
  if (StringUtils.isBlank(theValue)) {
    myBaseUrl=null;
    super.setValue(null);
    myUnqualifiedId=null;
    myUnqualifiedVersionId=null;
    myResourceType=null;
  }
 else   if (theValue.charAt(0) == '#' && theValue.length() > 1) {
    super.setValue(theValue);
    myBaseUrl=null;
    myUnqualifiedId=theValue;
    myUnqualifiedVersionId=null;
    myResourceType=null;
    myHaveComponentParts=true;
  }
 else   if (theValue.startsWith("String_Node_Str")) {
    myBaseUrl=null;
    myUnqualifiedId=theValue;
    myUnqualifiedVersionId=null;
    myResourceType=null;
    myHaveComponentParts=true;
  }
 else {
    int vidIndex=theValue.indexOf("String_Node_Str");
    int idIndex;
    if (vidIndex != -1) {
      myUnqualifiedVersionId=theValue.substring(vidIndex + "String_Node_Str".length());
      idIndex=theValue.lastIndexOf('/',vidIndex - 1);
      myUnqualifiedId=theValue.substring(idIndex + 1,vidIndex);
    }
 else {
      idIndex=theValue.lastIndexOf('/');
      myUnqualifiedId=theValue.substring(idIndex + 1);
      myUnqualifiedVersionId=null;
    }
    myBaseUrl=null;
    if (idIndex <= 0) {
      myResourceType=null;
    }
 else {
      int typeIndex=theValue.lastIndexOf('/',idIndex - 1);
      if (typeIndex == -1) {
        myResourceType=theValue.substring(0,idIndex);
      }
 else {
        if (typeIndex > 0 && '/' == theValue.charAt(typeIndex - 1)) {
          typeIndex=theValue.indexOf('/',typeIndex + 1);
        }
        if (typeIndex >= idIndex) {
          myResourceType=myUnqualifiedId;
          myUnqualifiedId=null;
          super.setValue(null);
          myHaveComponentParts=true;
        }
 else {
          myResourceType=theValue.substring(typeIndex + 1,idIndex);
        }
        if (typeIndex > 4) {
          myBaseUrl=theValue.substring(0,typeIndex);
        }
      }
    }
  }
  return this;
}