DATAGEODE-244 - Guard against invalid Region names.
This commit is contained in:
@@ -63,7 +63,10 @@ public abstract class AbstractCachingRegionResolver extends CacheListenerAdapter
|
||||
*/
|
||||
@Nullable @Override @SuppressWarnings("unchecked")
|
||||
public synchronized <K, V> Region<K, V> resolve(@Nullable String regionName) {
|
||||
return this.nameToRegionCache.computeIfAbsent(regionName, this::doResolveAndRegisterResolverAsCacheListener);
|
||||
|
||||
return StringUtils.hasText(regionName)
|
||||
? this.nameToRegionCache.computeIfAbsent(regionName, this::doResolveAndRegisterResolverAsCacheListener)
|
||||
: null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -85,6 +85,33 @@ public class AbstractCachingRegionResolverUnitTests {
|
||||
verifyNoMoreInteractions(mockRegion);
|
||||
}
|
||||
|
||||
public void testResolveWithInvalidRegionName(String regionName) {
|
||||
|
||||
AbstractCachingRegionResolver regionResolver = spy(AbstractCachingRegionResolver.class);
|
||||
|
||||
when(regionResolver.resolve(any())).thenCallRealMethod();
|
||||
|
||||
assertThat(regionResolver.resolve(regionName)).isNull();
|
||||
|
||||
verify(regionResolver, never()).doResolveAndRegisterResolverAsCacheListener(anyString());
|
||||
verify(regionResolver, never()).doResolve(anyString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void resolveWithBlankRegionNameReturnsNull() {
|
||||
testResolveWithInvalidRegionName(" ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void resolveWithEmptyRegionNameReturnsNull() {
|
||||
testResolveWithInvalidRegionName("");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void resolveWithNullRegionNameReturnsNull() {
|
||||
testResolveWithInvalidRegionName(null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void afterRegionDestroyClearsCacheEntryForCachedRegionWithName() {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user