[infinispan-issues] [JBoss JIRA] (ISPN-7505) Non-functional read in transaction with modifications returns old value

Radim Vansa (JIRA) issues at jboss.org
Wed Feb 22 04:07:00 EST 2017


Radim Vansa created ISPN-7505:
---------------------------------

             Summary: Non-functional read in transaction with modifications returns old value
                 Key: ISPN-7505
                 URL: https://issues.jboss.org/browse/ISPN-7505
             Project: Infinispan
          Issue Type: Bug
            Reporter: Radim Vansa
            Assignee: Radim Vansa


See this modified FunctionalTxInMemoryTest:

{code:java}
   @Test(dataProvider = "owningModeAndReadWrites")
   public void testReadWriteAfterMods(boolean isOwner, WriteMethod method) throws Exception {
      Object KEY = getKey(isOwner);
      cache(0, DIST).put(KEY, "a");

      tm.begin();
      assertEquals("a", rw.eval(KEY, append("b")).join());
      assertEquals("ab", rw.evalMany(Collections.singleton(KEY), append("c")).findAny().get());
      assertEquals("abc", cache(0, DIST).get(KEY)); // <-- THIS FAILS
      assertEquals(null, rw.eval("otherKey", append("d")).join());
      assertEquals("abc", method.action.eval(KEY, wo, rw,
            MarshallableFunctions.returnReadOnlyFindOrNull(),
            (BiConsumer<EntryView.WriteEntryView<String>, String> & Serializable) (e, prev) -> {}, getClass()));
      tm.commit();
   }
{code}

When the entry was modified in given transaction, we have to do the read using functional identity read which passes all modifications along. We need to do this for all {{remoteGet}}s, including those invoked for {{putIfAbsent}} etc.



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the infinispan-issues mailing list