88public class SessionValidateResultRepository extends ValidateResultRepositoryBase {
99
1010 static int defaultIdleExpiration = 180 ;
11-
11+ static boolean defaultExtendValidity = true ;
12+
1213 static {
1314 loadConfiguration ();
1415 }
@@ -19,15 +20,18 @@ private static void loadConfiguration()
1920 // Load the properties
2021 Properties props = QueueitProperties .getProperties ("queueit.properties" );
2122 defaultIdleExpiration = Integer .parseInt (props .getProperty ("idleExpiration" , "180" ));
23+ defaultExtendValidity = Boolean .parseBoolean (props .getProperty ("extendValidity" , "true" ));
2224 } catch (Exception e ) {
2325 // no need to handle exception
2426 }
2527 }
2628
27- public static void configure (Integer idleExpiration )
29+ public static void configure (Integer idleExpiration , Boolean extendValidity )
2830 {
2931 if (idleExpiration != null )
3032 defaultIdleExpiration = idleExpiration ;
33+ if (extendValidity != null )
34+ defaultExtendValidity = extendValidity ;
3135 }
3236 @ Override
3337 public IValidateResult getValidationResult (IQueue queue ) {
@@ -66,6 +70,14 @@ public void setValidationResult(IQueue queue, IValidateResult validationResult,
6670
6771 if (validationResult instanceof AcceptedConfirmedResult )
6872 {
73+ if (defaultExtendValidity && expirationTime == null )
74+ {
75+ HttpServletRequest request = RequestContext .getCurrentInstance ().getRequest ();
76+ HttpSession session = request .getSession (true );
77+
78+ expirationTime = new Date (System .currentTimeMillis ()+(session .getMaxInactiveInterval ()*1000 ));
79+ }
80+
6981 AcceptedConfirmedResult confirmedResult = (AcceptedConfirmedResult )validationResult ;
7082
7183 HttpServletRequest request = RequestContext .getCurrentInstance ().getRequest ();
@@ -79,7 +91,6 @@ public void setValidationResult(IQueue queue, IValidateResult validationResult,
7991 model .TimeStamp = confirmedResult .getKnownUser ().getTimeStamp ();
8092 model .RedirectType = confirmedResult .getKnownUser ().getRedirectType ();
8193 model .PlaceInQueue = confirmedResult .getKnownUser ().getPlaceInQueue ();
82- model .Expiration = expirationTime ;
8394
8495 if (expirationTime != null )
8596 model .Expiration = expirationTime ;
0 commit comments