archaius icon indicating copy to clipboard operation
archaius copied to clipboard

EtcdConfigurationSource throws NullPointerException when creating with configPath that contains directories

Open MichalSzewczyk opened this issue 7 years ago • 0 comments

Provided that there is following etcd configuration

etcdctl ls --recursive
/global
/global/key1
/global/dir1
etcdctl get /global/key1
value
etcdctl get /global/dir1
/global/dir1: is a directory

and running code below:

import com.netflix.config.source.EtcdConfigurationSource;
import org.boon.etcd.ClientBuilder;
import org.boon.etcd.Etcd;

import java.net.URI;

public class Main {
   public static void main(String[] args) {
       Etcd client = ClientBuilder.builder().hosts(URI.create("http://localhost:2379")).createClient();
       new EtcdConfigurationSource(client, "/global");
   }
}

results in :

Exception in thread "main" java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1011)
at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1006)
at com.netflix.config.source.EtcdConfigurationSource.cacheValues(EtcdConfigurationSource.java:75)
at com.netflix.config.source.EtcdConfigurationSource.init(EtcdConfigurationSource.java:66)
at com.netflix.config.source.EtcdConfigurationSource.<init>(EtcdConfigurationSource.java:61)
at Main.main(Main.java:11)

deleting etcd directory with command: etcdctl rmdir /global/dir1 fixes the issue

MichalSzewczyk avatar Jun 27 '17 07:06 MichalSzewczyk