[ 
https://issues.apache.org/jira/browse/IGNITE-23681?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maksim Timonin updated IGNITE-23681:
------------------------------------
    Ignite Flags: Release Notes Required  (was: Docs Required,Release Notes 
Required)

> Disallow IgniteCache#removeAll inside transaction
> -------------------------------------------------
>
>                 Key: IGNITE-23681
>                 URL: https://issues.apache.org/jira/browse/IGNITE-23681
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Julia Bakulina
>            Assignee: Julia Bakulina
>            Priority: Major
>              Labels: ise
>             Fix For: 2.18
>
>          Time Spent: 3h
>  Remaining Estimate: 0h
>
> `IgniteCache#removeAll` invocation are not transactional.
> But, currently, Ignite allow to invoke `removeAll` inside transaction.
> This lead to unexpected behavior and hides business logic errors.
> We must disallow IgniteCache#removeAll 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.removeAll();
>         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