@Override
    protected void registerGlobalWebAppListeners() {
        
        
        if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && logger.isLoggable(Level.FINE))
            logger.entering(CLASS_NAME, "registerGlobalWebAppListeners");
       
        // Notify PreEventListenerPorviders because the contract is that they 
        // go first before global listeners
        RegisterEventListenerProvider.notifyPreEventListenerProviders(this);
                    
        
        super.registerGlobalWebAppListeners();
        
        // Add the Servlet 3.1 specific code here.
        List sIdListeners = WebContainer.getSessionIdListeners(isSystemApp());
        try {
            for (int i = 0; i < sIdListeners.size(); i++) {
                sessionIdListeners.add(i, sIdListeners.get(i));
            }
            
            if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                Tr.debug(tc, "Added the following HttpSessionIdListeners: " + sessionIdListeners.toString());
            }
        } catch (Throwable th) {
            com.ibm.wsspi.webcontainer.util.FFDCWrapper.processException(th, CLASS_NAME + ".registerGlobalWebAppListeners", "1853", this);
            logError("Failed to load global session listener: " + th);
        }
        
        
        if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && logger.isLoggable(Level.FINE))
            logger.exiting(CLASS_NAME, "registerGlobalWebAppListeners");

    }
@ Override protected void registerGlobalWebAppListeners ( ) { if ( com . ibm . ejs . ras . TraceComponent . isAnyTracingEnabled ( ) && logger . isLoggable ( Level . FINE ) ) logger . entering ( CLASS_NAME , "registerGlobalWebAppListeners" ) ; RegisterEventListenerProvider . notifyPreEventListenerProviders ( this ) ; super . registerGlobalWebAppListeners ( ) ; List sIdListeners = WebContainer . getSessionIdListeners ( isSystemApp ( ) ) ; try { for ( int i = 0 ; i < sIdListeners . size ( ) ; i ++ ) { sessionIdListeners . add ( i , sIdListeners . get ( i ) ) ; } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { Tr . debug ( tc , "Added the following HttpSessionIdListeners: " + sessionIdListeners . toString ( ) ) ; } } catch ( Throwable th ) { com . ibm . wsspi . webcontainer . util . FFDCWrapper . processException ( th , CLASS_NAME + ".registerGlobalWebAppListeners" , "1853" , this ) ; logError ( "Failed to load global session listener: " + th ) ; } if ( com . ibm . ejs . ras . TraceComponent . isAnyTracingEnabled ( ) && logger . isLoggable ( Level . FINE ) ) logger . exiting ( CLASS_NAME , "registerGlobalWebAppListeners" ) ; }
/*
(non-Javadoc)

Had to override so that we can add logic for HttpSessionIdListeners in Servlet 3.1
I think this method must be override due to the WebContainer.getSessionIdListeners call
@see com.ibm.ws.webcontainer.webapp.WebApp#registerGlobalWebAppListeners()