```
2018-09-19 03:25:53,034 WARN [org.apache.dubbo.remoting.exchange.support.DefaultFuture:received] -  [DUBBO] The timeout response finally returned at 2018-09-19 03:25:53.034, response Response [id=1039, version=null, status=20, event=false, error=null, result=RpcResult [result=Lower, exception=null]], channel: /172.17.0.6:49932 -> /172.17.0.6:9010, dubbo version: 2.7.0-SNAPSHOT, current host: 172.17.0.6
Tests run: 7, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 4.319 sec <<< FAILURE! - in org.apache.dubbo.rpc.protocol.dubbo.DubboProtocolTest
testDubboProtocolWithMina(org.apache.dubbo.rpc.protocol.dubbo.DubboProtocolTest)  Time elapsed: 1.315 sec  <<< ERROR!
org.apache.dubbo.rpc.RpcException: Invoke remote method timeout. method: enumlength, provider: dubbo://127.0.0.1:9010/org.apache.dubbo.rpc.protocol.dubbo.support.DemoService?client=mina, cause: Waiting server-side response timeout by scan timer. start time: 2018-09-19 03:25:51.798, end time: 2018-09-19 03:25:53.032, client elapsed: 0 ms, server elapsed: 1234 ms, timeout: 1000 ms, request: Request [id=1039, version=2.0.2, twoway=true, event=false, broken=false, data=RpcInvocation [methodName=enumlength, parameterTypes=[class [Lorg.apache.dubbo.rpc.protocol.dubbo.support.Type;], arguments=[[Lorg.apache.dubbo.rpc.protocol.dubbo.support.Type;@60e0cfe6], attachments={path=org.apache.dubbo.rpc.protocol.dubbo.support.DemoService, version=0.0.0}]], channel: /172.17.0.6:49932 -> /172.17.0.6:9010
	at org.apache.dubbo.rpc.protocol.dubbo.DubboProtocolTest.testDubboProtocolWithMina(DubboProtocolTest.java:95)
Caused by: org.apache.dubbo.remoting.TimeoutException: Waiting server-side response timeout by scan timer. start time: 2018-09-19 03:25:51.798, end time: 2018-09-19 03:25:53.032, client elapsed: 0 ms, server elapsed: 1234 ms, timeout: 1000 ms, request: Request [id=1039, version=2.0.2, twoway=true, event=false, broken=false, data=RpcInvocation [methodName=enumlength, parameterTypes=[class [Lorg.apache.dubbo.rpc.protocol.dubbo.support.Type;], arguments=[[Lorg.apache.dubbo.rpc.protocol.dubbo.support.Type;@60e0cfe6], attachments={path=org.apache.dubbo.rpc.protocol.dubbo.support.DemoService, version=0.0.0}]], channel: /172.17.0.6:49932 -> /172.17.0.6:9010
	at org.apache.dubbo.rpc.protocol.dubbo.DubboProtocolTest.testDubboProtocolWithMina(DubboProtocolTest.java:95)







Recived callback: server invoke callback : arg:1537327557966
Tests run: 5, Failures: 0, Errors: 1, Skipped: 1, Time elapsed: 3.011 sec <<< FAILURE! - in org.apache.dubbo.rpc.protocol.dubbo.ExplicitCallbackTest
TestCallbackMultiInstans(org.apache.dubbo.rpc.protocol.dubbo.ExplicitCallbackTest)  Time elapsed: 1.737 sec  <<< ERROR!
java.lang.IllegalStateException: callback instance not found
```

https://api.travis-ci.org/v3/job/430358124/log.txt
Invoker<DemoService> invoker = protocol.refer(DemoService.class, url);
        GenericService client = (GenericService) proxyFactory.getProxy(invoker, true);
        Object result = client.$invoke("sayHello", new String[]{"java.lang.String"}, new Object[]{"haha"});
        Assert.assertEquals("hello haha", result);
        org.apache.dubbo.rpc.service.GenericService newClient = (org.apache.dubbo.rpc.service.GenericService) proxyFactory.getProxy(invoker, true);
        Object res = newClient.$invoke("sayHello", new String[]{"java.lang.String"}, new Object[]{"hehe"});
        Assert.assertEquals("hello hehe", res);
        invoker.destroy();
        exporter.unexport();
    }
    @Test
    public void testGeneric2() {
        DemoService server = new DemoServiceImpl();
        ProxyFactory proxyFactory = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
        Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
        URL url = URL.valueOf("dubbo://127.0.0.1:5342/" + DemoService.class.getName() + "?version=1.0.0&generic=true");
        Exporter<DemoService> exporter = protocol.export(proxyFactory.getInvoker(server, DemoService.class, url));
        Invoker<GenericService> invoker = protocol.refer(GenericService.class, url);
        GenericService client = proxyFactory.getProxy(invoker, true);
        Object result = client.$invoke("sayHello", new String[]{"java.lang.String"}, new Object[]{"haha"});
        Assert.assertEquals("hello haha", result);
        Invoker<DemoService> invoker2 = protocol.refer(DemoService.class, url);
        GenericService client2 = (GenericService) proxyFactory.getProxy(invoker2, true);
        Object result2 = client2.$invoke("sayHello", new String[]{"java.lang.String"}, new Object[]{"haha"});
        Assert.assertEquals("hello haha", result2);
        invoker.destroy();
        exporter.unexport();
    }
}