public void handleChanging()

in src/main/java/org/apache/sling/discovery/commons/providers/base/ViewStateManagerImpl.java [364:406]


    public void handleChanging() {
        logger.trace("handleChanging: start");
        lock.lock();
        try{
    
            if (isChanging) {
                // if isChanging: then this is no news
                // hence: return asap
                logger.debug("handleChanging: was already changing - ignoring.");
                return;
            }
            modCnt++;
            
            // whether activated or not: set isChanging to true now
            logger.trace("handleChanging: setting isChanging to true");
            isChanging = true;
            
            if (!activated) {
                // if not activated: we can only start sending events once activated
                // hence returning here - after isChanging was set to true accordingly
                
                // note however, that if !activated, there should be no eventListeners yet
                // all of them should be in unInitializedEventListeners at the moment
                // waiting for activate() and handleNewTopologyView
                logger.debug("handleChanging: not yet activated - ignoring.");
                return;
            }
            
            if (previousView==null) {
                // then nothing further to do - this is a very early changing event
                // before even the first view was available
                logger.debug("handleChanging: no previousView set - ignoring.");
                return;
            }
            
            logger.debug("handleChanging: sending TOPOLOGY_CHANGING to initialized listeners");
            previousView.setNotCurrent();
            enqueueForAll(eventListeners, EventHelper.newChangingEvent(previousView));
        } finally {
            lock.unlock();
            logger.trace("handleChanging: finally");
        }
    }