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

Starting a plain Hot Rod server requires fiddling with default cache

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 9.1.6.Final, 9.2.0.CR2
    • Fix Version/s: 10.0.0.Beta4
    • Component/s: Server
    • Labels:
      None
    • Workaround:
      Workaround Exists
    • Workaround Description:
      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 Dan Berindei and also Paul Ferraro for repercussions of changes at this level.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  NadirX Tristan Tarrant
                  Reporter:
                  galder.zamarreno Galder ZamarreƱo
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  1 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: