killbill-aplcache

util: make previous patch work with caching Make the cached

5/30/2015 1:09:48 PM

Details

diff --git a/util/src/main/java/org/killbill/billing/util/security/shiro/dao/JDBCSessionDao.java b/util/src/main/java/org/killbill/billing/util/security/shiro/dao/JDBCSessionDao.java
index 01a8729..61f4e6d 100644
--- a/util/src/main/java/org/killbill/billing/util/security/shiro/dao/JDBCSessionDao.java
+++ b/util/src/main/java/org/killbill/billing/util/security/shiro/dao/JDBCSessionDao.java
@@ -62,6 +62,9 @@ public class JDBCSessionDao extends CachingSessionDAO {
                 final DateTime lastAccessTime = new DateTime(session.getLastAccessTime(), DateTimeZone.UTC);
                 final Long sessionId = Long.valueOf(session.getId().toString());
                 jdbcSessionSqlDao.updateLastAccessTime(lastAccessTime, sessionId);
+            } else if (session instanceof SimpleSession) {
+                // Hack to override the value in the cache so subsequent requests see the (stale) value on disk
+                ((SimpleSession) session).setLastAccessTime(previousSession.getLastAccessTime());
             }
         } else {
             // Various fields were changed, update the full row