Nikolay Izhikov created IGNITE-23121:
----------------------------------------

             Summary: CLONE - Disallow IgniteCache#iterator inside transaction
                 Key: IGNITE-23121
                 URL: https://issues.apache.org/jira/browse/IGNITE-23121
             Project: Ignite
          Issue Type: Improvement
            Reporter: Nikolay Izhikov
            Assignee: Julia Bakulina
             Fix For: 2.17


`IgniteCache#clear` invocation are not transactional.
But, currently, Ignite allow to invoke `clear` inside transaction.
This lead to unexpected behavior and hides business logic errors.

We must disallow IgniteCache#clear call inside transaction.
{code:java}
/** */
@Test
public void testClearInTransction() {
    IgniteCache<Object, Object> cache = client.createCache(new 
CacheConfiguration<>("my-cache").setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL));
    cache.put(1, 1);
    try (Transaction tx = 
client.transactions().txStart(TransactionConcurrency.PESSIMISTIC, 
TransactionIsolation.READ_COMMITTED)) {
        cache.put(2, 2);
        cache.clear();
        tx.commit();
    }
    assertFalse(cache.containsKey(1));
    assertTrue(cache.containsKey(2));
}
{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to