docs: private Integer remove(String name, Integer defaultValue, int min, TimeUnit units, int... range) throws Exception {
          Object value = null;
  
          for (int diff; value == null && entry != null && (diff = entry.getKey().compareTo(name)) <= 0; entry = entries.pollFirstEntry()) {
              if (diff == 0) // matched
                  value = entry.getValue();
              else {
                  // TODO: when we have a stricter variant of onError, apply it to unrecognized attributes
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                      Tr.debug(this, tc, "unrecognized attribute: " + entry.getKey());
                  //SQLException ex = AdapterUtil.ignoreWarnOrFail(tc, null, SQLException.class, "PROP_NOT_FOUND", jndiName == null ? id : jndiName, entry.getKey());
                  //if (ex != null)
                  //    throw ex;
              }
          }
  
          long l;
          if (value == null)
              return defaultValue;
          else if (value instanceof Number)
              l = ((Number) value).longValue();
          else
              try {
                  l = units == null ? Integer.parseInt((String) value)
                                  : MetatypeUtils.evaluateDuration((String) value, units);
              } catch (Exception x) {
                  x = connectorSvc.ignoreWarnOrFail(null, x, x.getClass(), "UNSUPPORTED_VALUE_J2CA8011", value, name, jndiName == null ? id : jndiName);
                  if (x == null)
                      return defaultValue;
                  else
                      throw x;
              }
  
          if (l < min || l > Integer.MAX_VALUE || range.length > 0 && Arrays.binarySearch(range, (int) l) < 0) {
              SQLNonTransientException x = connectorSvc.ignoreWarnOrFail
                              (null, null, SQLNonTransientException.class, "UNSUPPORTED_VALUE_J2CA8011", value, name, jndiName == null ? id : jndiName);
              if (x == null)
                  return defaultValue;
              else
                  throw x;
          }
  
          return (int) l;
      }