You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@skywalking.apache.org by wu...@apache.org on 2018/09/14 10:21:41 UTC

[incubator-skywalking] branch 5.x updated: close inputStream safety & FIX NPE in AlarmService (#1661)

This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch 5.x
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git


The following commit(s) were added to refs/heads/5.x by this push:
     new c86312f  close inputStream safety & FIX NPE in AlarmService (#1661)
c86312f is described below

commit c86312f309ee9f2d12e4331e8f797904614e9eaa
Author: caoyixiong <32...@users.noreply.github.com>
AuthorDate: Fri Sep 14 18:21:35 2018 +0800

    close inputStream safety & FIX NPE in AlarmService (#1661)
    
    * close inputStream safety
    
    * FIX NPE in AlarmService
---
 .../segment/parser/provider/buffer/SegmentBufferReader.java   | 11 ++++++++++-
 .../skywalking/apm/collector/ui/service/AlarmService.java     |  2 +-
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/buffer/SegmentBufferReader.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/buffer/SegmentBufferReader.java
index d1ce1c4..965aba8 100644
--- a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/buffer/SegmentBufferReader.java
+++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/buffer/SegmentBufferReader.java
@@ -19,6 +19,7 @@
 package org.apache.skywalking.apm.collector.analysis.segment.parser.provider.buffer;
 
 import com.google.protobuf.CodedOutputStream;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FilenameFilter;
@@ -26,6 +27,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
+
 import org.apache.skywalking.apm.collector.analysis.segment.parser.define.service.ISegmentParseService;
 import org.apache.skywalking.apm.collector.analysis.segment.parser.provider.parser.SegmentParse;
 import org.apache.skywalking.apm.collector.analysis.segment.parser.provider.parser.SegmentParserListenerManager;
@@ -148,13 +150,20 @@ public enum SegmentBufferReader {
                 OffsetManager.INSTANCE.setReadOffset(readFileOffset);
             }
 
-            inputStream.close();
             if (!writeFileName.equals(readFile.getName())) {
                 readFile.delete();
             }
         } catch (IOException e) {
             logger.error(e.getMessage(), e);
             return false;
+        } finally {
+            if (inputStream != null) {
+                try {
+                    inputStream.close();
+                } catch (IOException e) {
+                    logger.error(e.getMessage(), e);
+                }
+            }
         }
         return true;
     }
diff --git a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/AlarmService.java b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/AlarmService.java
index b10449f..b5388c7 100644
--- a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/AlarmService.java
+++ b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/AlarmService.java
@@ -175,7 +175,7 @@ public class AlarmService {
     private String buildServerName(String osInfoJson) {
         JsonObject osInfo = gson.fromJson(osInfoJson, JsonObject.class);
         String serverName = Const.UNKNOWN;
-        if (osInfo.has("hostName")) {
+        if (osInfo != null && osInfo.has("hostName")) {
             serverName = osInfo.get("hostName").getAsString();
         }
         return serverName;