diff --git a/eagle-security/eagle-security-maprfs-web/src/main/java/org/apache/eagle/service/security/hdfs/resolver/MAPRFSVolumeResolver.java b/eagle-security/eagle-security-maprfs-web/src/main/java/org/apache/eagle/service/security/hdfs/resolver/MAPRFSVolumeResolver.java index 28cb151c35..7a5ea4db09 100644 --- a/eagle-security/eagle-security-maprfs-web/src/main/java/org/apache/eagle/service/security/hdfs/resolver/MAPRFSVolumeResolver.java +++ b/eagle-security/eagle-security-maprfs-web/src/main/java/org/apache/eagle/service/security/hdfs/resolver/MAPRFSVolumeResolver.java @@ -114,9 +114,9 @@ public List extractVolumeList(JSONObject response){ JSONArray list = (JSONArray) response.get("data"); for(int i = 0; i< list.length();i++ ){ JSONObject element = (JSONObject) list.get(i); - result.add(element.getString("volumename")); + result.add(element.optString("volumename")); } return result; } -} \ No newline at end of file +} diff --git a/eagle-security/eagle-security-maprfs-web/src/main/java/org/apache/eagle/service/security/hdfs/rest/MapRNameResolver.java b/eagle-security/eagle-security-maprfs-web/src/main/java/org/apache/eagle/service/security/hdfs/rest/MapRNameResolver.java index b8e7a20565..cf8be0f99d 100644 --- a/eagle-security/eagle-security-maprfs-web/src/main/java/org/apache/eagle/service/security/hdfs/rest/MapRNameResolver.java +++ b/eagle-security/eagle-security-maprfs-web/src/main/java/org/apache/eagle/service/security/hdfs/rest/MapRNameResolver.java @@ -62,7 +62,10 @@ private String extractVolumeId(JSONObject response){ JSONArray list = (JSONArray) response.get("data"); if(list.length()!=0) { JSONObject jsonObject = (JSONObject) list.get(0); - volumeId = jsonObject.getString("volumeid"); + String string = jsonObject.optString("volumeid"); + if (!string.isEmpty()) { + volumeId = string; + } } return volumeId; } @@ -193,4 +196,4 @@ private Map getAppConfig(String site, String appType){ -} \ No newline at end of file +} diff --git a/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/hdfs/HdfsTopologyEntityParser.java b/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/hdfs/HdfsTopologyEntityParser.java index df6605d8f0..f5ca38eb0d 100644 --- a/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/hdfs/HdfsTopologyEntityParser.java +++ b/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/hdfs/HdfsTopologyEntityParser.java @@ -155,14 +155,21 @@ private void createAllJournalNodeEntities(JMXBean bean, long updateTime, Topolog } String jnInfoString = (String) bean.getPropertyMap().get(JN_TRANSACTION_INFO); JSONObject jsonObject = new JSONObject(jnInfoString); - long lastTxId = Long.parseLong(jsonObject.getString(LAST_TX_ID)); + String lstIdStr = jsonObject.optString(LAST_TX_ID); + if (lstIdStr.isEmpty()) { + return; + } + long lastTxId = Long.parseLong(lstIdStr); String journalnodeString = (String) bean.getPropertyMap().get(JN_STATUS); JSONArray jsonArray = new JSONArray(journalnodeString); JSONObject jsonMap = (JSONObject) jsonArray.get(0); Map journalNodesMap = new HashMap<>(); - String manager = jsonMap.getString("manager"); + String manager = jsonMap.optString("manager"); + if (manager.isEmpty()) { + return; + } Pattern qjm = Pattern.compile(QJM_PATTERN); Matcher jpmMatcher = qjm.matcher(manager); while (jpmMatcher.find()) { @@ -177,7 +184,7 @@ private void createAllJournalNodeEntities(JMXBean bean, long updateTime, Topolog return; } - String stream = jsonMap.getString("stream"); + String stream = jsonMap.optString("stream"); Pattern status = Pattern.compile(STATUS_PATTERN); Matcher statusMatcher = status.matcher(stream); long numLiveJournalNodes = 0; @@ -288,4 +295,4 @@ public TopologyConstants.TopologyType getTopologyType() { public TopologyConstants.HadoopVersion getHadoopVersion() { return TopologyConstants.HadoopVersion.V2; } -} \ No newline at end of file +}