code: public ThreadDelegatedContext getContext()
      {
          ThreadDelegatedContext context = threadLocal.get();
          if (context == null) {
              context = new ThreadDelegatedContext();
              threadLocal.set(context);
          }
          return context;
      }
docs: Returns the context (the set of objects bound to the scope) for the current thread.
  A context may be shared by multiple threads.