public static function clearNodeViewCacheArray( array $nodeList, array $contentObjectList = null )
    {
        if ( count( $nodeList ) == 0 )
        {
            return false;
        }

        eZDebugSetting::writeDebug( 'kernel-content-edit', count( $nodeList ), "count in nodeList" );

        if ( eZINI::instance()->variable( 'ContentSettings', 'StaticCache' ) === 'enabled' )
        {
            $staticCacheHandler = eZExtension::getHandlerClass(
                new ezpExtensionOptions(
                    array(
                        'iniFile' => 'site.ini',
                        'iniSection' => 'ContentSettings',
                        'iniVariable' => 'StaticCacheHandler',
                    )
                )
            );

            $staticCacheHandler->generateAlwaysUpdatedCache();
            $staticCacheHandler->generateNodeListCache( $nodeList );
        }

        eZDebug::accumulatorStart( 'node_cleanup', '', 'Node cleanup' );

        eZContentObject::expireComplexViewModeCache();
        $cleanupValue = eZContentCache::calculateCleanupValue( count( $nodeList ) );

        if ( eZContentCache::inCleanupThresholdRange( $cleanupValue ) )
        {
            $nodeList = ezpEvent::getInstance()->filter( 'content/cache', $nodeList, $contentObjectList );
            eZContentCache::cleanup( $nodeList );
        }
        else
        {
            eZDebug::writeDebug( "Expiring all view cache since list of nodes({$cleanupValue}) exceeds site.ini\[ContentSettings]\CacheThreshold", __METHOD__ );
            ezpEvent::getInstance()->notify( 'content/cache/all' );
            eZContentObject::expireAllViewCache();
        }

        eZDebug::accumulatorStop( 'node_cleanup' );
        return true;
    }