diff --git a/registry/etcdv3/listener.go b/registry/etcdv3/listener.go index da6a46b15cf76231a3921c13d4f0bb8d94c13538..2f2172d5fc1b63f5e7d7110ea3a43143dadfd39e 100644 --- a/registry/etcdv3/listener.go +++ b/registry/etcdv3/listener.go @@ -49,7 +49,12 @@ func (l *dataListener) AddInterestedURL(url *common.URL) { func (l *dataListener) DataChange(eventType remoting.Event) bool { - url := eventType.Path[strings.Index(eventType.Path, "/providers/")+len("/providers/"):] + index := strings.Index(eventType.Path, "/providers/") + if index == -1 { + logger.Warnf("Listen with no url, event.path={%v}", eventType.Path) + return false + } + url := eventType.Path[index+len("/providers/"):] serviceURL, err := common.NewURL(url) if err != nil { logger.Warnf("Listen NewURL(r{%s}) = error{%v}", eventType.Path, err) diff --git a/registry/kubernetes/listener.go b/registry/kubernetes/listener.go index b1593e6fc83b01acee2b5f6fe71d1781f78986b5..6527eebbb08086c695bd6571d9767652083aeaf7 100644 --- a/registry/kubernetes/listener.go +++ b/registry/kubernetes/listener.go @@ -53,7 +53,12 @@ func (l *dataListener) AddInterestedURL(url *common.URL) { // notify listen, when interest event func (l *dataListener) DataChange(eventType remoting.Event) bool { - url := eventType.Path[strings.Index(eventType.Path, "/providers/")+len("/providers/"):] + index := strings.Index(eventType.Path, "/providers/") + if index == -1 { + logger.Warnf("Listen with no url, event.path={%v}", eventType.Path) + return false + } + url := eventType.Path[index+len("/providers/"):] serviceURL, err := common.NewURL(url) if err != nil { logger.Warnf("Listen NewURL(r{%s}) = error{%v}", eventType.Path, err)