-
Bug
-
Resolution: Done
-
Major
-
9.0.0.Final
-
None
See this modified FunctionalTxInMemoryTest:
@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(); }
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.
- is related to
-
ISPN-7908 Streams in transaction don't consider entries modified by functional commands
-
- Closed
-