未验证 提交 dbf0444e 编写于 作者: wu-sheng's avatar wu-sheng 提交者: GitHub

Fix NPE in protobuf and illegal query parameter. (#1847)

上级 041ed433
...@@ -31,6 +31,7 @@ import org.apache.skywalking.oap.server.core.storage.annotation.ValueColumnIds; ...@@ -31,6 +31,7 @@ import org.apache.skywalking.oap.server.core.storage.annotation.ValueColumnIds;
import org.apache.skywalking.oap.server.core.storage.query.IMetricQueryDAO; import org.apache.skywalking.oap.server.core.storage.query.IMetricQueryDAO;
import org.apache.skywalking.oap.server.library.module.*; import org.apache.skywalking.oap.server.library.module.*;
import org.apache.skywalking.oap.server.library.module.Service; import org.apache.skywalking.oap.server.library.module.Service;
import org.apache.skywalking.oap.server.library.util.CollectionUtils;
import org.slf4j.*; import org.slf4j.*;
/** /**
...@@ -56,6 +57,10 @@ public class MetricQueryService implements Service { ...@@ -56,6 +57,10 @@ public class MetricQueryService implements Service {
public IntValues getValues(final String indName, final List<String> ids, final Step step, final long startTB, public IntValues getValues(final String indName, final List<String> ids, final Step step, final long startTB,
final long endTB) throws IOException { final long endTB) throws IOException {
if (CollectionUtils.isEmpty(ids)) {
throw new RuntimeException("IDs can't be null");
}
Where where = new Where(); Where where = new Where();
KeyValues intKeyValues = new KeyValues(); KeyValues intKeyValues = new KeyValues();
intKeyValues.setKey(Indicator.ENTITY_ID); intKeyValues.setKey(Indicator.ENTITY_ID);
......
...@@ -18,15 +18,19 @@ ...@@ -18,15 +18,19 @@
package org.apache.skywalking.oap.server.core.register; package org.apache.skywalking.oap.server.core.register;
import java.util.*; import java.util.HashMap;
import lombok.*; import java.util.Map;
import lombok.Getter;
import lombok.Setter;
import org.apache.skywalking.oap.server.core.Const; import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.register.annotation.InventoryType; import org.apache.skywalking.oap.server.core.register.annotation.InventoryType;
import org.apache.skywalking.oap.server.core.remote.annotation.StreamData; import org.apache.skywalking.oap.server.core.remote.annotation.StreamData;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData; import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.source.Scope; import org.apache.skywalking.oap.server.core.source.Scope;
import org.apache.skywalking.oap.server.core.storage.StorageBuilder; import org.apache.skywalking.oap.server.core.storage.StorageBuilder;
import org.apache.skywalking.oap.server.core.storage.annotation.*; import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.StorageEntity;
import org.apache.skywalking.oap.server.library.util.StringUtils;
/** /**
* @author peng-yongsheng * @author peng-yongsheng
...@@ -87,7 +91,7 @@ public class EndpointInventory extends RegisterSource { ...@@ -87,7 +91,7 @@ public class EndpointInventory extends RegisterSource {
remoteBuilder.addDataLongs(getRegisterTime()); remoteBuilder.addDataLongs(getRegisterTime());
remoteBuilder.addDataLongs(getHeartbeatTime()); remoteBuilder.addDataLongs(getHeartbeatTime());
remoteBuilder.addDataStrings(name); remoteBuilder.addDataStrings(StringUtils.getOrDefault(name, Const.EMPTY_STRING));
return remoteBuilder; return remoteBuilder;
} }
......
...@@ -27,6 +27,7 @@ import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData; ...@@ -27,6 +27,7 @@ import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.source.Scope; import org.apache.skywalking.oap.server.core.source.Scope;
import org.apache.skywalking.oap.server.core.storage.StorageBuilder; import org.apache.skywalking.oap.server.core.storage.StorageBuilder;
import org.apache.skywalking.oap.server.core.storage.annotation.*; import org.apache.skywalking.oap.server.core.storage.annotation.*;
import org.apache.skywalking.oap.server.library.util.StringUtils;
/** /**
* @author peng-yongsheng * @author peng-yongsheng
...@@ -87,7 +88,7 @@ public class NetworkAddressInventory extends RegisterSource { ...@@ -87,7 +88,7 @@ public class NetworkAddressInventory extends RegisterSource {
remoteBuilder.addDataLongs(getRegisterTime()); remoteBuilder.addDataLongs(getRegisterTime());
remoteBuilder.addDataLongs(getHeartbeatTime()); remoteBuilder.addDataLongs(getHeartbeatTime());
remoteBuilder.addDataStrings(name); remoteBuilder.addDataStrings(StringUtils.getOrDefault(name, Const.EMPTY_STRING));
return remoteBuilder; return remoteBuilder;
} }
......
...@@ -30,6 +30,7 @@ import org.apache.skywalking.oap.server.core.source.Scope; ...@@ -30,6 +30,7 @@ import org.apache.skywalking.oap.server.core.source.Scope;
import org.apache.skywalking.oap.server.core.storage.StorageBuilder; import org.apache.skywalking.oap.server.core.storage.StorageBuilder;
import org.apache.skywalking.oap.server.core.storage.annotation.*; import org.apache.skywalking.oap.server.core.storage.annotation.*;
import org.apache.skywalking.oap.server.library.util.BooleanUtils; import org.apache.skywalking.oap.server.library.util.BooleanUtils;
import org.apache.skywalking.oap.server.library.util.StringUtils;
/** /**
* @author peng-yongsheng * @author peng-yongsheng
...@@ -122,11 +123,11 @@ public class ServiceInstanceInventory extends RegisterSource { ...@@ -122,11 +123,11 @@ public class ServiceInstanceInventory extends RegisterSource {
remoteBuilder.addDataLongs(getRegisterTime()); remoteBuilder.addDataLongs(getRegisterTime());
remoteBuilder.addDataLongs(getHeartbeatTime()); remoteBuilder.addDataLongs(getHeartbeatTime());
remoteBuilder.addDataStrings(name); remoteBuilder.addDataStrings(StringUtils.getOrDefault(name, Const.EMPTY_STRING));
remoteBuilder.addDataStrings(osName); remoteBuilder.addDataStrings(StringUtils.getOrDefault(osName, Const.EMPTY_STRING));
remoteBuilder.addDataStrings(hostName); remoteBuilder.addDataStrings(StringUtils.getOrDefault(hostName, Const.EMPTY_STRING));
remoteBuilder.addDataStrings(ipv4s); remoteBuilder.addDataStrings(StringUtils.getOrDefault(ipv4s, Const.EMPTY_STRING));
remoteBuilder.addDataStrings(instanceUUID); remoteBuilder.addDataStrings(StringUtils.getOrDefault(instanceUUID, Const.EMPTY_STRING));
return remoteBuilder; return remoteBuilder;
} }
......
...@@ -28,6 +28,7 @@ import org.apache.skywalking.oap.server.core.source.Scope; ...@@ -28,6 +28,7 @@ import org.apache.skywalking.oap.server.core.source.Scope;
import org.apache.skywalking.oap.server.core.storage.StorageBuilder; import org.apache.skywalking.oap.server.core.storage.StorageBuilder;
import org.apache.skywalking.oap.server.core.storage.annotation.*; import org.apache.skywalking.oap.server.core.storage.annotation.*;
import org.apache.skywalking.oap.server.library.util.BooleanUtils; import org.apache.skywalking.oap.server.library.util.BooleanUtils;
import org.apache.skywalking.oap.server.library.util.StringUtils;
/** /**
* @author peng-yongsheng * @author peng-yongsheng
...@@ -105,7 +106,7 @@ public class ServiceInventory extends RegisterSource { ...@@ -105,7 +106,7 @@ public class ServiceInventory extends RegisterSource {
remoteBuilder.addDataLongs(getHeartbeatTime()); remoteBuilder.addDataLongs(getHeartbeatTime());
remoteBuilder.addDataLongs(getMappingLastUpdateTime()); remoteBuilder.addDataLongs(getMappingLastUpdateTime());
remoteBuilder.addDataStrings(name); remoteBuilder.addDataStrings(StringUtils.getOrDefault(name, Const.EMPTY_STRING));
return remoteBuilder; return remoteBuilder;
} }
......
...@@ -32,4 +32,8 @@ public class StringUtils { ...@@ -32,4 +32,8 @@ public class StringUtils {
public static boolean isNotEmpty(Object str) { public static boolean isNotEmpty(Object str) {
return !isEmpty(str); return !isEmpty(str);
} }
public static String getOrDefault(String value, String defaultValue) {
return value == null ? defaultValue : value;
}
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册