Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-8826

Starting a plain Hot Rod server requires fiddling with default cache

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 10.0.0.Beta4
    • 9.1.6.Final, 9.2.0.CR2
    • Server
    • None
    • Workaround Exists
    • Hide

      The following code can be used as workaround:

      final DefaultCacheManager cacheManager = new DefaultCacheManager();
      cacheManager.defineConfiguration("my-default-cache",
         new ConfigurationBuilder().build());
      
      final HotRodServerConfigurationBuilder serverCfg =
         new HotRodServerConfigurationBuilder();
      serverCfg.defaultCacheName("my-default-cache");
      
      final HotRodServer server = new HotRodServer();
      server.start(serverCfg.build(), cacheManager);
      
      Show
      The following code can be used as workaround: final DefaultCacheManager cacheManager = new DefaultCacheManager(); cacheManager.defineConfiguration( "my- default -cache" , new ConfigurationBuilder().build()); final HotRodServerConfigurationBuilder serverCfg = new HotRodServerConfigurationBuilder(); serverCfg.defaultCacheName( "my- default -cache" ); final HotRodServer server = new HotRodServer(); server.start(serverCfg.build(), cacheManager);

    Description

      The following code does not work:

      final DefaultCacheManager cacheManager = new DefaultCacheManager();
      final HotRodServer server = new HotRodServer();
      server.start(new HotRodServerConfigurationBuilder().build(), cacheManager);
      

      It throws:

      org.infinispan.commons.CacheConfigurationException: ISPN000433: 
      A default cache has been requested, but no cache has been set as default for this container
      	at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:449)
      	at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:440)
      	at org.infinispan.security.actions.GetCacheAction.run(GetCacheAction.java:26)
      	at org.infinispan.security.actions.GetCacheAction.run(GetCacheAction.java:14)
      	at org.infinispan.security.Security.doPrivileged(Security.java:76)
      	at org.infinispan.server.hotrod.SecurityActions.doPrivileged(SecurityActions.java:34)
      	at org.infinispan.server.hotrod.SecurityActions.getCache(SecurityActions.java:51)
      	at org.infinispan.server.hotrod.HotRodServer.getCacheInstance(HotRodServer.java:372)
      	at org.infinispan.server.hotrod.HotRodServer.startDefaultCache(HotRodServer.java:302)
      	at org.infinispan.server.core.AbstractProtocolServer.startInternal(AbstractProtocolServer.java:57)
      	at org.infinispan.server.hotrod.HotRodServer.startInternal(HotRodServer.java:229)
      	at org.infinispan.server.hotrod.HotRodServer.startInternal(HotRodServer.java:94)
      	at org.infinispan.server.core.AbstractProtocolServer.start(AbstractProtocolServer.java:78)
      	at org.infinispan.sandbox.SingleServer.main(SingleServer.java:17)
      

      The Hot Rod server should not have to care about the default cache. In the past, calling getCache on default cache used to be make sure the node starts up components such as JGroups...etc.

      This shouldn't be necessary, but needs double check with dberinde@redhat.com and also pferraro for repercussions of changes at this level.

      Attachments

        Issue Links

          Activity

            People

              ttarrant@redhat.com Tristan Tarrant
              rh-ee-galder Galder ZamarreƱo
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: