This is an automated email from the ASF dual-hosted git repository.
pivotalsarge 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 5252419 GEODE-4511: Ensure a pool is available for durable client
subscription. (#1448)
5252419 is described below
commit 525241905050e9a192a1f36fc662735ab8e281d9
Author: Michael "Sarge" Dodge <[email protected]>
AuthorDate: Wed Feb 14 09:03:03 2018 -0800
GEODE-4511: Ensure a pool is available for durable client subscription.
(#1448)
* GEODE-4511: Ensure a pool is available for durable client subscription.
* GEODE-4511: Restrict default pool creation for subscription to clients.
---
.../org/apache/geode/internal/cache/GemFireCacheImpl.java | 12 ++++++++++++
.../org/apache/geode/internal/cache/PoolManagerImpl.java | 3 ---
.../cache/tier/sockets/RegisterInterestIntegrationTest.java | 11 +++--------
3 files changed, 15 insertions(+), 11 deletions(-)
diff --git
a/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
b/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
index a441ffb..1549cd9 100755
---
a/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
+++
b/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
@@ -4329,6 +4329,18 @@ public class GemFireCacheImpl implements InternalCache,
InternalClientCache, Has
@Override
public void readyForEvents() {
+ if (isClient()) {
+ // If a durable client has been configured...
+ if (Objects.nonNull(system) && Objects.nonNull(system.getConfig())
+ && !Objects.equals(DistributionConfig.DEFAULT_DURABLE_CLIENT_ID,
+ Objects.toString(system.getConfig().getDurableClientId(),
+ DistributionConfig.DEFAULT_DURABLE_CLIENT_ID))) {
+ // Ensure that there is a pool to use for readyForEvents().
+ if (Objects.isNull(defaultPool)) {
+ determineDefaultPool();
+ }
+ }
+ }
PoolManagerImpl.readyForEvents(this.system, false);
}
diff --git
a/geode-core/src/main/java/org/apache/geode/internal/cache/PoolManagerImpl.java
b/geode-core/src/main/java/org/apache/geode/internal/cache/PoolManagerImpl.java
index ffc62ea..82f3178 100644
---
a/geode-core/src/main/java/org/apache/geode/internal/cache/PoolManagerImpl.java
+++
b/geode-core/src/main/java/org/apache/geode/internal/cache/PoolManagerImpl.java
@@ -206,9 +206,6 @@ public class PoolManagerImpl {
}
}
}
- if (pools.size() == 0) {
- throw new IllegalStateException("Ready for Events called, but no pool to
execute on");
- }
if (pools.size() > 0 && !foundDurablePool) {
throw new IllegalStateException(
LocalizedStrings.PoolManagerImpl_ONLY_DURABLE_CLIENTS_SHOULD_CALL_READYFOREVENTS
diff --git
a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestIntegrationTest.java
b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestIntegrationTest.java
index d234c96..e10dc0a 100644
---
a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestIntegrationTest.java
+++
b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestIntegrationTest.java
@@ -300,18 +300,13 @@ public class RegisterInterestIntegrationTest {
}
@Test
- public void
readyForEventsBeforeAnyPoolsAreCreatedShouldResultInIllegalStateException()
+ public void
readyForEventsBeforeAnyPoolsAreCreatedShouldNotResultInIllegalStateException()
throws Exception {
ClientCache clientCache = createClientCache(locatorPort, true);
- try {
- clientCache.readyForEvents();
- fail();
- } catch (IllegalStateException e) {
- assertEquals("Ready for Events called, but no pool to execute on",
e.getMessage());
- }
-
+ clientCache.readyForEvents();
+ // No exception should be thrown.
}
private ClientCache createClientCache(Integer locatorPort) {
--
To stop receiving notification emails like this one, please contact
[email protected].