This is an automated email from the ASF dual-hosted git repository.
dschneider 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 0e342fd GEODE-6670: remove getCacheServers allocation
0e342fd is described below
commit 0e342fd3515e92a99c44bd05c661624d180045dd
Author: Darrel Schneider <[email protected]>
AuthorDate: Mon May 6 09:08:26 2019 -0700
GEODE-6670: remove getCacheServers allocation
getCacheServers now returns a canonical instance instead of creating a new
instance for each call.
---
.../java/org/apache/geode/internal/cache/GemFireCacheImpl.java | 7 ++++++-
.../org/apache/geode/internal/cache/GemFireCacheImplTest.java | 8 ++++++++
2 files changed, 14 insertions(+), 1 deletion(-)
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 53211a5..a512b76 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
@@ -397,6 +397,11 @@ public class GemFireCacheImpl implements InternalCache,
InternalClientCache, Has
* outnumber the mutative operations such as add, remove.
*/
private final List<InternalCacheServer> allCacheServers = new
CopyOnWriteArrayList<>();
+ /**
+ * Unmodifiable view of "allCacheServers".
+ */
+ private final List<CacheServer> unmodifiableAllCacheServers =
+ Collections.unmodifiableList(allCacheServers);
/**
* Controls updates to the list of all gateway senders
@@ -3957,7 +3962,7 @@ public class GemFireCacheImpl implements InternalCache,
InternalClientCache, Has
@Override
public List<CacheServer> getCacheServers() {
- return Collections.unmodifiableList(allCacheServers);
+ return this.unmodifiableAllCacheServers;
}
@Override
diff --git
a/geode-core/src/test/java/org/apache/geode/internal/cache/GemFireCacheImplTest.java
b/geode-core/src/test/java/org/apache/geode/internal/cache/GemFireCacheImplTest.java
index 246e757..6a3546f 100644
---
a/geode-core/src/test/java/org/apache/geode/internal/cache/GemFireCacheImplTest.java
+++
b/geode-core/src/test/java/org/apache/geode/internal/cache/GemFireCacheImplTest.java
@@ -554,6 +554,14 @@ public class GemFireCacheImplTest {
assertThat(value).isFalse();
}
+ @Test
+ public void getCacheServersIsCanonical() {
+ gemFireCacheImpl = createGemFireCacheImpl();
+ List<CacheServer> list1 = gemFireCacheImpl.getCacheServers();
+ List<CacheServer> list2 = gemFireCacheImpl.getCacheServers();
+ assertThat(list1).isSameAs(list2);
+ }
+
private static GemFireCacheImpl createGemFireCacheImpl() {
return (GemFireCacheImpl) new
InternalCacheBuilder().create(Fakes.distributedSystem());
}