org.apache.commons.pool2.impl.AbandonedConfig cannot be resolved. It is
indirectly referenced from required .class files), we update
common-pool2 (2.0 -> 2.2)
* followings are now throwing JedisDataException: it was uncontrolled or controlled by Redis itself
** exec without multi
** discard without multi
** multi within multi
* updates unit test
actually Redis returns ERR and we can pick, but Pipeline + multi has some complex sequence
so it can just throw NPE without ERR
This reverts commit ac53759f97.
Sorry for double reverting, I should revert "merged commit", not origin commit
Conflicts:
src/main/java/redis/clients/jedis/BinaryClient.java
src/main/java/redis/clients/jedis/Jedis.java
src/test/java/redis/clients/jedis/tests/commands/HyperLogLogCommandsTest.java
* method signatures are a bit similar to Jedis's *SCAN
** but it takes parameters to byte[] instead of String
* ScanParams : allow match pattern with byte[]
* ScanResult : add method to get cursor with byte[] type
* *SCAN for BinaryJedis unit tests included
JedisClusterCommand
* improvements on connection error handling
** if based on slot connection throws connection related exception, retry to random node
** if we retry with random node, but all nodes are unreachable, throw JedisConnectionException without retry
** try to release connection whether connection is broken or not
* bug fix : if asking flag is on, and success this time, set asking flag to off
JedisClusterConnectionHandler
* have flexibility on initializing slots cache
** allow some nodes connection failure - skip
** if current node is success initializing slots cache, skip other nodes
** if current node failed to initialize slots cache, discard all discovered nodes and slots
* set nodes if node does not exist in nodes
** it restricts JedisPool to replace - prevent IllegalStateException : Returned object not currently part of this pool
JedisSlotBasedConnectionGuaranteedConnectionHandler
* getConnection (random connection)
** check all connections by random sequence
** always return valid connection (able to ping-pong)
** throw exception if all connections are invalid
* some refactoring
* Implement Closeable from Jedis, ShardedJedis with Pooled
** resources from JedisPool, JedisSentinelPool, ShardedJedis, ShardedJedisPool
* Connection class : check whether Jedis Connection is broken
** when it's time to throw JedisConnectionException, mark Connection to broken