<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have searched the <a href="https://github.com/apache/incubator-dubbo/issues">issues</a> of this repository and believe that this is not a duplicate.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have checked the <a href="https://github.com/apache/incubator-dubbo/blob/master/FAQ.md">FAQ</a> of this repository and believe that this is not a duplicate.</li>
</ul>
<h3 dir="auto">Environment</h3>
<ul dir="auto">
<li>Dubbo version: 2.7.0</li>
<li>Operating System version: MacOS</li>
<li>Java version: 1.8</li>
</ul>
<h3 dir="auto">Steps to reproduce this issue</h3>
<p dir="auto">When tag router is deleted by Dubbo Admin</p>
<p dir="auto">Pls. provide [GitHub address] to reproduce this issue.</p>
<h3 dir="auto">Expected Result</h3>
<p dir="auto">What do you expected from the above steps？</p>
<h3 dir="auto">Actual Result</h3>
<p dir="auto">What actually happens?</p>
<p dir="auto">If there is an exception, please attach the exception trace:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="java.lang.NullPointerException: null
	at java.lang.String.&lt;init&gt;(String.java:515) ~[na:1.8.0_161]
	at org.apache.dubbo.configcenter.support.zookeeper.CacheListener.childEvent(CacheListener.java:86) ~[dubbo-2.7.0.jar:2.7.0]
	at org.apache.curator.framework.recipes.cache.TreeCache$2.apply(TreeCache.java:685) [curator-recipes-2.8.0.jar:na]
	at org.apache.curator.framework.recipes.cache.TreeCache$2.apply(TreeCache.java:679) [curator-recipes-2.8.0.jar:na]
	at org.apache.curator.framework.listen.ListenerContainer$1.run(ListenerContainer.java:92) [curator-framework-2.8.0.jar:na]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_161]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_161]
	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_161]"><pre class="notranslate"><code class="notranslate">java.lang.NullPointerException: null
	at java.lang.String.&lt;init&gt;(String.java:515) ~[na:1.8.0_161]
	at org.apache.dubbo.configcenter.support.zookeeper.CacheListener.childEvent(CacheListener.java:86) ~[dubbo-2.7.0.jar:2.7.0]
	at org.apache.curator.framework.recipes.cache.TreeCache$2.apply(TreeCache.java:685) [curator-recipes-2.8.0.jar:na]
	at org.apache.curator.framework.recipes.cache.TreeCache$2.apply(TreeCache.java:679) [curator-recipes-2.8.0.jar:na]
	at org.apache.curator.framework.listen.ListenerContainer$1.run(ListenerContainer.java:92) [curator-framework-2.8.0.jar:na]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_161]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_161]
	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_161]
</code></pre></div>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have searched the <a href="https://github.com/apache/dubbo/issues">issues</a> of this repository and believe that this is not a duplicate.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have checked the <a href="https://github.com/apache/dubbo/blob/master/FAQ.md">FAQ</a> of this repository and believe that this is not a duplicate.</li>
</ul>
<h3 dir="auto">Environment</h3>
<ul dir="auto">
<li>Dubbo version: 2.7.1</li>
<li>Operating System version: centos, windows</li>
<li>Java version:<br>
centos : openjdk version "1.8.0_212"<br>
windows: oracle jdk  java version "1.8.0_201"</li>
</ul>
<h3 dir="auto">Steps to reproduce this issue</h3>
<p dir="auto">just run no set generic</p>
<ol dir="auto">
<li>register generic service like:</li>
</ol>
<div class="highlight highlight-source-java notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="        ServiceConfig&lt;GenericService&gt; service = new ServiceConfig&lt;GenericService&gt;();
        service.setInterface(registerServiceConfInterface.getInterfaceName());
        service.setVersion(registerServiceConfInterface.getVersion());
        service.setGroup(&quot;test&quot;);
        service.setGeneric(&quot;true&quot;);
        service.setRef();//just implement GenericService is ok return null
       service.export();"><pre class="notranslate">        <span class="pl-smi">ServiceConfig</span>&lt;<span class="pl-smi">GenericService</span>&gt; <span class="pl-s1">service</span> = <span class="pl-k">new</span> <span class="pl-smi">ServiceConfig</span>&lt;<span class="pl-smi">GenericService</span>&gt;();
        <span class="pl-s1">service</span>.<span class="pl-en">setInterface</span>(<span class="pl-s1">registerServiceConfInterface</span>.<span class="pl-en">getInterfaceName</span>());
        <span class="pl-s1">service</span>.<span class="pl-en">setVersion</span>(<span class="pl-s1">registerServiceConfInterface</span>.<span class="pl-en">getVersion</span>());
        <span class="pl-s1">service</span>.<span class="pl-en">setGroup</span>(<span class="pl-s">"test"</span>);
        <span class="pl-s1">service</span>.<span class="pl-en">setGeneric</span>(<span class="pl-s">"true"</span>);
        <span class="pl-s1">service</span>.<span class="pl-en">setRef</span>();<span class="pl-c">//just implement GenericService is ok return null</span>
       <span class="pl-s1">service</span>.<span class="pl-en">export</span>();</pre></div>
<ol start="2" dir="auto">
<li>use <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/reference/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/reference">@reference</a> define like follow</li>
</ol>
<div class="highlight highlight-source-java notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="  @Reference(version = &quot;1.0.0&quot;, timeout = 5000, group = &quot;test&quot;, check = false)
  private DubboVersionFacade dubboVersionFacade;"><pre class="notranslate">  <span class="pl-c1">@</span><span class="pl-c1">Reference</span>(<span class="pl-s1">version</span> = <span class="pl-s">"1.0.0"</span>, <span class="pl-s1">timeout</span> = <span class="pl-c1">5000</span>, <span class="pl-s1">group</span> = <span class="pl-s">"test"</span>, <span class="pl-s1">check</span> = <span class="pl-c1">false</span>)
  <span class="pl-k">private</span> <span class="pl-smi">DubboVersionFacade</span> <span class="pl-s1">dubboVersionFacade</span>;</pre></div>
<ol start="3" dir="auto">
<li>result:<br>
(1) start on windows the generic is null<br>
(2) start on centos generic is false<br>
reason:<br>
AbstractReferenceConfig have two function to set generic<br>
(1) isgeneric<br>
(2) setgeneric<br>
get methods sequence isgeneric first it will be null<br>
get methods sequence setgeneric first it will be false</li>
</ol>
<p dir="auto">can i add the Parameter parameter to exclude the isgeneric ?</p>