@Test public void retryKeySet_writesTransactionException_ifIsInTransactionAndIsPartitionedRegion() throws Exception { long startTime = 0; // arbitrary value TestableKeySet keySet = new TestableKeySet(); keySet.setIsInTransaction(true); when(message.isRetry()).thenReturn(true); when(region.getPartitionAttributes()).thenReturn(mock(PartitionAttributes.class)); keySet.cmdExecute(message, serverConnection, securityService, startTime); assertThat(keySet.exceptionSentToClient).isInstanceOf(TransactionException.class).hasMessage( "Failover on a set operation of a partitioned region is not allowed in a transaction."); }
@Test public void nonRetryKeySet_doesNotWriteTransactionException() throws Exception { long startTime = 0; // arbitrary value TestableKeySet keySet = new TestableKeySet(); keySet.setIsInTransaction(true); when(message.isRetry()).thenReturn(false); when(region.getPartitionAttributes()).thenReturn(mock(PartitionAttributes.class)); keySet.cmdExecute(message, serverConnection, securityService, startTime); assertThat(keySet.exceptionSentToClient).isNull(); }
@Test public void retryKeySet_doesNotWriteTransactionException_ifIsNotInTransaction() throws Exception { long startTime = 0; // arbitrary value TestableKeySet keySet = new TestableKeySet(); keySet.setIsInTransaction(false); when(message.isRetry()).thenReturn(true); when(region.getPartitionAttributes()).thenReturn(mock(PartitionAttributes.class)); keySet.cmdExecute(message, serverConnection, securityService, startTime); assertThat(keySet.exceptionSentToClient).isNull(); }
@Test public void retryKeySet_doesNotWriteTransactionException_ifIsInTransactionAndIsNotPartitionedRegion() throws Exception { long startTime = 0; // arbitrary value TestableKeySet keySet = new TestableKeySet(); keySet.setIsInTransaction(true); when(message.isRetry()).thenReturn(true); when(region.getPartitionAttributes()).thenReturn(null); keySet.cmdExecute(message, serverConnection, securityService, startTime); assertThat(keySet.exceptionSentToClient).isNull(); }
return true; if (scope == Scope.LOCAL && (region.getPartitionAttributes() == null)) { return false;
if (isInTransaction() && region.getPartitionAttributes() != null) {
PartitionAttributes partitionAttributes = dataRegion.getPartitionAttributes(); DistributionManager dm = this.cache.getInternalDistributedSystem().getDistributionManager(); LuceneBucketListener lucenePrimaryBucketListener =