From 3abc33dec0992bd547c516e7d94cf8aeac8c6863 Mon Sep 17 00:00:00 2001 From: Haotian Zhang <928016560@qq.com> Date: Thu, 3 Apr 2025 17:01:17 +0800 Subject: [PATCH] fix:fix incorrect empty metadata data handling. --- .../metadata/report/PolarisMetadataReport.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/dubbo-plugins/dubbo-metadatareport-polaris/src/main/java/com/tencent/polaris/dubbo/metadata/report/PolarisMetadataReport.java b/dubbo-plugins/dubbo-metadatareport-polaris/src/main/java/com/tencent/polaris/dubbo/metadata/report/PolarisMetadataReport.java index d7da27a..0e91625 100644 --- a/dubbo-plugins/dubbo-metadatareport-polaris/src/main/java/com/tencent/polaris/dubbo/metadata/report/PolarisMetadataReport.java +++ b/dubbo-plugins/dubbo-metadatareport-polaris/src/main/java/com/tencent/polaris/dubbo/metadata/report/PolarisMetadataReport.java @@ -25,6 +25,8 @@ import com.tencent.polaris.api.pojo.ServiceRule; import com.tencent.polaris.api.rpc.GetServiceContractRequest; import com.tencent.polaris.api.rpc.ServiceRuleResponse; +import com.tencent.polaris.api.utils.CollectionUtils; +import com.tencent.polaris.api.utils.StringUtils; import com.tencent.polaris.common.context.Context; import com.tencent.polaris.common.registry.PolarisConfig; import com.tencent.polaris.common.registry.PolarisOperator; @@ -33,9 +35,9 @@ import com.tencent.polaris.specification.api.v1.service.manage.ServiceContractProto; import org.apache.dubbo.common.URL; import org.apache.dubbo.common.config.configcenter.ConfigItem; -import org.apache.dubbo.common.logger.ErrorTypeAwareLogger; -import org.apache.dubbo.common.logger.LoggerFactory; -import org.apache.dubbo.common.utils.*; +import org.apache.dubbo.common.utils.ConcurrentHashSet; +import org.apache.dubbo.common.utils.JsonUtils; +import org.apache.dubbo.common.utils.NamedThreadFactory; import org.apache.dubbo.metadata.MappingChangedEvent; import org.apache.dubbo.metadata.MappingListener; import org.apache.dubbo.metadata.MetadataInfo; @@ -55,8 +57,6 @@ public class PolarisMetadataReport extends AbstractMetadataReport { - protected final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(getClass()); - private final PolarisOperator operator; private final PolarisConfig config; @@ -161,6 +161,12 @@ public MetadataInfo getAppMetadata(SubscriberMetadataIdentifier identifier, Map< MetadataInfo.ServiceInfo serviceInfo = JsonUtils.toJavaObject(descriptor.getContent(), MetadataInfo.ServiceInfo.class); serviceInfos.put(serviceInfo.getMatchKey(), serviceInfo); } + if (CollectionUtils.isEmpty(serviceInfos)) { + String warnMsg = String.format("Get app metadata empty, service name is %s, revision is %s, param is %s", + identifier.getApplication(), identifier.getRevision(), instanceMetadata); + logger.warn(warnMsg); + return MetadataInfo.EMPTY; + } return new MetadataInfo(identifier.getApplication(), identifier.getRevision(), serviceInfos); }