001    package railo.runtime.type.scope.storage;
002    
003    import java.io.Serializable;
004    
005    import railo.runtime.CFMLFactoryImpl;
006    import railo.runtime.exp.ExceptionHandler;
007    import railo.runtime.listener.ApplicationListener;
008    import railo.runtime.op.Caster;
009    
010    public class SessionEndListener implements StorageScopeListener,Serializable {
011    
012            private static final long serialVersionUID = -3868545140988347285L;
013    
014            @Override
015            public void doEnd(StorageScopeEngine engine,StorageScopeCleaner cleaner,String appName, String cfid) {
016                    CFMLFactoryImpl factory = engine.getFactory();
017                    ApplicationListener listener = factory.getConfig().getApplicationListener();
018                    try {
019                            cleaner.info("call onSessionEnd for "+appName+"/"+cfid);
020                            listener.onSessionEnd(factory, appName, cfid);
021                    } 
022                    catch (Throwable t) {
023                            ExceptionHandler.log(factory.getConfig(),Caster.toPageException(t));
024                    }
025            }
026    
027    }