docs: public void init(IFilterConfig filterConfig) throws ServletException
      {
          try
          {
              // init the filter instance
              _filterState = FILTER_STATE_INITIALIZING;
  
      		// LIDB-3598: begin
              this._filterConfig = filterConfig;
      		if(_eventSource != null && _eventSource.hasFilterListeners()){
  	    	        
  	           	_eventSource.onFilterStartInit(getFilterEvent());
  	    		// LIDB-3598: end
  	        	_filterInstance.init(filterConfig);
  	        	// LIDB-3598: begin
  	        	_eventSource.onFilterFinishInit(getFilterEvent());
  	    		// LIDB-3598: end
      		}
      		else{
      			_filterInstance.init(filterConfig);
      		}
  
              _filterState = FILTER_STATE_AVAILABLE;
          }
          catch (Throwable th)
          {
      		if(_eventSource != null && _eventSource.hasFilterErrorListeners()){
  	        	FilterErrorEvent errorEvent = getFilterErrorEvent(th);
  	        	_eventSource.onFilterInitError(errorEvent);
      		}
          	
              com.ibm.wsspi.webcontainer.util.FFDCWrapper.processException(th, "com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.init", "111", this);
              _filterState = FILTER_STATE_UNAVAILABLE;
              throw new ServletException(MessageFormat.format("Filter [{0}]: could not be initialized", new Object[] {_filterName}), th);
          }
  
      }