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