archaius
archaius copied to clipboard
EtcdConfigurationSource throws NullPointerException when creating with configPath that contains directories
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