Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-1816

Re-adding an entry doesn't reset creation time when using lifespans

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Blocker
    • 5.1.1.CR1, 5.1.1.FINAL
    • 5.1.0.FINAL
    • Core
    • None

    Description

      Hi,
      I'm trying to migrate my application to Infinispan 5.1.0.FINAL but I have some problem.

      My code uses put method passing lifespan parameter. In the new Infinispan version it seems that if I put an entry to the cache with a lifespan (e.g. 10 seconds) and then, after 5 seconds, I put the same entry with lifespan = 10 seconds, the lifespan is not overrided and the cache entry expires after 10 seconds from the first operation.

      Here an example of code that reproduces the problem:

      final Cache cache = .... // Obtain cache instance

      // Put entry in cache
      cache.put( "key_001", "v_001", 10, TimeUnit.SECONDS );

      int x = 0;
      while ( true ) {
      // print cache entry every 500ms
      System.out.println( ( x++ * 500 ) + "--->" + cache.get( "key_001" ) );

      // every 5 seconds put the same entry with lifespan = 10 seconds
      if ( x % 10 == 0 )

      { System.out.println("PING"); cache.put( "key_001", "v_001", 10, TimeUnit.SECONDS ); }

      Thread.sleep( 500 );
      }

      The results is:
      0--->v_001
      500--->v_001
      1000--->v_001
      1500--->v_001
      2000--->v_001
      2500--->v_001
      3000--->v_001
      3500--->v_001
      4000--->v_001
      4500--->v_001
      PING
      5000--->v_001
      5500--->v_001
      6000--->v_001
      6500--->v_001
      7000--->v_001
      7500--->v_001
      8000--->v_001
      8500--->v_001
      9000--->v_001
      9500--->v_001
      PING
      10000--->null
      10500--->null
      11000--->null
      11500--->null
      12000--->null
      12500--->null
      13000--->null
      13500--->null
      14000--->null
      14500--->null
      PING
      15000--->v_001
      15500--->v_001
      16000--->v_001
      16500--->v_001
      17000--->v_001
      17500--->v_001

      With Infinispan 5.0.1 the result is
      0--->v_001
      500--->v_001
      1000--->v_001
      1500--->v_001
      2000--->v_001
      2500--->v_001
      3000--->v_001
      3500--->v_001
      4000--->v_001
      4500--->v_001
      PING
      5000--->v_001
      5500--->v_001
      6000--->v_001
      6500--->v_001
      7000--->v_001
      7500--->v_001
      8000--->v_001
      8500--->v_001
      9000--->v_001
      9500--->v_001
      PING
      10000--->v_001
      10500--->v_001
      11000--->v_001
      11500--->v_001
      12000--->v_001
      12500--->v_001
      13000--->v_001
      13500--->v_001
      14000--->v_001
      14500--->v_001
      PING
      15000--->v_001
      15500--->v_001
      16000--->v_001
      16500--->v_001
      17000--->v_001
      17500--->v_001

      Attachments

        Activity

          People

            manik_jira Manik Surtani (Inactive)
            damiano.pezzotti Damiano Pezzotti (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: