You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2020/04/24 16:20:59 UTC
[geode] branch develop updated: GEODE-7964: Upgrade Mockito to
3.3.3 (#4924)
This is an automated email from the ASF dual-hosted git repository.
klund pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new 0a1701e GEODE-7964: Upgrade Mockito to 3.3.3 (#4924)
0a1701e is described below
commit 0a1701e92dc09bcd6b79edd3b52f20ee9e9a867c
Author: Kirk Lund <kl...@apache.org>
AuthorDate: Fri Apr 24 09:20:21 2020 -0700
GEODE-7964: Upgrade Mockito to 3.3.3 (#4924)
---
.../src/test/resources/expected-pom.xml | 2 +-
.../gradle/plugins/DependencyConstraints.groovy | 2 +-
.../geode/connectors/jdbc/JdbcAsyncWriterTest.java | 4 +-
.../geode/connectors/jdbc/JdbcWriterTest.java | 6 +-
.../jdbc/internal/xml/ElementTypeTest.java | 4 +-
.../xml/JdbcConnectorServiceXmlParserTest.java | 6 +-
...butedSystemMXBeanWithAlertsDistributedTest.java | 10 +-
.../client/internal/QueueManagerJUnitTest.java | 15 +
.../AvailableConnectionManagerConcurrentTest.java | 152 ++++++-
.../pooling/ConnectionManagerJUnitTest.java | 15 +
.../CacheDistributionAdvisorConcurrentTest.java | 23 +-
.../cache/ha/HARegionQueueIntegrationTest.java | 460 +++++++++------------
.../ControlFileWatchdogIntegrationTest.java | 6 +-
.../geode/cache/client/internal/Connection.java | 6 +
.../cache/client/internal/ConnectionImpl.java | 15 +
.../cache/client/internal/QueueConnectionImpl.java | 15 +
.../pooling/AvailableConnectionManager.java | 36 +-
.../internal/pooling/ConnectionManagerImpl.java | 8 +-
.../client/internal/pooling/PooledConnection.java | 3 +
.../internal/ClusterAlertMessagingTest.java | 4 +-
.../client/internal/OpExecutorImplJUnitTest.java | 15 +
.../pooling/AvailableConnectionManagerTest.java | 50 +--
.../geode/distributed/ServerLauncherTest.java | 10 +-
.../internal/cache/InternalCacheBuilderTest.java | 4 +-
.../PartitionedRegionRedundancyTrackerTest.java | 3 +-
.../internal/cache/backup/BackupOperationTest.java | 6 +-
.../SingleThreadColocationLoggerTest.java | 3 +-
.../sockets/command/ExecuteFunction65Test.java | 4 +-
.../sockets/command/ExecuteFunction66Test.java | 6 +-
.../tier/sockets/command/ExecuteFunctionTest.java | 6 +-
.../io/CompositeOutputStreamJUnitTest.java | 8 +-
.../management/internal/FederatingManagerTest.java | 4 +-
.../internal/beans/ManagementListenerTest.java | 8 +-
.../test/dunit/internal/VMEventNotifierTest.java | 4 +-
.../functions/AlterQueryServiceFunctionTest.java | 8 +-
.../cli/functions/RegionAlterFunctionTest.java | 4 +-
36 files changed, 551 insertions(+), 384 deletions(-)
diff --git a/boms/geode-all-bom/src/test/resources/expected-pom.xml b/boms/geode-all-bom/src/test/resources/expected-pom.xml
index cbea352..d3da3d8 100644
--- a/boms/geode-all-bom/src/test/resources/expected-pom.xml
+++ b/boms/geode-all-bom/src/test/resources/expected-pom.xml
@@ -466,7 +466,7 @@
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
- <version>2.23.0</version>
+ <version>3.3.3</version>
<scope>compile</scope>
</dependency>
<dependency>
diff --git a/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy b/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
index 7123296..3f85f56 100644
--- a/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
+++ b/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
@@ -154,7 +154,7 @@ class DependencyConstraints implements Plugin<Project> {
api(group: 'org.httpunit', name: 'httpunit', version: '1.7.3')
api(group: 'org.iq80.snappy', name: 'snappy', version: '0.4')
api(group: 'org.jgroups', name: 'jgroups', version: get('jgroups.version'))
- api(group: 'org.mockito', name: 'mockito-core', version: '2.23.0')
+ api(group: 'org.mockito', name: 'mockito-core', version: '3.3.3')
api(group: 'org.mortbay.jetty', name: 'servlet-api', version: '3.0.20100224')
api(group: 'org.openjdk.jmh', name: 'jmh-core', version: '1.23')
api(group: 'org.postgresql', name: 'postgresql', version: '42.2.8')
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcAsyncWriterTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcAsyncWriterTest.java
index 51dcfd1..aad2f0d 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcAsyncWriterTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcAsyncWriterTest.java
@@ -20,7 +20,7 @@ import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
@@ -65,7 +65,7 @@ public class JdbcAsyncWriterTest {
public void doesNothingIfEventListIsEmpty() {
writer.processEvents(Collections.emptyList());
- verifyZeroInteractions(sqlHandler);
+ verifyNoMoreInteractions(sqlHandler);
assertThat(writer.getSuccessfulEvents()).isZero();
assertThat(writer.getTotalEvents()).isZero();
}
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcWriterTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcWriterTest.java
index 7cd3186..a889561 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcWriterTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcWriterTest.java
@@ -21,7 +21,7 @@ import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import org.junit.Before;
@@ -133,7 +133,7 @@ public class JdbcWriterTest {
public void beforeRegionDestroyDoesNotWriteToSqlHandler() {
writer.beforeRegionDestroy(mock(RegionEvent.class));
- verifyZeroInteractions(sqlHandler);
+ verifyNoMoreInteractions(sqlHandler);
}
@SuppressWarnings("unchecked")
@@ -141,6 +141,6 @@ public class JdbcWriterTest {
public void beforeRegionClearDoesNotWriteToSqlHandler() {
writer.beforeRegionClear(mock(RegionEvent.class));
- verifyZeroInteractions(sqlHandler);
+ verifyNoMoreInteractions(sqlHandler);
}
}
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/ElementTypeTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/ElementTypeTest.java
index efb9230..32ba65b 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/ElementTypeTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/ElementTypeTest.java
@@ -30,7 +30,7 @@ import static org.apache.geode.connectors.jdbc.internal.xml.JdbcConnectorService
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import java.util.Stack;
@@ -147,6 +147,6 @@ public class ElementTypeTest {
ElementType.FIELD_MAPPING.endElement(stack);
assertThat(stack.size()).isEqualTo(1);
- verifyZeroInteractions(mapping);
+ verifyNoMoreInteractions(mapping);
}
}
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcConnectorServiceXmlParserTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcConnectorServiceXmlParserTest.java
index b3db7ae..ec8726c 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcConnectorServiceXmlParserTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcConnectorServiceXmlParserTest.java
@@ -18,7 +18,7 @@ import static org.apache.geode.connectors.jdbc.internal.xml.ElementType.JDBC_MAP
import static org.apache.geode.connectors.jdbc.internal.xml.JdbcConnectorServiceXmlParser.NAMESPACE;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import java.util.Stack;
@@ -87,7 +87,7 @@ public class JdbcConnectorServiceXmlParserTest {
parser.endElement(NAMESPACE, JDBC_MAPPING.getTypeName(), null);
assertThat(stack.pop()).isEqualTo(regionCreation);
- verifyZeroInteractions(regionMapping);
+ verifyNoMoreInteractions(regionMapping);
}
@Test
@@ -101,6 +101,6 @@ public class JdbcConnectorServiceXmlParserTest {
parser.endElement("wrongNamespace", JDBC_MAPPING.getTypeName(), null);
assertThat(stack.pop()).isEqualTo(regionMapping);
- verifyZeroInteractions(regionMapping);
+ verifyNoMoreInteractions(regionMapping);
}
}
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/DistributedSystemMXBeanWithAlertsDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/DistributedSystemMXBeanWithAlertsDistributedTest.java
index 888c404..f23303d 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/DistributedSystemMXBeanWithAlertsDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/DistributedSystemMXBeanWithAlertsDistributedTest.java
@@ -39,7 +39,7 @@ import static org.mockito.ArgumentMatchers.isNull;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.timeout;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import java.io.Serializable;
import java.util.ArrayList;
@@ -198,7 +198,7 @@ public class DistributedSystemMXBeanWithAlertsDistributedTest implements Seriali
});
managerVM.invoke(() -> {
- verifyZeroInteractions(notificationListener);
+ verifyNoMoreInteractions(notificationListener);
});
}
@@ -245,7 +245,7 @@ public class DistributedSystemMXBeanWithAlertsDistributedTest implements Seriali
});
managerVM.invoke(() -> {
- verifyZeroInteractions(notificationListener);
+ verifyNoMoreInteractions(notificationListener);
});
}
@@ -333,7 +333,7 @@ public class DistributedSystemMXBeanWithAlertsDistributedTest implements Seriali
}
managerVM.invoke(() -> {
- verifyZeroInteractions(notificationListener);
+ verifyNoMoreInteractions(notificationListener);
});
}
@@ -363,7 +363,7 @@ public class DistributedSystemMXBeanWithAlertsDistributedTest implements Seriali
// managerVM should have missed the alerts from BEFORE it started
managerVM.invoke(() -> {
- verifyZeroInteractions(notificationListener);
+ verifyNoMoreInteractions(notificationListener);
});
// managerVM should now receive any new alerts though
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/QueueManagerJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/QueueManagerJUnitTest.java
index 1653081..a3e6112 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/QueueManagerJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/QueueManagerJUnitTest.java
@@ -753,11 +753,26 @@ public class QueueManagerJUnitTest {
}
@Override
+ public long getBirthDate() {
+ return 0;
+ }
+
+ @Override
+ public void setBirthDate(long ts) {
+
+ }
+
+ @Override
public ConnectionStats getStats() {
return null;
}
@Override
+ public boolean isActive() {
+ return false;
+ }
+
+ @Override
public boolean isDestroyed() {
return false;
}
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/pooling/AvailableConnectionManagerConcurrentTest.java b/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/pooling/AvailableConnectionManagerConcurrentTest.java
index de86b96..97f6501 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/pooling/AvailableConnectionManagerConcurrentTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/pooling/AvailableConnectionManagerConcurrentTest.java
@@ -12,26 +12,35 @@
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
-
package org.apache.geode.cache.client.internal.pooling;
import static org.apache.geode.test.concurrency.Utilities.availableProcessors;
import static org.apache.geode.test.concurrency.Utilities.repeat;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.Socket;
+import java.nio.ByteBuffer;
import java.util.ArrayList;
+import java.util.List;
import java.util.concurrent.ExecutionException;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.apache.geode.cache.client.internal.Connection;
+import org.apache.geode.cache.client.internal.ConnectionStats;
+import org.apache.geode.cache.client.internal.Endpoint;
+import org.apache.geode.cache.client.internal.Op;
+import org.apache.geode.distributed.internal.ServerLocation;
+import org.apache.geode.internal.cache.tier.sockets.ServerQueueStatus;
import org.apache.geode.test.concurrency.ConcurrentTestRunner;
import org.apache.geode.test.concurrency.ParallelExecutor;
@RunWith(ConcurrentTestRunner.class)
public class AvailableConnectionManagerConcurrentTest {
+
private final int parallelCount = availableProcessors();
private final int iterationCount = 250;
private final AvailableConnectionManager instance = new AvailableConnectionManager();
@@ -43,7 +52,7 @@ public class AvailableConnectionManagerConcurrentTest {
executor.inParallel(() -> {
repeat(() -> {
- PooledConnection used = instance.useFirst();
+ Connection used = instance.useFirst();
instance.addFirst(used, true);
}, iterationCount);
}, parallelCount);
@@ -59,7 +68,7 @@ public class AvailableConnectionManagerConcurrentTest {
executor.inParallel(() -> {
repeat(() -> {
- PooledConnection used = instance.useFirst(c -> true);
+ Connection used = instance.useFirst(c -> true);
instance.addFirst(used, true);
}, iterationCount);
}, parallelCount);
@@ -75,7 +84,7 @@ public class AvailableConnectionManagerConcurrentTest {
executor.inParallel(() -> {
repeat(() -> {
- PooledConnection used = instance.useFirst();
+ Connection used = instance.useFirst();
instance.addLast(used, true);
}, iterationCount);
}, parallelCount);
@@ -94,7 +103,7 @@ public class AvailableConnectionManagerConcurrentTest {
executor.inParallel(() -> {
repeat(() -> {
- PooledConnection used = instance.useFirst();
+ Connection used = instance.useFirst();
if (used != null) {
Thread.yield();
instance.addFirst(used, true);
@@ -116,7 +125,7 @@ public class AvailableConnectionManagerConcurrentTest {
executor.inParallel(() -> {
repeat(() -> {
- PooledConnection used = instance.useFirst(c -> true);
+ Connection used = instance.useFirst(c -> true);
if (used != null) {
Thread.yield();
instance.addFirst(used, true);
@@ -137,14 +146,13 @@ public class AvailableConnectionManagerConcurrentTest {
repeat(() -> instance.addFirst(createConnection(), false), connectionCount);
// now add a bunch of connections that will not match the predicate
repeat(() -> {
- PooledConnection nonMatchingConnection = createConnection();
- when(nonMatchingConnection.getBirthDate()).thenReturn(1L);
+ Connection nonMatchingConnection = createConnection(1);
instance.addFirst(nonMatchingConnection, false);
}, connectionCount);
executor.inParallel(() -> {
repeat(() -> {
- PooledConnection used = instance.useFirst(c -> c.getBirthDate() == 0L);
+ Connection used = instance.useFirst(c -> c.getBirthDate() == 0L);
if (used != null) {
Thread.yield();
assertThat(used.getBirthDate()).isEqualTo(0L);
@@ -161,16 +169,16 @@ public class AvailableConnectionManagerConcurrentTest {
public void addLastRemoveDoesNotRemoveOtherConnections(ParallelExecutor executor)
throws ExecutionException, InterruptedException {
int originalCount = 7;
- ArrayList<PooledConnection> originalConnections = new ArrayList<>();
+ List<Connection> originalConnections = new ArrayList<>();
repeat(() -> {
- PooledConnection original = createConnection();
+ Connection original = createConnection();
originalConnections.add(original);
instance.addFirst(original, false);
}, originalCount);
executor.inParallel(() -> {
repeat(() -> {
- PooledConnection removed = createConnection();
+ Connection removed = createConnection();
instance.addLast(removed, true);
assertThat(instance.remove(removed)).isTrue();
}, iterationCount);
@@ -180,10 +188,116 @@ public class AvailableConnectionManagerConcurrentTest {
assertThat(instance.getDeque()).containsExactlyInAnyOrderElementsOf(originalConnections);
}
- private PooledConnection createConnection() {
- PooledConnection result = mock(PooledConnection.class);
- when(result.activate()).thenReturn(true);
- when(result.isActive()).thenReturn(true);
- return result;
+ private Connection createConnection() {
+ return createConnection(0);
+ }
+
+ private Connection createConnection(long birthDate) {
+ return new Connection() {
+ @Override
+ public Socket getSocket() {
+ return null;
+ }
+
+ @Override
+ public long getBirthDate() {
+ return birthDate;
+ }
+
+ @Override
+ public void setBirthDate(long ts) {
+ // nothing
+ }
+
+ @Override
+ public ByteBuffer getCommBuffer() {
+ return null;
+ }
+
+ @Override
+ public ConnectionStats getStats() {
+ return null;
+ }
+
+ @Override
+ public boolean isActive() {
+ return true;
+ }
+
+ @Override
+ public void destroy() {
+ // nothing
+ }
+
+ @Override
+ public boolean isDestroyed() {
+ return false;
+ }
+
+ @Override
+ public void close(boolean keepAlive) {
+ // nothing
+ }
+
+ @Override
+ public ServerLocation getServer() {
+ return null;
+ }
+
+ @Override
+ public Endpoint getEndpoint() {
+ return null;
+ }
+
+ @Override
+ public ServerQueueStatus getQueueStatus() {
+ return null;
+ }
+
+ @Override
+ public Object execute(Op op) {
+ return null;
+ }
+
+ @Override
+ public void emergencyClose() {
+ // nothing
+ }
+
+ @Override
+ public short getWanSiteVersion() {
+ return 0;
+ }
+
+ @Override
+ public void setWanSiteVersion(short wanSiteVersion) {
+ // nothing
+ }
+
+ @Override
+ public int getDistributedSystemId() {
+ return 0;
+ }
+
+ @Override
+ public OutputStream getOutputStream() {
+ return null;
+ }
+
+ @Override
+ public InputStream getInputStream() {
+ return null;
+ }
+
+ @Override
+ public void setConnectionID(long id) {
+ // nothing
+ }
+
+ @Override
+ public long getConnectionID() {
+ return 0;
+ }
+ };
}
}
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/pooling/ConnectionManagerJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/pooling/ConnectionManagerJUnitTest.java
index 4e00589..87eda46 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/pooling/ConnectionManagerJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/pooling/ConnectionManagerJUnitTest.java
@@ -987,11 +987,26 @@ public class ConnectionManagerJUnitTest {
}
@Override
+ public long getBirthDate() {
+ return 0;
+ }
+
+ @Override
+ public void setBirthDate(long ts) {
+
+ }
+
+ @Override
public ConnectionStats getStats() {
return null;
}
@Override
+ public boolean isActive() {
+ return false;
+ }
+
+ @Override
public void close(boolean keepAlive) throws Exception {
synchronized (DummyFactory.this) {
closes++;
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/CacheDistributionAdvisorConcurrentTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/CacheDistributionAdvisorConcurrentTest.java
index d2367a1..fb38993 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/CacheDistributionAdvisorConcurrentTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/CacheDistributionAdvisorConcurrentTest.java
@@ -14,18 +14,21 @@
*/
package org.apache.geode.internal.cache;
-
+import static org.apache.geode.internal.inet.LocalHostUtil.getLocalHost;
import static org.apache.geode.test.concurrency.Utilities.availableProcessors;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.withSettings;
-import java.net.InetAddress;
import java.net.UnknownHostException;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
import org.apache.geode.CancelCriterion;
import org.apache.geode.cache.Operation;
@@ -36,11 +39,14 @@ import org.apache.geode.internal.cache.CacheDistributionAdvisor.CacheProfile;
import org.apache.geode.test.concurrency.ConcurrentTestRunner;
import org.apache.geode.test.concurrency.ParallelExecutor;
-
@RunWith(ConcurrentTestRunner.class)
public class CacheDistributionAdvisorConcurrentTest {
+
private final int count = availableProcessors() * 2;
+ @Rule
+ public MockitoRule mockitoRule = MockitoJUnit.rule();
+
@Test
public void getAdviseAllEventsOrCachedForConcurrentUpdateShouldSucceed(
ParallelExecutor executor) throws Exception {
@@ -87,17 +93,24 @@ public class CacheDistributionAdvisorConcurrentTest {
CacheDistributionAdvisee advisee = mock(CacheDistributionAdvisee.class);
CancelCriterion cancelCriterion = mock(CancelCriterion.class);
when(advisee.getCancelCriterion()).thenReturn(cancelCriterion);
+
DistributionManager distributionManager = mock(DistributionManager.class);
when(advisee.getDistributionManager()).thenReturn(distributionManager);
+
CacheDistributionAdvisor result =
CacheDistributionAdvisor.createCacheDistributionAdvisor(advisee);
when(advisee.getDistributionAdvisor()).thenReturn(result);
+
return result;
}
private CacheProfile createCacheProfile() throws UnknownHostException {
InternalDistributedMember member =
- new InternalDistributedMember(InetAddress.getLocalHost(), 0, false, false);
+ new InternalDistributedMember(getLocalHost(), 0, false, false);
return new CacheProfile(member, 1);
}
+
+ private static <T> T mock(Class<T> classToMock) {
+ return Mockito.mock(classToMock, withSettings().stubOnly());
+ }
}
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/HARegionQueueIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/HARegionQueueIntegrationTest.java
index e9d8fd8..4778608 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/HARegionQueueIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/HARegionQueueIntegrationTest.java
@@ -14,43 +14,41 @@
*/
package org.apache.geode.internal.cache.ha;
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.getTimeout;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.withSettings;
+import java.io.IOException;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Queue;
import java.util.Set;
-import java.util.concurrent.Callable;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
+import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
-import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicInteger;
-import org.awaitility.core.ConditionTimeoutException;
import org.junit.After;
-import org.junit.Assert;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
-import util.TestException;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.mockito.quality.Strictness;
import org.apache.geode.CancelCriterion;
import org.apache.geode.cache.AttributesFactory;
-import org.apache.geode.cache.Cache;
import org.apache.geode.cache.CacheFactory;
import org.apache.geode.cache.DataPolicy;
import org.apache.geode.cache.EvictionAction;
@@ -63,7 +61,6 @@ import org.apache.geode.internal.cache.CacheServerImpl;
import org.apache.geode.internal.cache.CachedDeserializable;
import org.apache.geode.internal.cache.EnumListenerEvent;
import org.apache.geode.internal.cache.EventID;
-import org.apache.geode.internal.cache.GemFireCacheImpl;
import org.apache.geode.internal.cache.HARegion;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.internal.cache.InternalRegionArguments;
@@ -81,22 +78,28 @@ import org.apache.geode.internal.serialization.Version;
import org.apache.geode.internal.statistics.StatisticsClock;
import org.apache.geode.internal.util.BlobHelper;
import org.apache.geode.internal.util.concurrent.StoppableReentrantReadWriteLock;
+import org.apache.geode.internal.util.concurrent.StoppableReentrantReadWriteLock.StoppableReadLock;
+import org.apache.geode.internal.util.concurrent.StoppableReentrantReadWriteLock.StoppableWriteLock;
+import org.apache.geode.test.junit.rules.ExecutorServiceRule;
public class HARegionQueueIntegrationTest {
- private Cache cache;
+ private static final int NUM_QUEUES = 100;
+ private static final EvictionAttributes OVERFLOW_TO_DISK =
+ EvictionAttributes.createLIFOEntryAttributes(1000, EvictionAction.OVERFLOW_TO_DISK);
+ private InternalCache cache;
private Region dataRegion;
-
private CacheClientNotifier ccn;
-
private InternalDistributedMember member;
- private static final int NUM_QUEUES = 100;
+ @Rule
+ public ExecutorServiceRule executorServiceRule = new ExecutorServiceRule();
+ @Rule
+ public MockitoRule mockitoRule = MockitoJUnit.rule().strictness(Strictness.LENIENT);
@Before
public void setUp() throws Exception {
- MockitoAnnotations.initMocks(this);
cache = createCache();
dataRegion = createDataRegion();
ccn = createCacheClientNotifier();
@@ -109,30 +112,6 @@ public class HARegionQueueIntegrationTest {
cache.close();
}
- private Cache createCache() {
- return new CacheFactory().set(MCAST_PORT, "0").create();
- }
-
- private Region createDataRegion() {
- return cache.createRegionFactory(RegionShortcut.REPLICATE).create("data");
- }
-
- private CacheClientNotifier createCacheClientNotifier() {
- CacheClientNotifier ccn =
- CacheClientNotifier.getInstance((InternalCache) cache,
- mock(ClientRegistrationEventQueueManager.class), mock(StatisticsClock.class),
- mock(CacheServerStats.class), 100000, 100000, mock(ConnectionListener.class), null,
- false);
- return ccn;
- }
-
- private InternalDistributedMember createMember() {
- // Create an InternalDistributedMember
- InternalDistributedMember member = mock(InternalDistributedMember.class);
- when(member.getVersionObject()).thenReturn(Version.CURRENT);
- return member;
- }
-
@Test
public void verifyEndGiiQueueingEmptiesQueueAndHAContainer() throws Exception {
HAContainerWrapper haContainerWrapper = (HAContainerWrapper) ccn.getHaContainer();
@@ -148,19 +127,19 @@ public class HARegionQueueIntegrationTest {
// Create and update HARegionQueues forcing one queue to startGiiQueueing
int numQueues = 10;
HARegionQueue targetQueue = createAndUpdateHARegionQueuesWithGiiQueueing(haContainerWrapper,
- wrapper, message, numQueues);
+ wrapper, numQueues);
// Verify HAContainerWrapper (1) and refCount (numQueues(10))
- assertEquals(1, haContainerWrapper.size());
+ assertThat(haContainerWrapper).hasSize(1);
HAEventWrapper wrapperInContainer = (HAEventWrapper) haContainerWrapper.getKey(wrapper);
- assertEquals(numQueues - 1, wrapperInContainer.getReferenceCount());
- assertTrue(wrapperInContainer.getPutInProgress());
+ assertThat(wrapperInContainer.getReferenceCount()).isEqualTo(numQueues - 1);
+ assertThat(wrapperInContainer.getPutInProgress()).isTrue();
// Verify that the HAEventWrapper in the giiQueue now has msg != null
// We don't null this out while putInProgress > 0 (true)
Queue giiQueue = targetQueue.getGiiQueue();
- assertEquals(1, giiQueue.size());
+ assertThat(giiQueue).hasSize(1);
// Simulate that we have iterated through all interested proxies
// and are now decrementing the PutInProgressCounter
@@ -173,14 +152,14 @@ public class HARegionQueueIntegrationTest {
}
HAEventWrapper giiQueueEntry = (HAEventWrapper) giiQueue.peek();
- assertNotNull(giiQueueEntry);
- assertNotNull(giiQueueEntry.getClientUpdateMessage());
+ assertThat(giiQueueEntry).isNotNull();
+ assertThat(giiQueueEntry.getClientUpdateMessage()).isNotNull();
// endGiiQueueing and verify queue and HAContainer are empty
targetQueue.endGiiQueueing();
- assertEquals(0, giiQueue.size());
- Assert.assertEquals("Expected HAContainer to be empty", 0, haContainerWrapper.size());
+ assertThat(giiQueue).isEmpty();
+ assertThat(haContainerWrapper).isEmpty();
}
@Test
@@ -242,19 +221,18 @@ public class HARegionQueueIntegrationTest {
@Test
public void verifySimultaneousPutHAEventWrapperWithRegion() throws Exception {
HAContainerWrapper haContainerWrapper = createHAContainerRegion();
-
- final int numQueues = 30;
- final int numOperations = 1000;
+ int numQueues = 30;
+ int numOperations = 1000;
Set<HAEventWrapper> haEventWrappersToValidate =
- createAndPutHARegionQueuesSimulataneously(haContainerWrapper, numQueues, numOperations);
+ createAndPutHARegionQueuesSimultaneously(haContainerWrapper, numQueues, numOperations);
- assertEquals(numOperations, haContainerWrapper.size());
+ assertThat(haContainerWrapper).hasSize(numOperations);
for (HAEventWrapper haEventWrapperToValidate : haEventWrappersToValidate) {
HAEventWrapper wrapperInContainer =
(HAEventWrapper) haContainerWrapper.getKey(haEventWrapperToValidate);
- assertEquals(numQueues, wrapperInContainer.getReferenceCount());
+ assertThat(wrapperInContainer.getReferenceCount()).isEqualTo(numQueues);
}
}
@@ -268,33 +246,32 @@ public class HARegionQueueIntegrationTest {
HAEventWrapper haEventWrapper = new HAEventWrapper(message);
haEventWrapper.setHAContainer(haContainerWrapper);
- final int numQueues = 10;
+ int numQueues = 10;
createAndPutHARegionQueuesSequentially(haContainerWrapper, haEventWrapper, numQueues);
- assertEquals(1, haContainerWrapper.size());
+ assertThat(haContainerWrapper).hasSize(1);
HAEventWrapper wrapperInContainer =
(HAEventWrapper) haContainerWrapper.getKey(haEventWrapper);
- assertEquals(numQueues, wrapperInContainer.getReferenceCount());
+ assertThat(wrapperInContainer.getReferenceCount()).isEqualTo(numQueues);
}
@Test
public void verifySimultaneousPutHAEventWrapperWithMap() throws Exception {
HAContainerWrapper haContainerWrapper = (HAContainerWrapper) ccn.getHaContainer();
-
- final int numQueues = 30;
- final int numOperations = 1000;
+ int numQueues = 30;
+ int numOperations = 1000;
Set<HAEventWrapper> haEventWrappersToValidate =
- createAndPutHARegionQueuesSimulataneously(haContainerWrapper, numQueues, numOperations);
+ createAndPutHARegionQueuesSimultaneously(haContainerWrapper, numQueues, numOperations);
- assertEquals(numOperations, haContainerWrapper.size());
+ assertThat(haContainerWrapper).hasSize(numOperations);
for (HAEventWrapper haEventWrapperToValidate : haEventWrappersToValidate) {
HAEventWrapper wrapperInContainer =
(HAEventWrapper) haContainerWrapper.getKey(haEventWrapperToValidate);
- assertEquals(numQueues, wrapperInContainer.getReferenceCount());
+ assertThat(wrapperInContainer.getReferenceCount()).isEqualTo(numQueues);
}
}
@@ -308,14 +285,15 @@ public class HARegionQueueIntegrationTest {
HAEventWrapper haEventWrapper = new HAEventWrapper(message);
haEventWrapper.setHAContainer(haContainerWrapper);
- final int numQueues = 10;
+ int numQueues = 10;
+
createAndPutHARegionQueuesSequentially(haContainerWrapper, haEventWrapper, numQueues);
- assertEquals(1, haContainerWrapper.size());
+ assertThat(haContainerWrapper).hasSize(1);
HAEventWrapper wrapperInContainer =
(HAEventWrapper) haContainerWrapper.getKey(haEventWrapper);
- assertEquals(numQueues, wrapperInContainer.getReferenceCount());
+ assertThat(wrapperInContainer.getReferenceCount()).isEqualTo(numQueues);
}
@Test
@@ -323,20 +301,13 @@ public class HARegionQueueIntegrationTest {
HAContainerWrapper haContainerWrapper = (HAContainerWrapper) ccn.getHaContainer();
List<HARegionQueue> regionQueues = new ArrayList<>();
-
for (int i = 0; i < 2; ++i) {
HARegion haRegion = createMockHARegion();
regionQueues.add(createHARegionQueue(haContainerWrapper, i, haRegion, false));
}
- ExecutorService service = Executors.newFixedThreadPool(2);
-
- List<Callable<Object>> callables = new ArrayList<>();
-
for (int i = 0; i < 10000; ++i) {
- callables.clear();
-
EventID eventID = new EventID(new byte[] {1}, 1, i);
ClientUpdateMessage message = new ClientUpdateMessageImpl(EnumListenerEvent.AFTER_UPDATE,
@@ -353,52 +324,37 @@ public class HARegionQueueIntegrationTest {
wrapper.decrementPutInProgressCounter();
+ List<Future<Void>> futures = new ArrayList<>();
for (HARegionQueue queue : regionQueues) {
- callables.add(Executors.callable(() -> {
- try {
- queue.peek();
- queue.remove();
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
+ futures.add(executorServiceRule.submit(() -> {
+ queue.peek();
+ queue.remove();
}));
- callables.add(Executors.callable(() -> {
- try {
- queue.removeDispatchedEvents(eventID);
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
+ futures.add(executorServiceRule.submit(() -> {
+ queue.removeDispatchedEvents(eventID);
}));
}
- // invokeAll() will wait until our two callables have completed
- List<Future<Object>> futures = service.invokeAll(callables, 10, TimeUnit.SECONDS);
-
- for (Future<Object> future : futures) {
- try {
- future.get();
- } catch (Exception ex) {
- throw new TestException(
- "Exception thrown while executing regionQueue methods concurrently on iteration: "
- + i,
- ex);
- }
+ for (Future<Void> future : futures) {
+ future.get(getTimeout().toMillis(), MILLISECONDS);
}
}
}
@Test
public void verifyPutEntryConditionallyInHAContainerNoOverwrite() throws Exception {
- HAContainerWrapper haContainerWrapper = new HAContainerMap(new ConcurrentHashMap());
-
// create message and HAEventWrapper
EventID eventID = new EventID(cache.getDistributedSystem());
+
ClientUpdateMessage oldMessage = new ClientUpdateMessageImpl(EnumListenerEvent.AFTER_UPDATE,
(LocalRegion) dataRegion, "key", "value".getBytes(), (byte) 0x01, null,
new ClientProxyMembershipID(), eventID);
+
HAEventWrapper originalWrapperInstance = new HAEventWrapper(oldMessage);
originalWrapperInstance.incrementPutInProgressCounter("test");
+
+ HAContainerWrapper haContainerWrapper = new HAContainerMap(new ConcurrentHashMap());
originalWrapperInstance.setHAContainer(haContainerWrapper);
HARegionQueue haRegionQueue = createHARegionQueue(haContainerWrapper, 0);
@@ -412,6 +368,7 @@ public class HARegionQueueIntegrationTest {
ClientUpdateMessage newMessage = new ClientUpdateMessageImpl(EnumListenerEvent.AFTER_UPDATE,
(LocalRegion) dataRegion, "key", "value".getBytes(), (byte) 0x01, null,
new ClientProxyMembershipID(), eventID);
+
HAEventWrapper newWrapperInstance = new HAEventWrapper(newMessage);
newWrapperInstance.incrementPutInProgressCounter("test");
newWrapperInstance.setHAContainer(haContainerWrapper);
@@ -422,215 +379,211 @@ public class HARegionQueueIntegrationTest {
// and that it increments the ref count on the container key.
haRegionQueue.putEventInHARegion(originalWrapperInstance, 1L);
- Assert.assertEquals("Original message overwrote new message in container",
- haContainerWrapper.get(originalWrapperInstance),
- newWrapperInstance.getClientUpdateMessage());
- Assert.assertEquals("Reference count was not the expected value", 2,
- newWrapperInstance.getReferenceCount());
- Assert.assertEquals("Container size was not the expected value", haContainerWrapper.size(), 1);
+ assertThat(newWrapperInstance.getClientUpdateMessage())
+ .withFailMessage("Original message overwrote new message in container")
+ .isEqualTo(haContainerWrapper.get(originalWrapperInstance));
+
+ assertThat(newWrapperInstance.getReferenceCount())
+ .withFailMessage("Reference count was not the expected value")
+ .isEqualTo(2);
+
+ assertThat(haContainerWrapper)
+ .withFailMessage("Container size was not the expected value")
+ .hasSize(1);
}
@Test
public void removeDispatchedEventsViaQRMAndDestroyQueueSimultaneouslySingleDecrement()
throws Exception {
HAContainerWrapper haContainerWrapper = new HAContainerMap(new ConcurrentHashMap());
-
HARegion haRegion = createMockHARegion();
HARegionQueue haRegionQueue = createHARegionQueue(haContainerWrapper, 0, haRegion, false);
-
EventID eventID = new EventID(cache.getDistributedSystem());
+
ClientUpdateMessage clientUpdateMessage =
new ClientUpdateMessageImpl(EnumListenerEvent.AFTER_UPDATE,
(LocalRegion) dataRegion, "key", "value".getBytes(), (byte) 0x01, null,
new ClientProxyMembershipID(), eventID);
+
HAEventWrapper haEventWrapper = new HAEventWrapper(clientUpdateMessage);
haEventWrapper.incrementPutInProgressCounter("test");
haEventWrapper.setHAContainer(haContainerWrapper);
haRegionQueue.put(haEventWrapper);
- ExecutorService service = Executors.newFixedThreadPool(2);
-
- List<Callable<Object>> callables = new ArrayList<>();
+ List<Future<Void>> futures = new ArrayList<>();
// In one thread, simulate processing a queue removal message
// by removing the dispatched event
- callables.add(Executors.callable(() -> {
- try {
- haRegionQueue.removeDispatchedEvents(eventID);
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
+ futures.add(executorServiceRule.submit(() -> {
+ haRegionQueue.removeDispatchedEvents(eventID);
}));
// In another thread, simulate that the region is being destroyed, for instance
// when a SocketTimeoutException is thrown and we are cleaning up
- callables.add(Executors.callable(() -> {
- try {
- haRegionQueue.destroy();
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
+ futures.add(executorServiceRule.submit(() -> {
+ haRegionQueue.destroy();
}));
- List<Future<Object>> futures = service.invokeAll(callables, 10, TimeUnit.SECONDS);
-
- for (Future<Object> future : futures) {
- try {
- future.get();
- } catch (Exception ex) {
- throw new TestException(
- "Exception thrown while executing queue removal and destroy region queue logic concurrently.",
- ex);
- }
+ for (Future<Void> future : futures) {
+ future.get();
}
- try {
- await().until(() -> haEventWrapper.getReferenceCount() == 0);
- } catch (ConditionTimeoutException conditionTimeoutException) {
- throw new TestException(
- "Expected HAEventWrapper reference count to be decremented to 0 by either the queue removal or destroy queue logic, but the actual reference count was "
- + haEventWrapper.getReferenceCount());
- }
+ await().untilAsserted(() -> {
+ assertThat(haEventWrapper.getReferenceCount())
+ .withFailMessage(
+ "Expected HAEventWrapper reference count to be decremented to 0 by either the queue removal or destroy queue logic")
+ .isZero();
+ });
}
@Test
public void removeDispatchedEventsViaMessageDispatcherAndDestroyQueueSimultaneouslySingleDecrement()
throws Exception {
HAContainerWrapper haContainerWrapper = new HAContainerMap(new ConcurrentHashMap());
-
HARegion haRegion = createMockHARegion();
HARegionQueue haRegionQueue = createHARegionQueue(haContainerWrapper, 0, haRegion, false);
-
EventID eventID = new EventID(cache.getDistributedSystem());
+
ClientUpdateMessage clientUpdateMessage =
new ClientUpdateMessageImpl(EnumListenerEvent.AFTER_UPDATE,
(LocalRegion) dataRegion, "key", "value".getBytes(), (byte) 0x01, null,
new ClientProxyMembershipID(), eventID);
+
HAEventWrapper haEventWrapper = new HAEventWrapper(clientUpdateMessage);
haEventWrapper.incrementPutInProgressCounter("test");
haEventWrapper.setHAContainer(haContainerWrapper);
haRegionQueue.put(haEventWrapper);
- ExecutorService service = Executors.newFixedThreadPool(2);
-
- List<Callable<Object>> callables = new ArrayList<>();
+ List<Future<Void>> futures = new ArrayList<>();
// In one thread, simulate processing a queue removal message
// by removing the dispatched event
- callables.add(Executors.callable(() -> {
- try {
- // Simulate dispatching a message by peeking and removing the HAEventWrapper
- haRegionQueue.peek();
- haRegionQueue.remove();
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
+ futures.add(executorServiceRule.submit(() -> {
+ // Simulate dispatching a message by peeking and removing the HAEventWrapper
+ haRegionQueue.peek();
+ haRegionQueue.remove();
}));
// In another thread, simulate that the region is being destroyed, for instance
// when a SocketTimeoutException is thrown and we are cleaning up
- callables.add(Executors.callable(() -> {
- try {
- haRegionQueue.destroy();
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
+ futures.add(executorServiceRule.submit(() -> {
+ haRegionQueue.destroy();
}));
- List<Future<Object>> futures = service.invokeAll(callables, 10, TimeUnit.SECONDS);
-
- for (Future<Object> future : futures) {
- try {
- future.get();
- } catch (Exception ex) {
- throw new TestException(
- "Exception thrown while executing message dispatching and destroy region queue logic concurrently.",
- ex);
- }
+ for (Future<Void> future : futures) {
+ future.get();
}
- try {
- await().until(() -> haEventWrapper.getReferenceCount() == 0);
- } catch (ConditionTimeoutException conditionTimeoutException) {
- throw new TestException(
- "Expected HAEventWrapper reference count to be decremented to 0 by either the message dispatcher or destroy queue logic, but the actual reference count was "
- + haEventWrapper.getReferenceCount());
- }
+ await().untilAsserted(() -> {
+ assertThat(haEventWrapper.getReferenceCount())
+ .withFailMessage(
+ "Expected HAEventWrapper reference count to be decremented to 0 by either the message dispatcher or destroy queue logic")
+ .isZero();
+ });
}
- private HARegion createMockHARegion() {
- HARegion haRegion = mock(HARegion.class);
- when(haRegion.getGemFireCache()).thenReturn((InternalCache) cache);
+ private InternalCache createCache() {
+ return (InternalCache) new CacheFactory().set(MCAST_PORT, "0").create();
+ }
- ConcurrentHashMap<Object, Object> mockRegion = new ConcurrentHashMap<>();
+ private Region createDataRegion() {
+ return cache.createRegionFactory(RegionShortcut.REPLICATE).create("data");
+ }
- when(haRegion.put(Mockito.any(Object.class), Mockito.any(Object.class))).then(answer -> {
- Object existingValue = mockRegion.put(answer.getArgument(0), answer.getArgument(1));
- return existingValue;
- });
+ private CacheClientNotifier createCacheClientNotifier() {
+ CacheClientNotifier ccn =
+ CacheClientNotifier.getInstance(cache,
+ mock(ClientRegistrationEventQueueManager.class),
+ mock(StatisticsClock.class),
+ mock(CacheServerStats.class),
+ 100000,
+ 100000,
+ mock(ConnectionListener.class),
+ null,
+ false);
+ return ccn;
+ }
- when(haRegion.get(Mockito.any(Object.class))).then(answer -> {
- return mockRegion.get(answer.getArgument(0));
- });
+ private InternalDistributedMember createMember() {
+ // Create an InternalDistributedMember
+ InternalDistributedMember member = mock(InternalDistributedMember.class);
+ when(member.getVersionObject()).thenReturn(Version.CURRENT);
+ return member;
+ }
+
+ private HARegion createMockHARegion() {
+ HARegion haRegion = mock(HARegion.class);
+ Map<Object, Object> map = new ConcurrentHashMap<>();
+
+ when(haRegion.getGemFireCache())
+ .thenReturn(cache);
+ when(haRegion.put(any(Object.class), any(Object.class)))
+ .then(answer -> map.put(answer.getArgument(0), answer.getArgument(1)));
+ when(haRegion.get(any(Object.class)))
+ .then(answer -> map.get(answer.getArgument(0)));
doAnswer(answer -> {
- mockRegion.remove(answer.getArgument(0));
+ map.remove(answer.getArgument(0));
return null;
- }).when(haRegion).localDestroy(Mockito.any(Object.class));
+ }).when(haRegion).localDestroy(any(Object.class));
+
return haRegion;
}
- private HAContainerRegion createHAContainerRegion() throws Exception {
- Region haContainerRegionRegion = createHAContainerRegionRegion();
-
- HAContainerRegion haContainerRegion = new HAContainerRegion(haContainerRegionRegion);
-
- return haContainerRegion;
+ private HAContainerRegion createHAContainerRegion() throws IOException, ClassNotFoundException {
+ return new HAContainerRegion(createHAContainerRegionRegion());
}
- private Region createHAContainerRegionRegion() throws Exception {
- AttributesFactory factory = new AttributesFactory();
- factory.setScope(Scope.LOCAL);
+ private Region<Object, Object> createHAContainerRegionRegion()
+ throws IOException, ClassNotFoundException {
+ String regionName = CacheServerImpl.generateNameForClientMsgsRegion(0);
+
+ AttributesFactory<Object, Object> factory = new AttributesFactory<>();
+ factory.setDataPolicy(DataPolicy.NORMAL);
factory.setDiskStoreName(null);
factory.setDiskSynchronous(true);
- factory.setDataPolicy(DataPolicy.NORMAL);
+ factory.setEvictionAttributes(OVERFLOW_TO_DISK);
factory.setStatisticsEnabled(true);
- factory.setEvictionAttributes(
- EvictionAttributes.createLIFOEntryAttributes(1000, EvictionAction.OVERFLOW_TO_DISK));
- Region region = ((GemFireCacheImpl) cache).createVMRegion(
- CacheServerImpl.generateNameForClientMsgsRegion(0), factory.create(),
- new InternalRegionArguments().setDestroyLockFlag(true).setRecreateFlag(false)
- .setSnapshotInputStream(null).setImageTarget(null).setIsUsedForMetaRegion(true));
- return region;
+ factory.setScope(Scope.LOCAL);
+
+ InternalRegionArguments arguments = new InternalRegionArguments()
+ .setDestroyLockFlag(true)
+ .setRecreateFlag(false)
+ .setSnapshotInputStream(null)
+ .setImageTarget(null)
+ .setIsUsedForMetaRegion(true);
+
+ return cache.createVMRegion(regionName, factory.create(), arguments);
}
private HARegionQueue createHARegionQueue(Map haContainer, int index, HARegion haRegion,
- boolean puttingGIIDataInQueue) throws Exception {
+ boolean puttingGIIDataInQueue)
+ throws InterruptedException, IOException, ClassNotFoundException {
StoppableReentrantReadWriteLock giiLock = mock(StoppableReentrantReadWriteLock.class);
- doReturn(mock(StoppableReentrantReadWriteLock.StoppableWriteLock.class)).when(giiLock)
- .writeLock();
- doReturn(mock(StoppableReentrantReadWriteLock.StoppableReadLock.class)).when(giiLock)
- .readLock();
-
StoppableReentrantReadWriteLock rwLock =
new StoppableReentrantReadWriteLock(cache.getCancelCriterion());
- return new HARegionQueue("haRegion+" + index, haRegion, (InternalCache) cache, haContainer,
+ when(giiLock.writeLock()).thenReturn(mock(StoppableWriteLock.class));
+ when(giiLock.readLock()).thenReturn(mock(StoppableReadLock.class));
+
+ return new HARegionQueue("haRegion+" + index, haRegion, cache, haContainer,
null, (byte) 1, true, mock(HARegionQueueStats.class), giiLock, rwLock,
mock(CancelCriterion.class), puttingGIIDataInQueue, mock(StatisticsClock.class));
}
- private HARegionQueue createHARegionQueue(Map haContainer, int index) throws Exception {
+ private HARegionQueue createHARegionQueue(Map haContainer, int index)
+ throws InterruptedException, IOException, ClassNotFoundException {
HARegion haRegion = mock(HARegion.class);
- when(haRegion.getGemFireCache()).thenReturn((InternalCache) cache);
+
+ when(haRegion.getGemFireCache()).thenReturn(cache);
return createHARegionQueue(haContainer, index, haRegion, false);
}
private CachedDeserializable createCachedDeserializable(HAContainerWrapper haContainerWrapper)
- throws Exception {
+ throws IOException {
// Create ClientUpdateMessage and HAEventWrapper
ClientUpdateMessage message = new ClientUpdateMessageImpl(EnumListenerEvent.AFTER_UPDATE,
(LocalRegion) dataRegion, "key", "value".getBytes(), (byte) 0x01, null,
@@ -644,12 +597,13 @@ public class HARegionQueueIntegrationTest {
byte[] wrapperBytes = BlobHelper.serializeToBlob(wrapper);
CachedDeserializable cd = new VMCachedDeserializable(wrapperBytes);
haContainerWrapper.remove(wrapper);
- assertThat(haContainerWrapper.size()).isEqualTo(0);
+ assertThat(haContainerWrapper).isEmpty();
return cd;
}
private void createAndUpdateHARegionQueuesSequentially(HAContainerWrapper haContainerWrapper,
- CachedDeserializable cd, int numQueues) throws Exception {
+ CachedDeserializable cd, int numQueues)
+ throws InterruptedException, IOException, ClassNotFoundException {
// Create some HARegionQueues
for (int i = 0; i < numQueues; i++) {
HARegionQueue haRegionQueue = createHARegionQueue(haContainerWrapper, i);
@@ -658,9 +612,8 @@ public class HARegionQueueIntegrationTest {
}
private HARegionQueue createAndUpdateHARegionQueuesWithGiiQueueing(
- HAContainerWrapper haContainerWrapper, HAEventWrapper wrapper, ClientUpdateMessage message,
- int numQueues) throws Exception {
-
+ HAContainerWrapper haContainerWrapper, HAEventWrapper wrapper, int numQueues)
+ throws InterruptedException, IOException, ClassNotFoundException {
HARegionQueue targetQueue = null;
int startGiiQueueingIndex = numQueues / 2;
@@ -672,24 +625,23 @@ public class HARegionQueueIntegrationTest {
if (i == startGiiQueueingIndex) {
HARegion haRegion = mock(HARegion.class);
- final HARegionQueue giiHaRegionQueue =
+ HARegionQueue giiHaRegionQueue =
createHARegionQueue(haContainerWrapper, i, haRegion, false);;
giiHaRegionQueue.startGiiQueueing();
targetQueue = giiHaRegionQueue;
- when(haRegion.put(Mockito.any(Object.class), Mockito.any(HAEventWrapper.class)))
+ when(haRegion.put(any(Object.class), any(HAEventWrapper.class)))
.then(answer -> {
// Simulate that either a QRM or message dispatch has occurred immediately after the
// put.
// We want to ensure that the event is removed from the HAContainer if it is drained
- // from the giiQueue
- // and the ref count has dropped to 0.
+ // from the giiQueue and the ref count has dropped to 0.
HAEventWrapper haContainerKey = answer.getArgument(1);
giiHaRegionQueue.decAndRemoveFromHAContainer(haContainerKey);
return null;
});
- when(haRegion.getGemFireCache()).thenReturn((InternalCache) cache);
+ when(haRegion.getGemFireCache()).thenReturn(cache);
haRegionQueue = giiHaRegionQueue;
} else {
@@ -702,17 +654,18 @@ public class HARegionQueueIntegrationTest {
return targetQueue;
}
- private Set<HAEventWrapper> createAndPutHARegionQueuesSimulataneously(
- HAContainerWrapper haContainerWrapper, int numQueues, int numOperations) throws Exception {
- ConcurrentLinkedQueue<HARegionQueue> queues = new ConcurrentLinkedQueue<>();
- final Set<HAEventWrapper> testValidationWrapperSet = ConcurrentHashMap.newKeySet();
- final AtomicInteger count = new AtomicInteger();
+ private Set<HAEventWrapper> createAndPutHARegionQueuesSimultaneously(
+ HAContainerWrapper haContainerWrapper, int numQueues, int numOperations)
+ throws InterruptedException, IOException, ClassNotFoundException {
+ Collection<HARegionQueue> queues = new ConcurrentLinkedQueue<>();
+ AtomicInteger count = new AtomicInteger();
- // create HARegionQueuesv
+ // create HARegionQueues
for (int i = 0; i < numQueues; i++) {
queues.add(createHARegionQueue(haContainerWrapper, i));
}
+ Set<HAEventWrapper> testValidationWrapperSet = ConcurrentHashMap.newKeySet();
for (int i = 0; i < numOperations; i++) {
count.set(i);
@@ -740,8 +693,9 @@ public class HARegionQueueIntegrationTest {
}
private void createAndPutHARegionQueuesSequentially(HAContainerWrapper haContainerWrapper,
- HAEventWrapper haEventWrapper, int numQueues) throws Exception {
- ArrayList<HARegionQueue> queues = new ArrayList<>();
+ HAEventWrapper haEventWrapper, int numQueues)
+ throws InterruptedException, IOException, ClassNotFoundException {
+ Collection<HARegionQueue> queues = new ArrayList<>();
// create HARegionQueues
for (int i = 0; i < numQueues; i++) {
@@ -758,7 +712,9 @@ public class HARegionQueueIntegrationTest {
}
private void createAndUpdateHARegionQueuesSimultaneously(HAContainerWrapper haContainerWrapper,
- CachedDeserializable cd, int numQueues) throws Exception {
+ CachedDeserializable cd, int numQueues)
+ throws InterruptedException, IOException, ClassNotFoundException, TimeoutException,
+ ExecutionException {
// Create some HARegionQueues
HARegionQueue[] haRegionQueues = new HARegionQueue[numQueues];
for (int i = 0; i < numQueues; i++) {
@@ -766,34 +722,30 @@ public class HARegionQueueIntegrationTest {
}
// Create threads to simultaneously update the HAEventWrapper
- int j = 0;
- Thread[] threads = new Thread[numQueues];
+ Collection<Future<Void>> futures = new ArrayList<>();
for (HARegionQueue haRegionQueue : haRegionQueues) {
- threads[j] = new Thread(() -> {
+ futures.add(executorServiceRule.submit(() -> {
haRegionQueue.updateHAEventWrapper(member, cd, "haRegion");
- });
- j++;
+ }));
}
- // Start the threads
- for (int i = 0; i < numQueues; i++) {
- threads[i].start();
- }
-
- // Wait for the threads to complete
- for (int i = 0; i < numQueues; i++) {
- threads[i].join();
+ for (Future<Void> future : futures) {
+ future.get(getTimeout().toMillis(), MILLISECONDS);
}
}
private void verifyHAContainerWrapper(HAContainerWrapper haContainerWrapper,
CachedDeserializable cd, int numQueues) {
// Verify HAContainerRegion size
- assertThat(haContainerWrapper.size()).isEqualTo(1);
+ assertThat(haContainerWrapper).hasSize(1);
// Verify the refCount is correct
HAEventWrapper wrapperInContainer =
(HAEventWrapper) haContainerWrapper.getKey(cd.getDeserializedForReading());
assertThat(wrapperInContainer.getReferenceCount()).isEqualTo(numQueues);
}
+
+ private static <T> T mock(Class<T> classToMock) {
+ return Mockito.mock(classToMock, withSettings().stubOnly());
+ }
}
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/process/ControlFileWatchdogIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/process/ControlFileWatchdogIntegrationTest.java
index 8cbcfc8..43672a8 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/process/ControlFileWatchdogIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/process/ControlFileWatchdogIntegrationTest.java
@@ -20,7 +20,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.timeout;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import java.io.File;
@@ -171,7 +171,7 @@ public class ControlFileWatchdogIntegrationTest {
watchdog.start();
// assert
- verifyZeroInteractions(requestHandler); // would be prefer to wait some time
+ verifyNoMoreInteractions(requestHandler); // would be prefer to wait some time
}
@Test
@@ -184,7 +184,7 @@ public class ControlFileWatchdogIntegrationTest {
File file = new EmptyFileWriter(requestFile).createNewFile();
// assert
- verifyZeroInteractions(requestHandler); // would be prefer to wait some time
+ verifyNoMoreInteractions(requestHandler); // would be prefer to wait some time
assertThat(file).exists();
}
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/Connection.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/Connection.java
index 827e02c..dd18301 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/Connection.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/Connection.java
@@ -36,10 +36,16 @@ public interface Connection {
Socket getSocket();
+ long getBirthDate();
+
+ void setBirthDate(long ts);
+
ByteBuffer getCommBuffer() throws SocketException;
ConnectionStats getStats();
+ boolean isActive();
+
/**
* Forcefully close the resources used by this connection. This should be called if the connection
* or the server dies.
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/ConnectionImpl.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/ConnectionImpl.java
index aeb6677..bb98f2a 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/ConnectionImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/ConnectionImpl.java
@@ -224,6 +224,16 @@ public class ConnectionImpl implements Connection {
}
@Override
+ public long getBirthDate() {
+ return 0;
+ }
+
+ @Override
+ public void setBirthDate(long ts) {
+ // nothing
+ }
+
+ @Override
public OutputStream getOutputStream() {
return out;
}
@@ -240,6 +250,11 @@ public class ConnectionImpl implements Connection {
}
@Override
+ public boolean isActive() {
+ return false;
+ }
+
+ @Override
public String toString() {
return "Connection[" + endpoint + "]@" + hashCode();
}
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueueConnectionImpl.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueueConnectionImpl.java
index e50de27..5253440 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueueConnectionImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueueConnectionImpl.java
@@ -157,6 +157,16 @@ public class QueueConnectionImpl implements Connection {
}
@Override
+ public long getBirthDate() {
+ return 0;
+ }
+
+ @Override
+ public void setBirthDate(long ts) {
+ // nothing
+ }
+
+ @Override
public OutputStream getOutputStream() {
return getConnection().getOutputStream();
}
@@ -172,6 +182,11 @@ public class QueueConnectionImpl implements Connection {
}
@Override
+ public boolean isActive() {
+ return false;
+ }
+
+ @Override
public Object execute(Op op) throws Exception {
return getConnection().execute(op);
}
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/AvailableConnectionManager.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/AvailableConnectionManager.java
index 29c1387..fa71551 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/AvailableConnectionManager.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/AvailableConnectionManager.java
@@ -18,6 +18,9 @@ import java.util.Deque;
import java.util.concurrent.ConcurrentLinkedDeque;
import java.util.function.Predicate;
+import org.apache.geode.annotations.VisibleForTesting;
+import org.apache.geode.cache.client.internal.Connection;
+
/**
* This manager maintains a collection of PooledConnection instances.
* PooledConnections can be added to this manager using one of the add* methods.
@@ -30,7 +33,7 @@ import java.util.function.Predicate;
*
*/
public class AvailableConnectionManager {
- private final Deque<PooledConnection> connections =
+ private final Deque<Connection> connections =
new ConcurrentLinkedDeque<>();
/**
@@ -39,8 +42,8 @@ public class AvailableConnectionManager {
*
* @return the activated connection or null if none found
*/
- public PooledConnection useFirst() {
- PooledConnection connection;
+ public Connection useFirst() {
+ Connection connection;
while (null != (connection = connections.pollFirst())) {
if (connection.activate()) {
return connection;
@@ -55,7 +58,7 @@ public class AvailableConnectionManager {
* @param connection the connection to remove
* @return true if a connection was removed; otherwise false
*/
- public boolean remove(PooledConnection connection) {
+ public boolean remove(Connection connection) {
return connections.remove(connection);
}
@@ -66,10 +69,10 @@ public class AvailableConnectionManager {
* @param predicate that the connections are matched against
* @return the activated connection or null if none found
*/
- public PooledConnection useFirst(Predicate<PooledConnection> predicate) {
+ public Connection useFirst(Predicate<Connection> predicate) {
final EqualsWithPredicate equalsWithPredicate = new EqualsWithPredicate(predicate);
while (connections.removeFirstOccurrence(equalsWithPredicate)) {
- PooledConnection connection = equalsWithPredicate.getConnectionThatMatched();
+ Connection connection = equalsWithPredicate.getConnectionThatMatched();
if (connection.activate()) {
// Need to recheck the predicate after we have activated.
// Until activated load conditioning can change the server
@@ -91,7 +94,7 @@ public class AvailableConnectionManager {
* @param connection the connection to passivate and add
* @param accessed true if the connection was used by the caller, false otherwise
*/
- public void addFirst(PooledConnection connection, boolean accessed) {
+ public void addFirst(Connection connection, boolean accessed) {
passivate(connection, accessed);
connections.addFirst(connection);
}
@@ -102,12 +105,12 @@ public class AvailableConnectionManager {
* @param connection the connection to passivate and add
* @param accessed true if the connection was used by the caller, false otherwise
*/
- public void addLast(PooledConnection connection, boolean accessed) {
+ public void addLast(Connection connection, boolean accessed) {
passivate(connection, accessed);
connections.addLast(connection);
}
- private void passivate(PooledConnection connection, boolean accessed) {
+ private void passivate(Connection connection, boolean accessed) {
// thread local connections are already passive at this point
if (connection.isActive()) {
connection.passivate(accessed);
@@ -115,7 +118,8 @@ public class AvailableConnectionManager {
}
// used by unit tests
- Deque<PooledConnection> getDeque() {
+ @VisibleForTesting
+ Deque<Connection> getDeque() {
return connections;
}
@@ -126,19 +130,19 @@ public class AvailableConnectionManager {
* that did match.
*/
private static class EqualsWithPredicate {
- private final Predicate<PooledConnection> predicate;
- private PooledConnection connectionThatMatched;
+ private final Predicate<Connection> predicate;
+ private Connection connectionThatMatched;
- EqualsWithPredicate(Predicate<PooledConnection> predicate) {
+ EqualsWithPredicate(Predicate<Connection> predicate) {
this.predicate = predicate;
}
@Override
public boolean equals(Object o) {
- if (!(o instanceof PooledConnection)) {
+ if (!(o instanceof Connection)) {
return false;
}
- PooledConnection pooledConnection = (PooledConnection) o;
+ Connection pooledConnection = (Connection) o;
if (predicate.test(pooledConnection)) {
this.connectionThatMatched = pooledConnection;
return true;
@@ -146,7 +150,7 @@ public class AvailableConnectionManager {
return false;
}
- public PooledConnection getConnectionThatMatched() {
+ public Connection getConnectionThatMatched() {
return this.connectionThatMatched;
}
}
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/ConnectionManagerImpl.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/ConnectionManagerImpl.java
index d7295f6..ae48659 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/ConnectionManagerImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/ConnectionManagerImpl.java
@@ -263,7 +263,7 @@ public class ConnectionManagerImpl implements ConnectionManager {
try {
long timeout = System.nanoTime() + MILLISECONDS.toNanos(acquireTimeout);
while (true) {
- PooledConnection connection = availableConnectionManager.useFirst();
+ Connection connection = availableConnectionManager.useFirst();
if (null != connection) {
return connection;
}
@@ -302,12 +302,12 @@ public class ConnectionManagerImpl implements ConnectionManager {
}
@Override
- public PooledConnection borrowConnection(ServerLocation server, long acquireTimeout,
+ public Connection borrowConnection(ServerLocation server, long acquireTimeout,
boolean onlyUseExistingCnx)
throws AllConnectionsInUseException, NoAvailableServersException,
ServerConnectivityException {
- PooledConnection connection;
+ Connection connection;
logger.trace("Connection borrowConnection single hop connection");
long waitStart = NOT_WAITING;
@@ -353,7 +353,7 @@ public class ConnectionManagerImpl implements ConnectionManager {
throws AllConnectionsInUseException {
try {
- PooledConnection connection = availableConnectionManager
+ Connection connection = availableConnectionManager
.useFirst((c) -> !excludedServers.contains(c.getServer()));
if (null != connection) {
return connection;
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/PooledConnection.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/PooledConnection.java
index ae5df9d..fa50f31 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/PooledConnection.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/PooledConnection.java
@@ -62,6 +62,7 @@ public class PooledConnection implements Connection {
return getEndpoint().getLocation();
}
+ @Override
public boolean isActive() {
synchronized (this) {
return this.active;
@@ -240,10 +241,12 @@ public class PooledConnection implements Connection {
return lastAccessed;
}
+ @Override
public long getBirthDate() {
return this.birthDate;
}
+ @Override
public void setBirthDate(long ts) {
this.birthDate = ts;
}
diff --git a/geode-core/src/test/java/org/apache/geode/alerting/internal/ClusterAlertMessagingTest.java b/geode-core/src/test/java/org/apache/geode/alerting/internal/ClusterAlertMessagingTest.java
index 4471ed3..f7bc8d8 100644
--- a/geode-core/src/test/java/org/apache/geode/alerting/internal/ClusterAlertMessagingTest.java
+++ b/geode-core/src/test/java/org/apache/geode/alerting/internal/ClusterAlertMessagingTest.java
@@ -26,7 +26,7 @@ import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import java.io.IOException;
@@ -192,7 +192,7 @@ public class ClusterAlertMessagingTest {
clusterAlertMessaging.sendAlert(remoteMember, AlertLevel.WARNING, Instant.now(), "threadName",
Thread.currentThread().getId(), "formattedMessage", "stackTrace");
- verifyZeroInteractions(distributionManager);
+ verifyNoMoreInteractions(distributionManager);
}
@Test
diff --git a/geode-core/src/test/java/org/apache/geode/cache/client/internal/OpExecutorImplJUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/client/internal/OpExecutorImplJUnitTest.java
index 0fa4c37..ad7feea 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/client/internal/OpExecutorImplJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/client/internal/OpExecutorImplJUnitTest.java
@@ -534,11 +534,26 @@ public class OpExecutorImplJUnitTest {
}
@Override
+ public long getBirthDate() {
+ return 0;
+ }
+
+ @Override
+ public void setBirthDate(long ts) {
+ // nothing
+ }
+
+ @Override
public ConnectionStats getStats() {
return null;
}
@Override
+ public boolean isActive() {
+ return false;
+ }
+
+ @Override
public int getDistributedSystemId() {
return 0;
}
diff --git a/geode-core/src/test/java/org/apache/geode/cache/client/internal/pooling/AvailableConnectionManagerTest.java b/geode-core/src/test/java/org/apache/geode/cache/client/internal/pooling/AvailableConnectionManagerTest.java
index 6ebdc4a..ee5b559 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/client/internal/pooling/AvailableConnectionManagerTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/client/internal/pooling/AvailableConnectionManagerTest.java
@@ -27,6 +27,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
import org.junit.Test;
+import org.apache.geode.cache.client.internal.Connection;
+
public class AvailableConnectionManagerTest {
private final AvailableConnectionManager instance = new AvailableConnectionManager();
@@ -42,17 +44,17 @@ public class AvailableConnectionManagerTest {
public void useFirstReturnsNullGivenEmptyManager() {
instance.getDeque().clear();
- PooledConnection result = instance.useFirst();
+ Connection result = instance.useFirst();
assertThat(result).isNull();
}
@Test
public void useFirstReturnsExpectedConnectionGivenManagerWithOneItem() {
- PooledConnection expected = createConnection();
+ Connection expected = createConnection();
instance.getDeque().addFirst(expected);
- PooledConnection result = instance.useFirst();
+ Connection result = instance.useFirst();
assertThat(result).isSameAs(expected);
assertThat(instance.getDeque()).isEmpty();
@@ -61,11 +63,11 @@ public class AvailableConnectionManagerTest {
@Test
public void useFirstReturnsNullGivenManagerWithOneItemThatCantBeActivated() {
- PooledConnection expected = createConnection();
+ Connection expected = createConnection();
when(expected.activate()).thenReturn(false);
instance.getDeque().addFirst(expected);
- PooledConnection result = instance.useFirst();
+ Connection result = instance.useFirst();
assertThat(result).isNull();
assertThat(instance.getDeque()).isEmpty();
@@ -76,17 +78,17 @@ public class AvailableConnectionManagerTest {
public void useFirstWithPredicateReturnsNullGivenEmptyManager() {
instance.getDeque().clear();
- PooledConnection result = instance.useFirst(c -> true);
+ Connection result = instance.useFirst(c -> true);
assertThat(result).isNull();
}
@Test
public void useFirstWithPredicateReturnsExpectedGivenManagerWithOneItem() {
- PooledConnection expected = createConnection();
+ Connection expected = createConnection();
instance.getDeque().addFirst(expected);
- PooledConnection result = instance.useFirst(c -> c == expected);
+ Connection result = instance.useFirst(c -> c == expected);
assertThat(result).isSameAs(expected);
assertThat(instance.getDeque()).isEmpty();
@@ -95,10 +97,10 @@ public class AvailableConnectionManagerTest {
@Test
public void useFirstWithPredicateReturnsNullGivenManagerWithOneItemThatDoesNotMatch() {
- PooledConnection expected = createConnection();
+ Connection expected = createConnection();
instance.getDeque().addFirst(expected);
- PooledConnection result = instance.useFirst(c -> false);
+ Connection result = instance.useFirst(c -> false);
assertThat(result).isNull();
assertThat(instance.getDeque()).hasSize(1);
@@ -107,11 +109,11 @@ public class AvailableConnectionManagerTest {
@Test
public void useFirstWithPredicateReturnsNullGivenManagerWithOneItemThatCantBeActivated() {
- PooledConnection expected = createConnection();
+ Connection expected = createConnection();
when(expected.activate()).thenReturn(false);
instance.getDeque().addFirst(expected);
- PooledConnection result = instance.useFirst(c -> c == expected);
+ Connection result = instance.useFirst(c -> c == expected);
assertThat(result).isNull();
assertThat(instance.getDeque()).isEmpty();
@@ -120,12 +122,12 @@ public class AvailableConnectionManagerTest {
@Test
public void useFirstWithPredicateReturnsNullGivenManagerWithOneItemThatDoesNotMatchAfterBeingActivated() {
- PooledConnection expected = createConnection();
+ Connection expected = createConnection();
when(expected.activate()).thenReturn(true);
instance.getDeque().addFirst(expected);
final AtomicBoolean firstTime = new AtomicBoolean(true);
- PooledConnection result = instance.useFirst(c -> {
+ Connection result = instance.useFirst(c -> {
if (firstTime.get()) {
firstTime.set(false);
return true;
@@ -151,7 +153,7 @@ public class AvailableConnectionManagerTest {
@Test
public void removeReturnsTrueGivenConnectionInManager() {
- PooledConnection connection = createConnection();
+ Connection connection = createConnection();
instance.getDeque().addFirst(connection);
boolean result = instance.remove(connection);
@@ -161,7 +163,7 @@ public class AvailableConnectionManagerTest {
@Test
public void removeEmptiesDequeGivenConnectionInManager() {
- PooledConnection connection = createConnection();
+ Connection connection = createConnection();
instance.getDeque().addFirst(connection);
instance.remove(connection);
@@ -171,7 +173,7 @@ public class AvailableConnectionManagerTest {
@Test
public void addFirstWithTrueAddsActiveConnectionToManager() {
- PooledConnection connection = createConnection();
+ Connection connection = createConnection();
instance.addFirst(connection, true);
@@ -182,7 +184,7 @@ public class AvailableConnectionManagerTest {
@Test
public void addFirstWithFalseAddsActiveConnectionToManager() {
- PooledConnection connection = createConnection();
+ Connection connection = createConnection();
instance.addFirst(connection, false);
@@ -193,7 +195,7 @@ public class AvailableConnectionManagerTest {
@Test
public void addFirstAddsInactiveConnectionToManager() {
- PooledConnection connection = createConnection();
+ Connection connection = createConnection();
when(connection.isActive()).thenReturn(false);
instance.addFirst(connection, true);
@@ -206,7 +208,7 @@ public class AvailableConnectionManagerTest {
@Test
public void addLastWithTrueAddsActiveConnectionToManager() {
- PooledConnection connection = createConnection();
+ Connection connection = createConnection();
instance.addLast(connection, true);
@@ -217,7 +219,7 @@ public class AvailableConnectionManagerTest {
@Test
public void addLastWithFalseAddsActiveConnectionToManager() {
- PooledConnection connection = createConnection();
+ Connection connection = createConnection();
instance.addLast(connection, false);
@@ -228,7 +230,7 @@ public class AvailableConnectionManagerTest {
@Test
public void addLastAddsInactiveConnectionToManager() {
- PooledConnection connection = createConnection();
+ Connection connection = createConnection();
when(connection.isActive()).thenReturn(false);
instance.addLast(connection, true);
@@ -240,12 +242,12 @@ public class AvailableConnectionManagerTest {
@Test
public void addFirstTakesPrecedenceOverAddLast() {
- PooledConnection expected = createConnection();
+ Connection expected = createConnection();
instance.addLast(createConnection(), true);
instance.addFirst(expected, true);
instance.addLast(createConnection(), true);
- PooledConnection connection = instance.useFirst();
+ Connection connection = instance.useFirst();
assertThat(instance.getDeque()).hasSize(2);
assertThat(connection).isSameAs(expected);
diff --git a/geode-core/src/test/java/org/apache/geode/distributed/ServerLauncherTest.java b/geode-core/src/test/java/org/apache/geode/distributed/ServerLauncherTest.java
index afc0b43..a27c13a 100755
--- a/geode-core/src/test/java/org/apache/geode/distributed/ServerLauncherTest.java
+++ b/geode-core/src/test/java/org/apache/geode/distributed/ServerLauncherTest.java
@@ -24,7 +24,7 @@ import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import java.io.IOException;
@@ -306,7 +306,7 @@ public class ServerLauncherTest {
launcher.start();
- verifyZeroInteractions(cacheServer);
+ verifyNoMoreInteractions(cacheServer);
}
@Test
@@ -324,7 +324,7 @@ public class ServerLauncherTest {
launcher.start();
- verifyZeroInteractions(cacheServer2);
+ verifyNoMoreInteractions(cacheServer2);
}
@Test
@@ -348,7 +348,7 @@ public class ServerLauncherTest {
serverLauncher.start();
verify(startupCompletionAction).run();
- verifyZeroInteractions(startupExceptionAction);
+ verifyNoMoreInteractions(startupExceptionAction);
}
@Test
@@ -371,7 +371,7 @@ public class ServerLauncherTest {
serverLauncher.start();
verify(startupExceptionAction).accept(any());
- verifyZeroInteractions(startupCompletionAction);
+ verifyNoMoreInteractions(startupCompletionAction);
}
@Test
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/InternalCacheBuilderTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/InternalCacheBuilderTest.java
index abe34d3..76d9331 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/InternalCacheBuilderTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/InternalCacheBuilderTest.java
@@ -38,7 +38,7 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.same;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;
@@ -558,7 +558,7 @@ public class InternalCacheBuilderTest {
.setIsExistingOk(true)
.create(givenSystem));
- verifyZeroInteractions(givenSystem);
+ verifyNoMoreInteractions(givenSystem);
}
@Test
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionRedundancyTrackerTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionRedundancyTrackerTest.java
index 24cb002..7bebc45 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionRedundancyTrackerTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionRedundancyTrackerTest.java
@@ -21,7 +21,6 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.verifyZeroInteractions;
import org.junit.Before;
import org.junit.Test;
@@ -63,7 +62,7 @@ public class PartitionedRegionRedundancyTrackerTest {
@Test
public void willNotDecrementLowRedundancyBucketCountBelowZero() {
redundancyTracker.decrementLowRedundancyBucketCount();
- verifyZeroInteractions(stats);
+ verifyNoMoreInteractions(stats);
}
@Test
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupOperationTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupOperationTest.java
index 77d99d6..0d4416b 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupOperationTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupOperationTest.java
@@ -20,7 +20,7 @@ import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import org.junit.Before;
@@ -111,7 +111,7 @@ public class BackupOperationTest {
any());
inOrder.verify(abortBackupFactory).createAbortBackupStep(any(), any(), any(), any(), any());
- verifyZeroInteractions(finishBackupFactory);
+ verifyNoMoreInteractions(finishBackupFactory);
}
@Test
@@ -121,7 +121,7 @@ public class BackupOperationTest {
assertThatThrownBy(() -> backupOperation.backupAllMembers(targetDirPath, baselineDirPath))
.isInstanceOf(ManagementException.class);
- verifyZeroInteractions(flushToDiskFactory, prepareBackupFactory, abortBackupFactory,
+ verifyNoMoreInteractions(flushToDiskFactory, prepareBackupFactory, abortBackupFactory,
finishBackupFactory);
}
}
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/colocation/SingleThreadColocationLoggerTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/colocation/SingleThreadColocationLoggerTest.java
index ec7029c..ef909ca 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/colocation/SingleThreadColocationLoggerTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/colocation/SingleThreadColocationLoggerTest.java
@@ -25,7 +25,6 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.timeout;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.when;
import java.util.Set;
@@ -191,7 +190,7 @@ public class SingleThreadColocationLoggerTest {
colocationLogger.addMissingChildRegion("/childRegion");
- verifyZeroInteractions(logger);
+ verifyNoMoreInteractions(logger);
}
@Test
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/command/ExecuteFunction65Test.java b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/command/ExecuteFunction65Test.java
index 96b4d08..c29d4b7 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/command/ExecuteFunction65Test.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/command/ExecuteFunction65Test.java
@@ -21,7 +21,7 @@ import static org.mockito.Mockito.doCallRealMethod;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import org.junit.Before;
@@ -220,6 +220,6 @@ public class ExecuteFunction65Test {
executeFunction65.cmdExecute(message, serverConnection, securityService, 0);
verify(securityService).authorize(ResourcePermissions.DATA_WRITE);
- verifyZeroInteractions(serverToClientFunctionResultSender65Factory);
+ verifyNoMoreInteractions(serverToClientFunctionResultSender65Factory);
}
}
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/command/ExecuteFunction66Test.java b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/command/ExecuteFunction66Test.java
index 0d8ae84..092a32e 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/command/ExecuteFunction66Test.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/command/ExecuteFunction66Test.java
@@ -22,7 +22,7 @@ import static org.mockito.Mockito.doCallRealMethod;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import java.util.concurrent.Executor;
@@ -212,7 +212,7 @@ public class ExecuteFunction66Test {
verify(securityService).authorize(ResourcePermissions.DATA_WRITE);
// verify(this.chunkedResponseMessage).sendChunk(this.serverConnection);
- verifyZeroInteractions(serverToClientFunctionResultSender65Factory);
+ verifyNoMoreInteractions(serverToClientFunctionResultSender65Factory);
}
@Test
@@ -240,6 +240,6 @@ public class ExecuteFunction66Test {
securityService, 0)).isExactlyInstanceOf(NullPointerException.class);
verify(securityService).authorize(ResourcePermissions.DATA_WRITE);
- verifyZeroInteractions(serverToClientFunctionResultSender65Factory);
+ verifyNoMoreInteractions(serverToClientFunctionResultSender65Factory);
}
}
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/command/ExecuteFunctionTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/command/ExecuteFunctionTest.java
index aa95fb4..abf9831 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/command/ExecuteFunctionTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/command/ExecuteFunctionTest.java
@@ -22,7 +22,7 @@ import static org.mockito.Mockito.doCallRealMethod;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import org.junit.Before;
@@ -194,7 +194,7 @@ public class ExecuteFunctionTest {
verify(securityService).authorize(ResourcePermissions.DATA_WRITE);
verify(chunkedResponseMessage).sendChunk(serverConnection);
- verifyZeroInteractions(serverToClientFunctionResultSenderFactory);
+ verifyNoMoreInteractions(serverToClientFunctionResultSenderFactory);
}
@Test
@@ -220,6 +220,6 @@ public class ExecuteFunctionTest {
executeFunction.cmdExecute(message, serverConnection, securityService, 0);
verify(chunkedResponseMessage).sendChunk(serverConnection);
- verifyZeroInteractions(serverToClientFunctionResultSenderFactory);
+ verifyNoMoreInteractions(serverToClientFunctionResultSenderFactory);
}
}
diff --git a/geode-core/src/test/java/org/apache/geode/internal/io/CompositeOutputStreamJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/io/CompositeOutputStreamJUnitTest.java
index 34a438d..15704c4 100755
--- a/geode-core/src/test/java/org/apache/geode/internal/io/CompositeOutputStreamJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/io/CompositeOutputStreamJUnitTest.java
@@ -19,7 +19,7 @@ import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import java.io.IOException;
import java.io.OutputStream;
@@ -234,7 +234,7 @@ public class CompositeOutputStreamJUnitTest {
cos.flush();
cos.close();
- verifyZeroInteractions(streamTwo);
+ verifyNoMoreInteractions(streamTwo);
InOrder inOrderStreams = inOrder(streamOne);
inOrderStreams.verify(streamOne, times(1)).write(2);
inOrderStreams.verify(streamOne, times(1)).write(3);
@@ -261,7 +261,7 @@ public class CompositeOutputStreamJUnitTest {
cos.flush();
cos.close();
- verifyZeroInteractions(streamOne);
+ verifyNoMoreInteractions(streamOne);
}
@Test
@@ -279,6 +279,6 @@ public class CompositeOutputStreamJUnitTest {
cos.flush();
cos.close();
- verifyZeroInteractions(streamOne);
+ verifyNoMoreInteractions(streamOne);
}
}
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/FederatingManagerTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/FederatingManagerTest.java
index 1b89f79..2de1c51 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/FederatingManagerTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/FederatingManagerTest.java
@@ -21,7 +21,7 @@ import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.powermock.api.mockito.PowerMockito.when;
import java.net.InetAddress;
@@ -442,7 +442,7 @@ public class FederatingManagerTest {
federatingManager.removeMemberArtifacts(member, false);
- verifyZeroInteractions(proxyFactory);
+ verifyNoMoreInteractions(proxyFactory);
}
private InternalDistributedMember member() {
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/beans/ManagementListenerTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/beans/ManagementListenerTest.java
index 585d2a1..26067a5 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/beans/ManagementListenerTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/beans/ManagementListenerTest.java
@@ -23,7 +23,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import java.util.concurrent.locks.Lock;
@@ -130,9 +130,9 @@ public class ManagementListenerTest {
public void handleEventDoesNotUseLocksForSystemAlertEvent() {
managementListener.handleEvent(SYSTEM_ALERT, null);
- verifyZeroInteractions(readWriteLock);
- verifyZeroInteractions(readLock);
- verifyZeroInteractions(writeLock);
+ verifyNoMoreInteractions(readWriteLock);
+ verifyNoMoreInteractions(readLock);
+ verifyNoMoreInteractions(writeLock);
}
@Test
diff --git a/geode-dunit/src/test/java/org/apache/geode/test/dunit/internal/VMEventNotifierTest.java b/geode-dunit/src/test/java/org/apache/geode/test/dunit/internal/VMEventNotifierTest.java
index f516986..87c8030 100644
--- a/geode-dunit/src/test/java/org/apache/geode/test/dunit/internal/VMEventNotifierTest.java
+++ b/geode-dunit/src/test/java/org/apache/geode/test/dunit/internal/VMEventNotifierTest.java
@@ -18,7 +18,7 @@ import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Future;
@@ -93,7 +93,7 @@ public class VMEventNotifierTest {
notifiedFuture.get(TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
verify(vmEventListener1).afterCreateVM(eq(vm));
- verifyZeroInteractions(vmEventListener2);
+ verifyNoMoreInteractions(vmEventListener2);
}
@Test
diff --git a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/AlterQueryServiceFunctionTest.java b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/AlterQueryServiceFunctionTest.java
index 90f0dc0..c75a0d6 100644
--- a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/AlterQueryServiceFunctionTest.java
+++ b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/AlterQueryServiceFunctionTest.java
@@ -31,7 +31,7 @@ import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import java.util.Arrays;
@@ -110,7 +110,7 @@ public class AlterQueryServiceFunctionTest {
when(mockContext.getArguments()).thenReturn(new Object[] {false, null, Collections.emptySet()});
CliFunctionResult result = function.executeFunction(mockContext);
- verifyZeroInteractions(mockQueryConfigService);
+ verifyNoMoreInteractions(mockQueryConfigService);
assertThat(result.getStatus()).isEqualTo(CliFunctionResult.StatusState.ERROR.toString());
assertThat(result.getStatusMessage()).isEqualTo(EMPTY_AUTHORIZER_ERROR);
}
@@ -120,7 +120,7 @@ public class AlterQueryServiceFunctionTest {
doReturn(false).when(function).isSecurityEnabled();
CliFunctionResult result = function.executeFunction(mockContext);
- verifyZeroInteractions(mockQueryConfigService);
+ verifyNoMoreInteractions(mockQueryConfigService);
assertThat(result.getStatus()).isEqualTo(CliFunctionResult.StatusState.ERROR.toString());
assertThat(result.getStatusMessage()).isEqualTo(SECURITY_NOT_ENABLED_MESSAGE);
}
@@ -130,7 +130,7 @@ public class AlterQueryServiceFunctionTest {
setAllowUntrustedMethodInvocationSystemProperty();
CliFunctionResult result = function.executeFunction(mockContext);
- verifyZeroInteractions(mockQueryConfigService);
+ verifyNoMoreInteractions(mockQueryConfigService);
assertThat(result.getStatus()).isEqualTo(CliFunctionResult.StatusState.ERROR.toString());
assertThat(result.getStatusMessage()).isEqualTo(DEPRECATED_PROPERTY_ERROR);
}
diff --git a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/RegionAlterFunctionTest.java b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/RegionAlterFunctionTest.java
index 3ee0c6e..829fab9 100644
--- a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/RegionAlterFunctionTest.java
+++ b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/RegionAlterFunctionTest.java
@@ -24,7 +24,7 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import java.util.Arrays;
@@ -123,7 +123,7 @@ public class RegionAlterFunctionTest {
public void updateWithEmptyRegionAttributes() {
// the regionAttributes starts with no values inside
function.alterRegion(cache, config);
- verifyZeroInteractions(mutator);
+ verifyNoMoreInteractions(mutator);
}
@Test