diff --git a/src/main/java/org/springframework/data/gemfire/LocalRegionFactoryBean.java b/src/main/java/org/springframework/data/gemfire/LocalRegionFactoryBean.java index 0b521a3a..5d6f4d0b 100644 --- a/src/main/java/org/springframework/data/gemfire/LocalRegionFactoryBean.java +++ b/src/main/java/org/springframework/data/gemfire/LocalRegionFactoryBean.java @@ -15,6 +15,8 @@ */ package org.springframework.data.gemfire; +import org.springframework.util.Assert; + import com.gemstone.gemfire.cache.DataPolicy; import com.gemstone.gemfire.cache.RegionFactory; import com.gemstone.gemfire.cache.Scope; @@ -29,11 +31,6 @@ public class LocalRegionFactoryBean extends RegionFactoryBean { throw new UnsupportedOperationException("setScope() is not allowed for Local Regions"); } - @Override - public void setPersistent(boolean persistent) { - throw new UnsupportedOperationException("setPersistent() is not allowed for Local Regions"); - } - @Override public void afterPropertiesSet() throws Exception { super.setScope(Scope.LOCAL); @@ -51,6 +48,7 @@ public class LocalRegionFactoryBean extends RegionFactoryBean { regionFactory.setDataPolicy(DataPolicy.PRELOADED); } else if ("EMPTY".equals(dataPolicy)) { + Assert.isTrue(persistent == null || !persistent, "Cannot have persistence on an empty region"); regionFactory.setDataPolicy(DataPolicy.EMPTY); } else { diff --git a/src/test/java/org/springframework/data/gemfire/config/LocalRegionNamespaceTest.java b/src/test/java/org/springframework/data/gemfire/config/LocalRegionNamespaceTest.java index ad17c7ec..930211bd 100644 --- a/src/test/java/org/springframework/data/gemfire/config/LocalRegionNamespaceTest.java +++ b/src/test/java/org/springframework/data/gemfire/config/LocalRegionNamespaceTest.java @@ -109,4 +109,12 @@ public class LocalRegionNamespaceTest { assertEquals("existing", TestUtils.readField("name", lfb)); assertEquals(existing, context.getBean("lookup")); } + + @SuppressWarnings("rawtypes") + @Test + public void testLocalPersistent() { + Region region = context.getBean("persistent", Region.class); + RegionAttributes attrs = region.getAttributes(); + assertTrue(attrs.getDataPolicy().withPersistence()); + } } \ No newline at end of file diff --git a/src/test/resources/org/springframework/data/gemfire/config/local-ns.xml b/src/test/resources/org/springframework/data/gemfire/config/local-ns.xml index 28d94c40..5139565b 100644 --- a/src/test/resources/org/springframework/data/gemfire/config/local-ns.xml +++ b/src/test/resources/org/springframework/data/gemfire/config/local-ns.xml @@ -14,6 +14,8 @@ + +