substitutions.put(":attribute_type:", sqlQuote((propSubtype == null) ? "String" : propSubtype));
if(propSubtype == null && log.isWarnEnabled()) { log.warn("PropSubtype is NULL for: " + propName + "(type)" + propType); }
  private void setPropertyInfo(String pgName, String propName,                               String propType, String propSubtype) throws SQLException {    if(log.isDebugEnabled()) {      log.debug("setPropertyInfo("+pgName+", "+propName+", "+                propType+", "+propSubtype+")");    }    Statement stmt = dbConnection.createStatement();    substitutions.put(":attribute_lib_id:", sqlQuote(pgName + "|" + propName));    substitutions.put(":pg_name:", sqlQuote(pgName));    substitutions.put(":attribute_name:", sqlQuote(propName));    // FIXME:  Below is a hack, as an attempt to run past this point.    // Really should figure out why propSubtype is sometimes null.    substitutions.put(":attribute_type:",                       sqlQuote((propSubtype == null) ? "String" : propSubtype));    if(propType.equalsIgnoreCase("Collection")) {      substitutions.put(":aggregate_type:", sqlQuote("COLLECTION"));    } else {      substitutions.put(":aggregate_type:", sqlQuote("SINGLE"));    }    log.debug("att_lib: " + substitutions.get(":attribute_lib_id:"));    log.debug("pg_name: " + substitutions.get(":pg_name:"));    log.debug("att_name: " + substitutions.get(":attribute_name:"));    log.debug("att_type: " + substitutions.get(":attribute_type:"));    log.debug("agg_type: " + substitutions.get(":aggregate_type:"));    executeUpdate(dbp.getQuery("insertLibPGAttribute", substitutions));  }