I am trying the code example of multi-exec against a 3 master cluster, all running on localhost..
RedisClusterClient rcc = RedisClusterClient.create(uris);
cconn = rcc.connect();
RedisAdvancedClusterCommands ccommands = cconn.sync();
ccommands.multi();
ccommands.set("one", "1");
ccommands.set("two", "2");
ccommands.mget("one", "two");
ccommands.lpush("list", "11");
ccommands.llen("list");
ccommands.exec();
java.lang.NullPointerException
at com.lambdaworks.redis.cluster.ClusterDistributionChannelWriter.write(ClusterDistributionChannelWriter.java:99)
at com.lambdaworks.redis.RedisChannelHandler.dispatch(RedisChannelHandler.java:106)
at com.lambdaworks.redis.cluster.StatefulRedisClusterConnectionImpl.dispatch(StatefulRedisClusterConnectionImpl.java:189)
at com.lambdaworks.redis.AbstractRedisAsyncCommands.dispatch(AbstractRedisAsyncCommands.java:1726)
at com.lambdaworks.redis.AbstractRedisAsyncCommands.dispatch(AbstractRedisAsyncCommands.java:1721)
at com.lambdaworks.redis.AbstractRedisAsyncCommands.dispatch(AbstractRedisAsyncCommands.java:1717)
at com.lambdaworks.redis.AbstractRedisAsyncCommands.exec(AbstractRedisAsyncCommands.java:351)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.lambdaworks.redis.cluster.StatefulRedisClusterConnectionImpl$ClusterFutureSyncInvocationHandler.handleInvocation(StatefulRedisClusterConnectionImpl.java:334)
at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87)
at com.sun.proxy.$Proxy4.exec(Unknown Source)
What could be wrong? I can see that the keys are being created in the redis db across the 3 different cluster instances.