docs: public static synchronized boolean setRunAsSubject(Subject subj) {
          Subject before = null;
          try {
              before = getRunAsSubject();
              final Subject fsubj = subj;
              AccessController.doPrivileged(
                      new PrivilegedExceptionAction<Object>() {
                          @Override
                          public Object run() throws Exception {
                              WSSubject.setRunAsSubject(fsubj);
                              return null;
                          }
                      });
  
          } catch (PrivilegedActionException e) {
              FFDCFilter.processException(e,
                      TokenPropagationHelper.class.getName(), "setRunAsSubject",
                      new Object[] {});
              return false;
          }
  
          if (tc.isDebugEnabled()) {
              Tr.debug(tc, "setRunAsSubject, runAsSubject before = ", before);
              Tr.debug(tc, "setRunAsSubject, runAsSubject after = ", subj);
          }
          return true;
  
      }