Issue 1:
I have searched the issues of this repository and believe that this is not a duplicate.

I have checked the FAQ of this repository and believe that this is not a duplicate.

Environment

Dubbo version: 2.7.1

Operating System version: win10

Java version: 1.8

Steps to reproduce this issue

config dubbo.provider.group=xxx or dubbo.provider.version=x.x.x

export providers as rest protocol

startup application will NPE

Pls. provide [GitHub address] to reproduce this issue.

Expected Result

What do you expected from the above steps？

fine

Actual Result

What actually happens?

NPE

If there is an exception, please attach the exception trace:

java.lang.NullPointerException: null
at org.apache.dubbo.rpc.protocol.rest.RestProtocol.doExport(RestProtocol.java:99) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.rpc.protocol.AbstractProxyProtocol.export(AbstractProxyProtocol.java:78) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.qos.protocol.QosProtocolWrapper.export(QosProtocolWrapper.java:63) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:61) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:122) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.rpc.Protocol$Adaptive.export(Protocol$Adaptive.java) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.registry.integration.RegistryProtocol.lambda$doLocalExport$2(RegistryProtocol.java:245) ~[dubbo-2.7.3.jar:2.7.3]
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) ~[na:1.8.0_102]
at org.apache.dubbo.registry.integration.RegistryProtocol.doLocalExport(RegistryProtocol.java:243) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.registry.integration.RegistryProtocol.export(RegistryProtocol.java:209) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.qos.protocol.QosProtocolWrapper.export(QosProtocolWrapper.java:61) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:59) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:120) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.rpc.Protocol$Adaptive.export(Protocol$Adaptive.java) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:607) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.config.ServiceConfig.doExportUrls(ServiceConfig.java:457) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:415) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.config.ServiceConfig.export(ServiceConfig.java:378) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.config.spring.ServiceBean.export(ServiceBean.java:336) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.config.spring.ServiceBean.onApplicationEvent(ServiceBean.java:114) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.config.spring.ServiceBean.onApplicationEvent(ServiceBean.java:60) ~[dubbo-2.7.3.jar:2.7.3]

发生这个问题的主要原因是当使用dubbo.provider/consumer指定分组/版本信息时候，分组/版本等default元数据没正确的存入到ApplicationModel中。

Issue 2:
I have searched the issues of this repository and believe that this is not a duplicate.

I have checked the FAQ of this repository and believe that this is not a duplicate.

Environment

Dubbo version: 2.7.3

Operating System version: Win7

Java version: 1.8

Steps to reproduce this issue

Generic invoke

ApplicationConfig application = new ApplicationConfig();
application.setName("api-generic-consumer");
ReferenceConfig<GenericService> reference = new ReferenceConfig<>();
reference.setUrl("dubbo://ip:port/com.xxx.XXXService");
reference.setVersion("1.0.0");
reference.setGeneric(true);
reference.setApplication(application);
reference.setInterface("com.xxx.XXXService");
GenericService genericService = reference.get();
Object obj = genericService.$invoke("getYYY", new String[]{Long.class.getName()}, new Long[]{1L});
String json = JsonUtils.toJson(obj);
System.out.println(json);

ReferenceConfig.init() -> ReferenceConfig.createProxy() -> ClusterUtils.mergeUrl(), Lost after passing 'ClusterUtils.mergeUrl'.

ps. Dubbo v2.7.2 previous version verified that it will not be lost.

Screen

Expected Result

Get the interface return value normally.

Actual Result

Consumer:

com.alibaba.dubbo.remoting.RemotingException: Not found exported service: com.jiuyescm.account.api.IUserService:20834 in [com.jiuyescm.account.api.IPassportService:1.0.0:20834, com.jiuyescm.account.api.ILoginStrategyService:1.0.0:20834, com.jiuyescm.account.api.ILogService:1.0.0:20834, com.jiuyescm.account.api.IUserService:1.0.0:20834], may be version or group mismatch , channel: consumer: /192.168.56.1:59260 --> provider: /192.168.56.1:20834, message:RpcInvocation [methodName=$invoke, parameterTypes=[class java.lang.String, class [Ljava.lang.String;, class [Ljava.lang.Object;], arguments=[getYYY, [Ljava.lang.String;@54e64fa4, [Ljava.lang.Object;@5a21bb48], attachments={path=com.xxx.XXXService, input=309, dubbo=2.0.2, interface=com.xxx.XXXService, version=0.0.0, generic=true}]

Provider:

2019-08-20 09:59:42.456 [New I/O worker #7] INFO com.alibaba.dubbo.common.logger.log4j.Log4jLogger.info(Log4jLogger.java:66) - [DUBBO] Not found exported service: com.xxx.XXXService:20834 in [com.xxx.AAAService:1.0.0:20834, com.xxx.BBBService:1.0.0:20834, com.xxx.CCC:1.0.0:20834, com.xxx.XXXService:1.0.0:20834], may be version or group mismatch , channel: consumer: /192.168.56.1:59260 --> provider: /192.168.56.1:20834, message:RpcInvocation [methodName=$invoke, parameterTypes=[class java.lang.String, class [Ljava.lang.String;, class [Ljava.lang.Object;], arguments=null, attachments={path=com.xxx.XXXService, dubbo=2.0.2, interface=com.xxx.XXXService, version=0.0.0, generic=true}], dubbo version: 2.5.3, current host: 192.168.56.1 #-# com.alibaba.dubbo.remoting.RemotingException: Not found exported service: com.xxx.XXXService:20834 in [com.xxx.IPassportService:1.0.0:20834, com.xxx.ILoginStrategyService:1.0.0:20834, com.xxx.ILogService:1.0.0:20834, com.xxx.XXXService:1.0.0:20834], may be version or group mismatch , channel: consumer: /192.168.56.1:59260 --> provider: /192.168.56.1:20834, message:RpcInvocation [methodName=$invoke, parameterTypes=[class java.lang.String, class [Ljava.lang.String;, class [Ljava.lang.Object;], arguments=null, attachments={path=com.xxx.XXXService, dubbo=2.0.2, interface=com.xxx.XXXService, version=0.0.0, generic=true}]