[infinispan-commits] Infinispan SVN: r2633 - in branches/4.2.x/server: memcached/src/test/scala/org/infinispan/server/memcached and 1 other directory.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Fri Oct 29 06:41:49 EDT 2010


Author: galder.zamarreno at jboss.com
Date: 2010-10-29 06:41:48 -0400 (Fri, 29 Oct 2010)
New Revision: 2633

Modified:
   branches/4.2.x/server/core/src/main/scala/org/infinispan/server/core/AbstractProtocolDecoder.scala
   branches/4.2.x/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedFunctionalTest.scala
Log:
ISPN-745 - In Memcached, unix time expiry before now is considered as immortal - If unix expiry time is smaller than now, set for immediate expiration.

Modified: branches/4.2.x/server/core/src/main/scala/org/infinispan/server/core/AbstractProtocolDecoder.scala
===================================================================
--- branches/4.2.x/server/core/src/main/scala/org/infinispan/server/core/AbstractProtocolDecoder.scala	2010-10-29 10:37:07 UTC (rev 2632)
+++ branches/4.2.x/server/core/src/main/scala/org/infinispan/server/core/AbstractProtocolDecoder.scala	2010-10-29 10:41:48 UTC (rev 2633)
@@ -195,8 +195,12 @@
     * now and it's returned in milliseconds unit.
     */
    private def toMillis(lifespan: Int): Long = {
-      if (lifespan > SecondsInAMonth) TimeUnit.SECONDS.toMillis(lifespan) - System.currentTimeMillis
-      else TimeUnit.SECONDS.toMillis(lifespan)
+      if (lifespan > SecondsInAMonth) {
+         val unixTimeExpiry = TimeUnit.SECONDS.toMillis(lifespan) - System.currentTimeMillis
+         if (unixTimeExpiry < 0) 0 else unixTimeExpiry
+      } else {
+         TimeUnit.SECONDS.toMillis(lifespan)
+      }
    }
 
 }

Modified: branches/4.2.x/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedFunctionalTest.scala
===================================================================
--- branches/4.2.x/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedFunctionalTest.scala	2010-10-29 10:37:07 UTC (rev 2632)
+++ branches/4.2.x/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedFunctionalTest.scala	2010-10-29 10:41:48 UTC (rev 2633)
@@ -39,6 +39,13 @@
       assertNull(client.get(k(m)))
    }
 
+   def testSetWithExpiryUnixTimeInPast(m: Method) {
+      val f = client.set(k(m), 60*60*24*30 + 1, v(m))
+      assertTrue(f.get(timeout, TimeUnit.SECONDS).booleanValue)
+      TestingUtil.sleepThread(1100)
+      assertNull(client.get(k(m)))
+   }
+
    def testGetMultipleKeys(m: Method) {
       val f1 = client.set(k(m, "k1-"), 0, v(m, "v1-"))
       val f2 = client.set(k(m, "k2-"), 0, v(m, "v2-"))



More information about the infinispan-commits mailing list