<ul dir="auto">
<li>[] 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>[] 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.5.10</li>
<li>Operating System version: 3.10.0-514.26.2.el7.x86_64 GNU/Linux</li>
<li>Java version: 1.8</li>
</ul>
<h3 dir="auto">Steps to reproduce this issue</h3>
<ol dir="auto">
<li>benchmark</li>
</ol>
<h3 dir="auto">Description</h3>
<p dir="auto">在对 Dubbo 应用进行压测时，通过 top -Hp {pid} 和 jstack {pid} 进行查看后，发现 Dubbo 客户端有 4 个线程的 CPU 占用比较高，并且线程均在执行 <code class="notranslate">sun.reflect.generics.parser.SignatureParser.current(SignatureParser.java:95)</code></p>
<h3 dir="auto">Suggestion</h3>
<p dir="auto">把 <code class="notranslate">RpcUtils.getReturnTypes(Invocation)</code> 执行结果的 <code class="notranslate">Method</code> 对象缓存下来，避免每次都调用反射 Api：<br>
例如，用 <code class="notranslate">Map&lt;service, Map&lt;methodName, A&gt;&gt;</code> 来缓存，其中  <code class="notranslate">A</code> 中包含 <code class="notranslate">parameterTypes</code> 和 <code class="notranslate">Method</code> 的对应关系</p>
<p dir="auto">具体线程堆栈如下：</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&quot;New I/O client worker #1-5&quot; #63 daemon prio=5 os_prio=0 tid=0x00007fc730003000 nid=0x49db runnable [0x00007fc790c13000]
   java.lang.Thread.State: RUNNABLE
        at sun.reflect.generics.parser.SignatureParser.current(SignatureParser.java:95)
        at sun.reflect.generics.parser.SignatureParser.parseZeroOrMoreThrowsSignatures(SignatureParser.java:633)
        at sun.reflect.generics.parser.SignatureParser.parseMethodTypeSignature(SignatureParser.java:578)
        at sun.reflect.generics.parser.SignatureParser.parseMethodSig(SignatureParser.java:171)
        at sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepository.java:55)
        at sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepository.java:43)
        at sun.reflect.generics.repository.AbstractRepository.&lt;init&gt;(AbstractRepository.java:74)
        at sun.reflect.generics.repository.GenericDeclRepository.&lt;init&gt;(GenericDeclRepository.java:49)
        at sun.reflect.generics.repository.ConstructorRepository.&lt;init&gt;(ConstructorRepository.java:51)
        at sun.reflect.generics.repository.MethodRepository.&lt;init&gt;(MethodRepository.java:46)
        at sun.reflect.generics.repository.MethodRepository.make(MethodRepository.java:59)
        at java.lang.reflect.Method.getGenericInfo(Method.java:102)
        at java.lang.reflect.Method.getGenericReturnType(Method.java:255)
        at com.alibaba.dubbo.rpc.support.RpcUtils.getReturnTypes(RpcUtils.java:72)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:79)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:106)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCodec.decodeBody(DubboCodec.java:88)
        at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:120)
        at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:81)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCountCodec.decode(DubboCountCodec.java:44)
        at com.alibaba.dubbo.remoting.transport.netty.NettyCodecAdapter$InternalDecoder.messageReceived(NettyCodecAdapter.java:133)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)
        at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:349)
        at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:280)
        at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:200)
        at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
        at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:44)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

&quot;New I/O client worker #1-4&quot; #62 daemon prio=5 os_prio=0 tid=0x00007fc730001000 nid=0x49da runnable [0x00007fc790c94000]
   java.lang.Thread.State: RUNNABLE
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114)
        at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125)
        at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
        at sun.reflect.generics.repository.MethodRepository.getReturnType(MethodRepository.java:68)
        at java.lang.reflect.Method.getGenericReturnType(Method.java:255)
        at com.alibaba.dubbo.rpc.support.RpcUtils.getReturnTypes(RpcUtils.java:72)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:79)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:106)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCodec.decodeBody(DubboCodec.java:88)
        at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:120)
        at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:81)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCountCodec.decode(DubboCountCodec.java:44)
        at com.alibaba.dubbo.remoting.transport.netty.NettyCodecAdapter$InternalDecoder.messageReceived(NettyCodecAdapter.java:133)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)
        at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:349)
        at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:280)
        at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:200)
        at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
        at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:44)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

&quot;New I/O client worker #1-3&quot; #61 daemon prio=5 os_prio=0 tid=0x00007fc73005b800 nid=0x49d9 runnable [0x00007fc790d15000]
   java.lang.Thread.State: RUNNABLE
        at sun.reflect.generics.parser.SignatureParser.current(SignatureParser.java:95)
        at sun.reflect.generics.parser.SignatureParser.parseZeroOrMoreThrowsSignatures(SignatureParser.java:633)
        at sun.reflect.generics.parser.SignatureParser.parseMethodTypeSignature(SignatureParser.java:578)
        at sun.reflect.generics.parser.SignatureParser.parseMethodSig(SignatureParser.java:171)
        at sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepository.java:55)
        at sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepository.java:43)
        at sun.reflect.generics.repository.AbstractRepository.&lt;init&gt;(AbstractRepository.java:74)
        at sun.reflect.generics.repository.GenericDeclRepository.&lt;init&gt;(GenericDeclRepository.java:49)
        at sun.reflect.generics.repository.ConstructorRepository.&lt;init&gt;(ConstructorRepository.java:51)
        at sun.reflect.generics.repository.MethodRepository.&lt;init&gt;(MethodRepository.java:46)
        at sun.reflect.generics.repository.MethodRepository.make(MethodRepository.java:59)
        at java.lang.reflect.Method.getGenericInfo(Method.java:102)
        at java.lang.reflect.Method.getGenericReturnType(Method.java:255)
        at com.alibaba.dubbo.rpc.support.RpcUtils.getReturnTypes(RpcUtils.java:72)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:79)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:106)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCodec.decodeBody(DubboCodec.java:88)
        at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:120)
        at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:81)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCountCodec.decode(DubboCountCodec.java:44)
        at com.alibaba.dubbo.remoting.transport.netty.NettyCodecAdapter$InternalDecoder.messageReceived(NettyCodecAdapter.java:133)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)
        at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:349)
        at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:280)
        at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:200)
        at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
        at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:44)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

&quot;New I/O client worker #1-2&quot; #59 daemon prio=5 os_prio=0 tid=0x00007fc730041000 nid=0x49d7 runnable [0x00007fc790e17000]
   java.lang.Thread.State: RUNNABLE
        at sun.reflect.generics.parser.SignatureParser.current(SignatureParser.java:95)
        at sun.reflect.generics.parser.SignatureParser.parseZeroOrMoreThrowsSignatures(SignatureParser.java:633)
        at sun.reflect.generics.parser.SignatureParser.parseMethodTypeSignature(SignatureParser.java:578)
        at sun.reflect.generics.parser.SignatureParser.parseMethodSig(SignatureParser.java:171)
        at sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepository.java:55)
        at sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepository.java:43)
        at sun.reflect.generics.repository.AbstractRepository.&lt;init&gt;(AbstractRepository.java:74)
        at sun.reflect.generics.repository.GenericDeclRepository.&lt;init&gt;(GenericDeclRepository.java:49)
        at sun.reflect.generics.repository.ConstructorRepository.&lt;init&gt;(ConstructorRepository.java:51)
        at sun.reflect.generics.repository.MethodRepository.&lt;init&gt;(MethodRepository.java:46)
        at sun.reflect.generics.repository.MethodRepository.make(MethodRepository.java:59)
        at java.lang.reflect.Method.getGenericInfo(Method.java:102)
        at java.lang.reflect.Method.getGenericReturnType(Method.java:255)
        at com.alibaba.dubbo.rpc.support.RpcUtils.getReturnTypes(RpcUtils.java:72)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:79)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:106)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCodec.decodeBody(DubboCodec.java:88)
        at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:120)
        at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:81)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCountCodec.decode(DubboCountCodec.java:44)
        at com.alibaba.dubbo.remoting.transport.netty.NettyCodecAdapter$InternalDecoder.messageReceived(NettyCodecAdapter.java:133)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)
        at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:349)
        at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:280)
        at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:200)
        at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
        at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:44)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)"><pre class="notranslate"><code class="notranslate">"New I/O client worker #1-5" #63 daemon prio=5 os_prio=0 tid=0x00007fc730003000 nid=0x49db runnable [0x00007fc790c13000]
   java.lang.Thread.State: RUNNABLE
        at sun.reflect.generics.parser.SignatureParser.current(SignatureParser.java:95)
        at sun.reflect.generics.parser.SignatureParser.parseZeroOrMoreThrowsSignatures(SignatureParser.java:633)
        at sun.reflect.generics.parser.SignatureParser.parseMethodTypeSignature(SignatureParser.java:578)
        at sun.reflect.generics.parser.SignatureParser.parseMethodSig(SignatureParser.java:171)
        at sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepository.java:55)
        at sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepository.java:43)
        at sun.reflect.generics.repository.AbstractRepository.&lt;init&gt;(AbstractRepository.java:74)
        at sun.reflect.generics.repository.GenericDeclRepository.&lt;init&gt;(GenericDeclRepository.java:49)
        at sun.reflect.generics.repository.ConstructorRepository.&lt;init&gt;(ConstructorRepository.java:51)
        at sun.reflect.generics.repository.MethodRepository.&lt;init&gt;(MethodRepository.java:46)
        at sun.reflect.generics.repository.MethodRepository.make(MethodRepository.java:59)
        at java.lang.reflect.Method.getGenericInfo(Method.java:102)
        at java.lang.reflect.Method.getGenericReturnType(Method.java:255)
        at com.alibaba.dubbo.rpc.support.RpcUtils.getReturnTypes(RpcUtils.java:72)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:79)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:106)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCodec.decodeBody(DubboCodec.java:88)
        at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:120)
        at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:81)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCountCodec.decode(DubboCountCodec.java:44)
        at com.alibaba.dubbo.remoting.transport.netty.NettyCodecAdapter$InternalDecoder.messageReceived(NettyCodecAdapter.java:133)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)
        at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:349)
        at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:280)
        at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:200)
        at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
        at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:44)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

"New I/O client worker #1-4" #62 daemon prio=5 os_prio=0 tid=0x00007fc730001000 nid=0x49da runnable [0x00007fc790c94000]
   java.lang.Thread.State: RUNNABLE
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114)
        at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125)
        at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
        at sun.reflect.generics.repository.MethodRepository.getReturnType(MethodRepository.java:68)
        at java.lang.reflect.Method.getGenericReturnType(Method.java:255)
        at com.alibaba.dubbo.rpc.support.RpcUtils.getReturnTypes(RpcUtils.java:72)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:79)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:106)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCodec.decodeBody(DubboCodec.java:88)
        at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:120)
        at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:81)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCountCodec.decode(DubboCountCodec.java:44)
        at com.alibaba.dubbo.remoting.transport.netty.NettyCodecAdapter$InternalDecoder.messageReceived(NettyCodecAdapter.java:133)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)
        at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:349)
        at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:280)
        at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:200)
        at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
        at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:44)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

"New I/O client worker #1-3" #61 daemon prio=5 os_prio=0 tid=0x00007fc73005b800 nid=0x49d9 runnable [0x00007fc790d15000]
   java.lang.Thread.State: RUNNABLE
        at sun.reflect.generics.parser.SignatureParser.current(SignatureParser.java:95)
        at sun.reflect.generics.parser.SignatureParser.parseZeroOrMoreThrowsSignatures(SignatureParser.java:633)
        at sun.reflect.generics.parser.SignatureParser.parseMethodTypeSignature(SignatureParser.java:578)
        at sun.reflect.generics.parser.SignatureParser.parseMethodSig(SignatureParser.java:171)
        at sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepository.java:55)
        at sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepository.java:43)
        at sun.reflect.generics.repository.AbstractRepository.&lt;init&gt;(AbstractRepository.java:74)
        at sun.reflect.generics.repository.GenericDeclRepository.&lt;init&gt;(GenericDeclRepository.java:49)
        at sun.reflect.generics.repository.ConstructorRepository.&lt;init&gt;(ConstructorRepository.java:51)
        at sun.reflect.generics.repository.MethodRepository.&lt;init&gt;(MethodRepository.java:46)
        at sun.reflect.generics.repository.MethodRepository.make(MethodRepository.java:59)
        at java.lang.reflect.Method.getGenericInfo(Method.java:102)
        at java.lang.reflect.Method.getGenericReturnType(Method.java:255)
        at com.alibaba.dubbo.rpc.support.RpcUtils.getReturnTypes(RpcUtils.java:72)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:79)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:106)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCodec.decodeBody(DubboCodec.java:88)
        at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:120)
        at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:81)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCountCodec.decode(DubboCountCodec.java:44)
        at com.alibaba.dubbo.remoting.transport.netty.NettyCodecAdapter$InternalDecoder.messageReceived(NettyCodecAdapter.java:133)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)
        at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:349)
        at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:280)
        at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:200)
        at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
        at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:44)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

"New I/O client worker #1-2" #59 daemon prio=5 os_prio=0 tid=0x00007fc730041000 nid=0x49d7 runnable [0x00007fc790e17000]
   java.lang.Thread.State: RUNNABLE
        at sun.reflect.generics.parser.SignatureParser.current(SignatureParser.java:95)
        at sun.reflect.generics.parser.SignatureParser.parseZeroOrMoreThrowsSignatures(SignatureParser.java:633)
        at sun.reflect.generics.parser.SignatureParser.parseMethodTypeSignature(SignatureParser.java:578)
        at sun.reflect.generics.parser.SignatureParser.parseMethodSig(SignatureParser.java:171)
        at sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepository.java:55)
        at sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepository.java:43)
        at sun.reflect.generics.repository.AbstractRepository.&lt;init&gt;(AbstractRepository.java:74)
        at sun.reflect.generics.repository.GenericDeclRepository.&lt;init&gt;(GenericDeclRepository.java:49)
        at sun.reflect.generics.repository.ConstructorRepository.&lt;init&gt;(ConstructorRepository.java:51)
        at sun.reflect.generics.repository.MethodRepository.&lt;init&gt;(MethodRepository.java:46)
        at sun.reflect.generics.repository.MethodRepository.make(MethodRepository.java:59)
        at java.lang.reflect.Method.getGenericInfo(Method.java:102)
        at java.lang.reflect.Method.getGenericReturnType(Method.java:255)
        at com.alibaba.dubbo.rpc.support.RpcUtils.getReturnTypes(RpcUtils.java:72)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:79)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:106)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCodec.decodeBody(DubboCodec.java:88)
        at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:120)
        at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:81)
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCountCodec.decode(DubboCountCodec.java:44)
        at com.alibaba.dubbo.remoting.transport.netty.NettyCodecAdapter$InternalDecoder.messageReceived(NettyCodecAdapter.java:133)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)
        at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:349)
        at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:280)
        at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:200)
        at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
        at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:44)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
</code></pre></div>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> 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: xxx</li>
<li>Operating System version: xxx</li>
<li>Java version: xxx</li>
</ul>
<h3 dir="auto">Steps to reproduce this issue</h3>
<ol dir="auto">
<li>xxx</li>
<li>xxx</li>
<li>xxx</li>
</ol>
<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="Just put your stack trace here!"><pre class="notranslate"><code class="notranslate">Just put your stack trace here!
</code></pre></div>