code: public static void bind(FeatureUser featureUser) {
          if (featureUser != null && threadLocal.get() != null) {
              throw new IllegalStateException("setFeatureUser() called for a "
                      + "thread that already has one associated with it. It's likely that the FeatureUser "
                      + "is not correctly removed from the thread before it is put back into the thread pool.");
          }
          threadLocal.set(featureUser);
      }
docs: Store the supplied FeatureUser in the thread context. After calling this method all calls of {@link #getCurrentUser()}
  from the active thread will return this feature user. Please don't forget to call {@link #release()} before the thread is
  put back to a thread pool to prevent memory leaks.
  
  @param featureUser The feature user to store