code: @Sensitive
      public Hashtable<String, ?> getSensitiveHashtableFromSubject(@Sensitive final Subject subject, @Sensitive final String[] properties) {
          return AccessController.doPrivileged(new PrivilegedAction<Hashtable<String, ?>>() {
              @Override
              public Hashtable<String, ?> run() {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Looking for custom properties in public cred list.");
                  }
                  Set<Object> list_public = subject.getPublicCredentials();
                  Hashtable<String, ?> hashtableFromPublic = getSensitiveHashtable(list_public, properties);
                  if (hashtableFromPublic != null) {
                      return hashtableFromPublic;
                  }
  
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Looking for custom properties in private cred list.");
                  }
                  Set<Object> list_private = subject.getPrivateCredentials();
                  Hashtable<String, ?> hashtableFromPrivate = getSensitiveHashtable(list_private, properties);
                  if (hashtableFromPrivate != null) {
                      return hashtableFromPrivate;
                  }
  
                  return null;
              }
          });
      }
docs: Gets a Hashtable of values from the Subject, but do not trace the hashtable
  
  @param subject {@code null} is not supported.
  @param properties The properties to get.
  @return the hashtable containing the properties.