You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2018/10/30 04:17:22 UTC
[incubator-skywalking] branch master updated: Fix NPE in protobuf
and illegal query parameter. (#1847)
This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new dbf0444 Fix NPE in protobuf and illegal query parameter. (#1847)
dbf0444 is described below
commit dbf0444ec12c1fbe8aee89ee9c05e24c22608108
Author: 吴晟 Wu Sheng <wu...@foxmail.com>
AuthorDate: Tue Oct 30 12:17:17 2018 +0800
Fix NPE in protobuf and illegal query parameter. (#1847)
---
.../skywalking/oap/server/core/query/MetricQueryService.java | 5 +++++
.../oap/server/core/register/EndpointInventory.java | 12 ++++++++----
.../oap/server/core/register/NetworkAddressInventory.java | 3 ++-
.../oap/server/core/register/ServiceInstanceInventory.java | 11 ++++++-----
.../oap/server/core/register/ServiceInventory.java | 3 ++-
.../skywalking/oap/server/library/util/StringUtils.java | 4 ++++
6 files changed, 27 insertions(+), 11 deletions(-)
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/MetricQueryService.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/MetricQueryService.java
index 1b10baf..cd83c2f 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/MetricQueryService.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/MetricQueryService.java
@@ -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.library.module.*;
import org.apache.skywalking.oap.server.library.module.Service;
+import org.apache.skywalking.oap.server.library.util.CollectionUtils;
import org.slf4j.*;
/**
@@ -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,
final long endTB) throws IOException {
+ if (CollectionUtils.isEmpty(ids)) {
+ throw new RuntimeException("IDs can't be null");
+ }
+
Where where = new Where();
KeyValues intKeyValues = new KeyValues();
intKeyValues.setKey(Indicator.ENTITY_ID);
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/EndpointInventory.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/EndpointInventory.java
index 029e192..3d330f8 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/EndpointInventory.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/EndpointInventory.java
@@ -18,15 +18,19 @@
package org.apache.skywalking.oap.server.core.register;
-import java.util.*;
-import lombok.*;
+import java.util.HashMap;
+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.register.annotation.InventoryType;
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.source.Scope;
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
@@ -87,7 +91,7 @@ public class EndpointInventory extends RegisterSource {
remoteBuilder.addDataLongs(getRegisterTime());
remoteBuilder.addDataLongs(getHeartbeatTime());
- remoteBuilder.addDataStrings(name);
+ remoteBuilder.addDataStrings(StringUtils.getOrDefault(name, Const.EMPTY_STRING));
return remoteBuilder;
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/NetworkAddressInventory.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/NetworkAddressInventory.java
index 2ac6816..cf465b6 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/NetworkAddressInventory.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/NetworkAddressInventory.java
@@ -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.storage.StorageBuilder;
import org.apache.skywalking.oap.server.core.storage.annotation.*;
+import org.apache.skywalking.oap.server.library.util.StringUtils;
/**
* @author peng-yongsheng
@@ -87,7 +88,7 @@ public class NetworkAddressInventory extends RegisterSource {
remoteBuilder.addDataLongs(getRegisterTime());
remoteBuilder.addDataLongs(getHeartbeatTime());
- remoteBuilder.addDataStrings(name);
+ remoteBuilder.addDataStrings(StringUtils.getOrDefault(name, Const.EMPTY_STRING));
return remoteBuilder;
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInstanceInventory.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInstanceInventory.java
index a476017..519a7d2 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInstanceInventory.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInstanceInventory.java
@@ -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.annotation.*;
import org.apache.skywalking.oap.server.library.util.BooleanUtils;
+import org.apache.skywalking.oap.server.library.util.StringUtils;
/**
* @author peng-yongsheng
@@ -122,11 +123,11 @@ public class ServiceInstanceInventory extends RegisterSource {
remoteBuilder.addDataLongs(getRegisterTime());
remoteBuilder.addDataLongs(getHeartbeatTime());
- remoteBuilder.addDataStrings(name);
- remoteBuilder.addDataStrings(osName);
- remoteBuilder.addDataStrings(hostName);
- remoteBuilder.addDataStrings(ipv4s);
- remoteBuilder.addDataStrings(instanceUUID);
+ remoteBuilder.addDataStrings(StringUtils.getOrDefault(name, Const.EMPTY_STRING));
+ remoteBuilder.addDataStrings(StringUtils.getOrDefault(osName, Const.EMPTY_STRING));
+ remoteBuilder.addDataStrings(StringUtils.getOrDefault(hostName, Const.EMPTY_STRING));
+ remoteBuilder.addDataStrings(StringUtils.getOrDefault(ipv4s, Const.EMPTY_STRING));
+ remoteBuilder.addDataStrings(StringUtils.getOrDefault(instanceUUID, Const.EMPTY_STRING));
return remoteBuilder;
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInventory.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInventory.java
index 460e0b9..c2c2199 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInventory.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInventory.java
@@ -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.annotation.*;
import org.apache.skywalking.oap.server.library.util.BooleanUtils;
+import org.apache.skywalking.oap.server.library.util.StringUtils;
/**
* @author peng-yongsheng
@@ -105,7 +106,7 @@ public class ServiceInventory extends RegisterSource {
remoteBuilder.addDataLongs(getHeartbeatTime());
remoteBuilder.addDataLongs(getMappingLastUpdateTime());
- remoteBuilder.addDataStrings(name);
+ remoteBuilder.addDataStrings(StringUtils.getOrDefault(name, Const.EMPTY_STRING));
return remoteBuilder;
}
diff --git a/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/StringUtils.java b/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/StringUtils.java
index 34d84ca..2d425c4 100644
--- a/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/StringUtils.java
+++ b/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/StringUtils.java
@@ -32,4 +32,8 @@ public class StringUtils {
public static boolean isNotEmpty(Object str) {
return !isEmpty(str);
}
+
+ public static String getOrDefault(String value, String defaultValue) {
+ return value == null ? defaultValue : value;
+ }
}