use of lucee.runtime.type.scope.storage.clean.FileStorageScopeCleaner in project Lucee by lucee.
the class ScopeContext method clearUnused.
/**
* remove all unused scope objects
*/
public void clearUnused() {
Log log = getLog();
try {
// create cleaner engine for session/client scope
if (session == null)
session = new StorageScopeEngine(factory, log, new StorageScopeCleaner[] { // new
new FileStorageScopeCleaner(Scope.SCOPE_SESSION, null), // new
new DatasourceStorageScopeCleaner(Scope.SCOPE_SESSION, null) // SessionEndListener())
// ,new CacheStorageScopeCleaner(Scope.SCOPE_SESSION, new SessionEndListener())
});
if (client == null)
client = new StorageScopeEngine(factory, log, new StorageScopeCleaner[] { new FileStorageScopeCleaner(Scope.SCOPE_CLIENT, null), new DatasourceStorageScopeCleaner(Scope.SCOPE_CLIENT, null) // ,new CacheStorageScopeCleaner(Scope.SCOPE_CLIENT, null) //Cache storage need no control, if
// there is no listener
});
// store session/client scope and remove from memory
storeUnusedStorageScope(factory, Scope.SCOPE_CLIENT);
storeUnusedStorageScope(factory, Scope.SCOPE_SESSION);
// remove unused memory based client/session scope (invoke onSessonEnd)
clearUnusedMemoryScope(factory, Scope.SCOPE_CLIENT);
clearUnusedMemoryScope(factory, Scope.SCOPE_SESSION);
// session must be executed first, because session creates a reference from client scope
session.clean();
client.clean();
// clean all unused application scopes
clearUnusedApplications(factory);
} catch (Throwable t) {
ExceptionUtil.rethrowIfNecessary(t);
error(t);
}
}
Aggregations