@Test(expectedExceptions = IllegalStateException.class) public void testRemovalOfAtomicMap() throws SystemException, NotSupportedException, RollbackException, HeuristicRollbackException, HeuristicMixedException { AtomicMap<String, String> map = AtomicMapLookup.getAtomicMap(cache, "key"); map.put("hello", "world"); TransactionManager tm = cache.getAdvancedCache().getTransactionManager(); tm.begin(); map = AtomicMapLookup.getAtomicMap(cache, "key"); map.put("hello2", "world2"); assert map.size() == 2; AtomicMapLookup.removeAtomicMap(cache, "key"); map.size(); tm.commit(); } }
public void testReplicationCommitCreateMapInTransaction(Method m) throws Exception { Cache<String, Object> cache1 = cache(0, "atomic"); Cache<String, Object> cache2 = cache(1, "atomic"); TestingUtil.getTransactionManager(cache1).begin(); AtomicMap<String, String> map = AtomicMapLookup.getAtomicMap(cache1, m.getName()); map.put("a", "b"); TestingUtil.getTransactionManager(cache1).commit(); assert map.size() == 1; assert map.get("a").equals("b"); assert map.containsKey("a"); assert AtomicMapLookup.getAtomicMap(cache2, m.getName()).size() == 1; assert AtomicMapLookup.getAtomicMap(cache2, m.getName()).get("a").equals("b"); assert AtomicMapLookup.getAtomicMap(cache2, m.getName()).containsKey("a"); }
public void testConcurrentPut() throws Exception { final CountDownLatch readLatch = new CountDownLatch(1); final CountDownLatch commitLatch = new CountDownLatch(1); AtomicMap<Integer, String> atomicMap = AtomicMapLookup.getAtomicMap(cache, KEY); tm().begin(); atomicMap.put(1, "value1"); Future<Object> future = fork(() -> { try { tm().begin(); AtomicMap<Integer, String> otMap = AtomicMapLookup.getAtomicMap(cache, KEY); assertEquals(0, otMap.size()); readLatch.countDown(); otMap.put(2, "value2"); commitLatch.await(10, TimeUnit.SECONDS); tm().commit(); } catch (Exception e) { tm().rollback(); throw e; } return null; }); readLatch.await(10, TimeUnit.SECONDS); tm().commit(); commitLatch.countDown(); future.get(10, TimeUnit.SECONDS); assertEquals(new HashSet<>(Arrays.asList(1, 2)), atomicMap.keySet()); }
public void testReplicationCommit() throws Exception { Cache<String, Object> cache1 = cache(0, "atomic"); Cache<String, Object> cache2 = cache(1, "atomic"); AtomicMap<String, String> map = AtomicMapLookup.getAtomicMap(cache1, "map"); TestingUtil.getTransactionManager(cache1).begin(); map.put("existing", "existing"); map.put("blah", "blah"); TestingUtil.getTransactionManager(cache1).commit(); assert map.size() == 2; assert map.get("blah").equals("blah"); assert map.containsKey("blah"); assert AtomicMapLookup.getAtomicMap(cache2, "map").size() == 2; assert AtomicMapLookup.getAtomicMap(cache2, "map").get("blah").equals("blah"); assert AtomicMapLookup.getAtomicMap(cache2, "map").containsKey("blah"); }
AtomicMap<Integer, String> otMap = AtomicMapLookup.getAtomicMap(cache, KEY); assertEquals(3, otMap.size()); readLatch.countDown();
public void testReadSafetyRollback() throws Exception { AtomicMap<String, String> map = AtomicMapLookup.getAtomicMap(cache, "map"); tm.begin(); map.put("blah", "blah"); assert map.size() == 1; assert map.get("blah").equals("blah"); assert map.containsKey("blah"); Transaction t = tm.suspend(); assertIsEmpty(map); assertIsEmptyMap(cache, "map"); tm.resume(t); tm.rollback(); assertIsEmpty(map); assertIsEmptyMap(cache, "map"); }
public void testReadSafetyEmptyCache() throws Exception { AtomicMap<String, String> map = AtomicMapLookup.getAtomicMap(cache, "map"); assertIsEmpty(map); assertIsEmptyMap(cache, "map"); tm.begin(); map.put("blah", "blah"); assert map.size() == 1; assert map.get("blah").equals("blah"); assert map.containsKey("blah"); Transaction t = tm.suspend(); assertIsEmpty(map); assertIsEmptyMap(cache, "map"); tm.resume(t); tm.commit(); assert map.size() == 1; assert map.get("blah").equals("blah"); assert map.containsKey("blah"); map.clear(); assertIsEmpty(map); assertIsEmptyMap(cache, "map"); }
public void testReadSafetyNotEmptyCache() throws Exception { AtomicMap<String, String> map = AtomicMapLookup.getAtomicMap(cache, "map"); tm.begin(); map.put("blah", "blah"); assert map.get("blah").equals("blah"); Transaction t = tm.suspend(); assert map.isEmpty(); assertIsEmpty(map); assertIsEmptyMap(cache, "map"); tm.resume(t); tm.commit(); assert map.size() == 1; assert map.get("blah").equals("blah"); assert map.containsKey("blah"); map.clear(); assertIsEmpty(map); assertIsEmptyMap(cache, "map"); }
TestingUtil.getTransactionManager(cache1).commit(); assert map.size() == 2; assert map.get("blah").equals("blah"); assert map.containsKey("blah"); assert map.containsKey("existing"); assert AtomicMapLookup.getAtomicMap(cache2, "map").size() == 2; assert AtomicMapLookup.getAtomicMap(cache2, "map").get("blah").equals("blah"); assert AtomicMapLookup.getAtomicMap(cache2, "map").containsKey("blah"); TestingUtil.getTransactionManager(cache1).commit(); assert map.size() == 3; assert map.get("blah").equals("blah"); assert map.containsKey("blah"); assert map.containsKey(newKey); assert AtomicMapLookup.getAtomicMap(cache2, "map").size() == 3; assert AtomicMapLookup.getAtomicMap(cache2, "map").get("blah").equals("blah"); assert AtomicMapLookup.getAtomicMap(cache2, "map").containsKey("blah");
public void testAtomicMap() { AtomicMap<String, String> map = AtomicMapLookup.getAtomicMap(cache, "map"); assertIsEmpty(map); assertIsEmptyMap(cache, "map"); assert cache.containsKey("map"); map.put("blah", "blah"); assert map.size() == 1; assert map.get("blah").equals("blah"); assert map.containsKey("blah"); map.clear(); assertIsEmpty(map); assertIsEmptyMap(cache, "map"); assert cache.containsKey("map"); AtomicMapLookup.removeAtomicMap(cache, "map"); assert !cache.containsKey("map"); }