code: @Override
      public void release()
      {
          _applicationFactory = null;
          _currentFacesContext = null;
          if (_defaultExternalContext != null)
          {
              _defaultExternalContext.release();
              _defaultExternalContext = null;
          }
          
          _application = null;
          _externalContext = null;
          _viewRoot = null;
          _renderKitFactory = null;
          _elContext = null;
          _exceptionHandler = null;
          _cachedRenderKit = null;
          _cachedRenderKitId = null;
          _separatorChar = null;
          
          // Spec JSF 2 section getAttributes when release is called the attributes map
          // must!!! be cleared! (probably to trigger some clearance methods on possible
          // added entries before nullifying everything)
          if (_attributes != null)
          {
              _attributes.clear();
              _attributes = null;
          }
          
          _released = true;
          FacesContext.setCurrentInstance(null);
      }
docs: Releases the instance fields on FacesContextImplBase.
  Must be called by sub-classes, when overriding it!