Details
-
Bug
-
Resolution: Done
-
Critical
-
5.1.0.CR3
-
None
Description
In some specific cases, if we want to define a configuration in which we disabled the L1 cache and the property onRehash, we can still face the following exception:
org.infinispan.config.ConfigurationException: Can only move entries to L1 on rehash when L1 is enabled at org.infinispan.config.ConfigurationValidatingVisitor.visitL1Type(ConfigurationValidatingVisitor.java:99) at org.infinispan.config.DelegatingConfigurationVisitor.visitL1Type(DelegatingConfigurationVisitor.java:183) at org.infinispan.config.Configuration$L1Type.accept(Configuration.java:3698) at org.infinispan.config.Configuration$ClusteringType.accept(Configuration.java:2462) at org.infinispan.config.Configuration.accept(Configuration.java:1459) at org.infinispan.manager.DefaultCacheManager.wireCache(DefaultCacheManager.java:655) at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:618) at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:514)
See below a TestCase that represents one way to face this issue:
public void testConfig() { GlobalConfigurationBuilder gcb = GlobalConfigurationBuilder.defaultClusteredBuilder(); ConfigurationBuilder cb = new ConfigurationBuilder(); DefaultCacheManager manager = new DefaultCacheManager(gcb.build(), cb.build()); cb = new ConfigurationBuilder(); cb.clustering().cacheMode(CacheMode.DIST_SYNC).l1().disable().disableOnRehash(); manager.defineConfiguration("testConfigCache", cb.build()); manager.getCache("testConfigCache"); }