public ArrayList filterExternalCacheFragmentList ( String cacheName , ArrayList incomingList ) { InvalidationTableList invalidationTableList = getInvalidationTableList ( cacheName ) ; try { invalidationTableList . readWriteLock . readLock ( ) . lock ( ) ; Iterator it = incomingList . iterator ( ) ; while ( it . hasNext ( ) ) { ExternalInvalidation externalCacheFragment = ( ExternalInvalidation ) it . next ( ) ; if ( null == internalFilterExternalCacheFragment ( cacheName , invalidationTableList , externalCacheFragment ) ) { if ( tc . isDebugEnabled ( ) ) { Tr . debug ( tc , "filterExternalCacheFragmentList(): Filtered OUT cacheName=" + cacheName + " uri=" + externalCacheFragment . getUri ( ) ) ; } it . remove ( ) ; } } return incomingList ; } finally { invalidationTableList . readWriteLock . readLock ( ) . unlock ( ) ; } }
This ensures all incoming ExternalCacheFragments have not been invalidated .