Github user tillrohrmann commented on a diff in the pull request:

    https://github.com/apache/flink/pull/2245#discussion_r71512375
  
    --- Diff: 
flink-streaming-connectors/flink-connector-redis/src/test/java/org/apache/flink/streaming/connectors/redis/RedisSinkTest.java
 ---
    @@ -41,6 +50,73 @@ public void 
shouldThrowNullPointerExceptionIfConfigurationIsNull(){
                new RedisSink<>(null, new TestMapper(new 
RedisCommandDescription(RedisCommand.LPUSH)));
        }
     
    +   @Test
    +   public void testRedisDownBehavior() throws Exception {
    +
    +           // create a wrong configuration so that open() fails.
    +
    +           FlinkJedisPoolConfig wrongJedisPoolConfig = new 
FlinkJedisPoolConfig.Builder()
    +                   .setHost("127.0.0.1")
    +                   .setPort(1234).build();
    +
    +           testDownBehavior(wrongJedisPoolConfig);
    +   }
    +
    +   @Test
    +   public void testRedisClusterDownBehavior() throws Exception {
    +
    +           Set<InetSocketAddress> hosts = new HashSet<>();
    +           hosts.add(new InetSocketAddress("127.0.0.1", 1234));
    +
    +           // create a wrong configuration so that open() fails.
    +
    +           FlinkJedisClusterConfig wrongJedisClusterConfig = new 
FlinkJedisClusterConfig.Builder()
    +                   .setNodes(hosts)
    +                   .setTimeout(100)
    +                   .setMaxIdle(1)
    +                   .setMaxTotal(1)
    +                   .setMinIdle(1).build();
    +
    +           testDownBehavior(wrongJedisClusterConfig);
    +   }
    +
    +   @Test
    +   public void testRedisSentinelDownBehavior() throws Exception {
    +
    +           Set<String> hosts = new HashSet<>();
    +           hosts.add("localhost:55095");
    +
    +           // create a wrong configuration so that open() fails.
    +
    +           FlinkJedisSentinelConfig wrongJedisSentinelConfig = new 
FlinkJedisSentinelConfig.Builder()
    +                   .setMasterName("master")
    +                   .setSentinels(hosts)
    +                   .build();
    +
    +           testDownBehavior(wrongJedisSentinelConfig);
    +   }
    +
    +   private void testDownBehavior(FlinkJedisConfigBase config) throws 
Exception {
    +           RedisSink<Tuple2<String, String>> redisSink = new 
RedisSink<>(config,
    +                   new 
RedisSinkITCase.RedisCommandMapper(RedisCommand.SADD));
    +
    +           try {
    +                   redisSink.open(new Configuration());
    +           } catch (Throwable e) {
    +
    +                   // search for nested ConnectionExceptions
    +                   // because this is the expected behavior
    +
    +                   int depth = 0;
    +                   while (!(e instanceof JedisConnectionException)) {
    --- End diff --
    
    This condition will always be true/false if you don't reset `e = cause` in 
the while loop body.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to