test_class.declarator: proxy = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension()
test_class.modifier: public static
test_class.original_string: public static ProxyFactory proxy = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
test_class.type: ProxyFactory
test_class.var_name: proxy
test_class.declarator: protocol = DubboProtocol.getDubboProtocol()
test_class.modifier: private static
test_class.original_string: private static DubboProtocol protocol = DubboProtocol.getDubboProtocol();
test_class.type: DubboProtocol
test_class.var_name: protocol
test_class.declarator: demoExporter
test_class.original_string: Exporter<?> demoExporter;
test_class.type: Exporter<?>
test_class.var_name: demoExporter
test_class.declarator: helloExporter
test_class.original_string: Exporter<?> helloExporter;
test_class.type: Exporter<?>
test_class.var_name: helloExporter
test_class.declarator: demoServiceInvoker
test_class.original_string: Invoker<IDemoService> demoServiceInvoker;
test_class.type: Invoker<IDemoService>
test_class.var_name: demoServiceInvoker
test_class.declarator: helloServiceInvoker
test_class.original_string: Invoker<IHelloService> helloServiceInvoker;
test_class.type: Invoker<IHelloService>
test_class.var_name: helloServiceInvoker
test_class.declarator: demoService
test_class.original_string: IDemoService demoService;
test_class.type: IDemoService
test_class.var_name: demoService
test_class.declarator: helloService
test_class.original_string: IHelloService helloService;
test_class.type: IHelloService
test_class.var_name: helloService
test_class.declarator: demoClient
test_class.original_string: ExchangeClient demoClient;
test_class.type: ExchangeClient
test_class.var_name: demoClient
test_class.declarator: helloClient
test_class.original_string: ExchangeClient helloClient;
test_class.type: ExchangeClient
test_class.var_name: helloClient
test_class.declarator: errorMsg = "safe guard client , should not be called ,must have a bug"
test_class.original_string: String errorMsg = "safe guard client , should not be called ,must have a bug";
test_class.type: String
test_class.var_name: errorMsg
test_class.file: dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/ReferenceCountExchangeClientTest.java
test_class.identifier: ReferenceCountExchangeClientTest
test_case.body: @Test
      public void test_share_connect() {
          init(0);
          Assert.assertEquals(demoClient.getLocalAddress(), helloClient.getLocalAddress());
          Assert.assertEquals(demoClient, helloClient);
          destoy();
      }
test_case.class_method_signature: ReferenceCountExchangeClientTest.test_share_connect()
test_case.full_signature: @Test public void test_share_connect()
test_case.identifier: test_share_connect
test_case.invocations: init assertEquals getLocalAddress getLocalAddress assertEquals destoy
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void test_share_connect()
focal_class.declarator: url
focal_class.modifier: private final
focal_class.original_string: private final URL url;
focal_class.type: URL
focal_class.var_name: url
focal_class.declarator: refenceCount = new AtomicInteger(0)
focal_class.modifier: private final
focal_class.original_string: private final AtomicInteger refenceCount = new AtomicInteger(0);
focal_class.type: AtomicInteger
focal_class.var_name: refenceCount
focal_class.declarator: ghostClientMap
focal_class.modifier: private final
focal_class.original_string: private final ConcurrentMap<String, LazyConnectExchangeClient> ghostClientMap;
focal_class.type: ConcurrentMap<String, LazyConnectExchangeClient>
focal_class.var_name: ghostClientMap
focal_class.declarator: client
focal_class.modifier: private
focal_class.original_string: private ExchangeClient client;
focal_class.type: ExchangeClient
focal_class.var_name: client
focal_class.file: dubbo-rpc/dubbo-rpc-dubbo/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/ReferenceCountExchangeClient.java
focal_class.identifier: ReferenceCountExchangeClient
focal_class.interfaces: implements ExchangeClient
focal_class.class_method_signature: ReferenceCountExchangeClient.ReferenceCountExchangeClient(ExchangeClient client, ConcurrentMap<String, LazyConnectExchangeClient> ghostClientMap)
focal_class.full_signature: public  ReferenceCountExchangeClient(ExchangeClient client, ConcurrentMap<String, LazyConnectExchangeClient> ghostClientMap)
focal_class.identifier: ReferenceCountExchangeClient
focal_class.modifiers: public
focal_class.parameters: (ExchangeClient client, ConcurrentMap<String, LazyConnectExchangeClient> ghostClientMap)
focal_class.signature:  ReferenceCountExchangeClient(ExchangeClient client, ConcurrentMap<String, LazyConnectExchangeClient> ghostClientMap)
focal_class.class_method_signature: ReferenceCountExchangeClient.reset(URL url)
focal_class.full_signature: @Override public void reset(URL url)
focal_class.identifier: reset
focal_class.modifiers: @Override public
focal_class.parameters: (URL url)
focal_class.return: void
focal_class.signature: void reset(URL url)
focal_class.class_method_signature: ReferenceCountExchangeClient.request(Object request)
focal_class.full_signature: @Override public ResponseFuture request(Object request)
focal_class.identifier: request
focal_class.modifiers: @Override public
focal_class.parameters: (Object request)
focal_class.return: ResponseFuture
focal_class.signature: ResponseFuture request(Object request)
focal_class.class_method_signature: ReferenceCountExchangeClient.getUrl()
focal_class.full_signature: @Override public URL getUrl()
focal_class.identifier: getUrl
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: URL
focal_class.signature: URL getUrl()
focal_class.class_method_signature: ReferenceCountExchangeClient.getRemoteAddress()
focal_class.full_signature: @Override public InetSocketAddress getRemoteAddress()
focal_class.identifier: getRemoteAddress
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: InetSocketAddress
focal_class.signature: InetSocketAddress getRemoteAddress()
focal_class.class_method_signature: ReferenceCountExchangeClient.getChannelHandler()
focal_class.full_signature: @Override public ChannelHandler getChannelHandler()
focal_class.identifier: getChannelHandler
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: ChannelHandler
focal_class.signature: ChannelHandler getChannelHandler()
focal_class.class_method_signature: ReferenceCountExchangeClient.request(Object request, int timeout)
focal_class.full_signature: @Override public ResponseFuture request(Object request, int timeout)
focal_class.identifier: request
focal_class.modifiers: @Override public
focal_class.parameters: (Object request, int timeout)
focal_class.return: ResponseFuture
focal_class.signature: ResponseFuture request(Object request, int timeout)
focal_class.class_method_signature: ReferenceCountExchangeClient.isConnected()
focal_class.full_signature: @Override public boolean isConnected()
focal_class.identifier: isConnected
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isConnected()
focal_class.class_method_signature: ReferenceCountExchangeClient.reconnect()
focal_class.full_signature: @Override public void reconnect()
focal_class.identifier: reconnect
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void reconnect()
focal_class.class_method_signature: ReferenceCountExchangeClient.getLocalAddress()
focal_class.full_signature: @Override public InetSocketAddress getLocalAddress()
focal_class.identifier: getLocalAddress
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: InetSocketAddress
focal_class.signature: InetSocketAddress getLocalAddress()
focal_class.class_method_signature: ReferenceCountExchangeClient.hasAttribute(String key)
focal_class.full_signature: @Override public boolean hasAttribute(String key)
focal_class.identifier: hasAttribute
focal_class.modifiers: @Override public
focal_class.parameters: (String key)
focal_class.return: boolean
focal_class.signature: boolean hasAttribute(String key)
focal_class.class_method_signature: ReferenceCountExchangeClient.reset(Parameters parameters)
focal_class.full_signature: @Override public void reset(Parameters parameters)
focal_class.identifier: reset
focal_class.modifiers: @Override public
focal_class.parameters: (Parameters parameters)
focal_class.return: void
focal_class.signature: void reset(Parameters parameters)
focal_class.class_method_signature: ReferenceCountExchangeClient.send(Object message)
focal_class.full_signature: @Override public void send(Object message)
focal_class.identifier: send
focal_class.modifiers: @Override public
focal_class.parameters: (Object message)
focal_class.return: void
focal_class.signature: void send(Object message)
focal_class.class_method_signature: ReferenceCountExchangeClient.getExchangeHandler()
focal_class.full_signature: @Override public ExchangeHandler getExchangeHandler()
focal_class.identifier: getExchangeHandler
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: ExchangeHandler
focal_class.signature: ExchangeHandler getExchangeHandler()
focal_class.class_method_signature: ReferenceCountExchangeClient.getAttribute(String key)
focal_class.full_signature: @Override public Object getAttribute(String key)
focal_class.identifier: getAttribute
focal_class.modifiers: @Override public
focal_class.parameters: (String key)
focal_class.return: Object
focal_class.signature: Object getAttribute(String key)
focal_class.class_method_signature: ReferenceCountExchangeClient.send(Object message, boolean sent)
focal_class.full_signature: @Override public void send(Object message, boolean sent)
focal_class.identifier: send
focal_class.modifiers: @Override public
focal_class.parameters: (Object message, boolean sent)
focal_class.return: void
focal_class.signature: void send(Object message, boolean sent)
focal_class.class_method_signature: ReferenceCountExchangeClient.setAttribute(String key, Object value)
focal_class.full_signature: @Override public void setAttribute(String key, Object value)
focal_class.identifier: setAttribute
focal_class.modifiers: @Override public
focal_class.parameters: (String key, Object value)
focal_class.return: void
focal_class.signature: void setAttribute(String key, Object value)
focal_class.class_method_signature: ReferenceCountExchangeClient.removeAttribute(String key)
focal_class.full_signature: @Override public void removeAttribute(String key)
focal_class.identifier: removeAttribute
focal_class.modifiers: @Override public
focal_class.parameters: (String key)
focal_class.return: void
focal_class.signature: void removeAttribute(String key)
focal_class.class_method_signature: ReferenceCountExchangeClient.close()
focal_class.full_signature: @Override public void close()
focal_class.identifier: close
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void close()
focal_class.class_method_signature: ReferenceCountExchangeClient.close(int timeout)
focal_class.full_signature: @Override public void close(int timeout)
focal_class.identifier: close
focal_class.modifiers: @Override public
focal_class.parameters: (int timeout)
focal_class.return: void
focal_class.signature: void close(int timeout)
focal_class.class_method_signature: ReferenceCountExchangeClient.startClose()
focal_class.full_signature: @Override public void startClose()
focal_class.identifier: startClose
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void startClose()
focal_class.class_method_signature: ReferenceCountExchangeClient.replaceWithLazyClient()
focal_class.full_signature: private LazyConnectExchangeClient replaceWithLazyClient()
focal_class.identifier: replaceWithLazyClient
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: LazyConnectExchangeClient
focal_class.signature: LazyConnectExchangeClient replaceWithLazyClient()
focal_class.class_method_signature: ReferenceCountExchangeClient.isClosed()
focal_class.full_signature: @Override public boolean isClosed()
focal_class.identifier: isClosed
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isClosed()
focal_class.class_method_signature: ReferenceCountExchangeClient.incrementAndGetCount()
focal_class.full_signature: public void incrementAndGetCount()
focal_class.identifier: incrementAndGetCount
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void incrementAndGetCount()
focal_method.body: @Override
      public InetSocketAddress getLocalAddress() {
          return client.getLocalAddress();
      }
focal_method.class_method_signature: ReferenceCountExchangeClient.getLocalAddress()
focal_method.full_signature: @Override public InetSocketAddress getLocalAddress()
focal_method.identifier: getLocalAddress
focal_method.invocations: getLocalAddress
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: InetSocketAddress
focal_method.signature: InetSocketAddress getLocalAddress()