You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by tu...@apache.org on 2021/04/08 08:07:37 UTC

[nifi] branch main updated: NIFI-8400: Use longs in SystemDiagnostics, add null checks

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

turcsanyi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new 33ec8c8  NIFI-8400: Use longs in SystemDiagnostics, add null checks
33ec8c8 is described below

commit 33ec8c8427eb2cebf52f5f91e81785bc285e6544
Author: Matthew Burgess <ma...@apache.org>
AuthorDate: Wed Apr 7 13:37:19 2021 -0400

    NIFI-8400: Use longs in SystemDiagnostics, add null checks
    
    This closes #4980.
    
    Signed-off-by: Peter Turcsanyi <tu...@apache.org>
---
 .../apache/nifi/diagnostics/SystemDiagnostics.java |  6 +++---
 .../nifi/diagnostics/SystemDiagnosticsFactory.java | 24 ++++++++++++++--------
 2 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnostics.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnostics.java
index 1190845..ac9f1f6 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnostics.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnostics.java
@@ -39,9 +39,9 @@ public class SystemDiagnostics implements Cloneable {
     private int totalThreads;
     private int daemonThreads;
 
-    private Long totalPhysicalMemory;
-    private Long maxOpenFileHandles;
-    private Long openFileHandles;
+    private long totalPhysicalMemory;
+    private long maxOpenFileHandles;
+    private long openFileHandles;
 
     private long uptime;
 
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnosticsFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnosticsFactory.java
index 5c86495..0316baa 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnosticsFactory.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnosticsFactory.java
@@ -16,6 +16,12 @@
  */
 package org.apache.nifi.diagnostics;
 
+import org.apache.nifi.controller.repository.ContentRepository;
+import org.apache.nifi.controller.repository.FlowFileRepository;
+import org.apache.nifi.provenance.ProvenanceRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import java.io.IOException;
 import java.lang.management.GarbageCollectorMXBean;
 import java.lang.management.ManagementFactory;
@@ -31,12 +37,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.nifi.controller.repository.ContentRepository;
-import org.apache.nifi.controller.repository.FlowFileRepository;
-import org.apache.nifi.provenance.ProvenanceRepository;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 /**
  * A factory for creating system diagnostics.
  *
@@ -163,17 +163,23 @@ public class SystemDiagnosticsFactory {
                 final Method totalPhysicalMemory = unixOsMxBeanClass.getMethod("getTotalPhysicalMemorySize");
                 totalPhysicalMemory.setAccessible(true);
                 final Long ramBytes = (Long) totalPhysicalMemory.invoke(osStats);
-                systemDiagnostics.setTotalPhysicalMemory(ramBytes);
+                if (ramBytes != null) {
+                    systemDiagnostics.setTotalPhysicalMemory(ramBytes);
+                }
 
                 final Method maxFileDescriptors = unixOsMxBeanClass.getMethod("getMaxFileDescriptorCount");
                 maxFileDescriptors.setAccessible(true);
                 final Long maxOpenFileDescriptors = (Long) maxFileDescriptors.invoke(osStats);
-                systemDiagnostics.setMaxOpenFileHandles(maxOpenFileDescriptors);
+                if (maxOpenFileDescriptors != null) {
+                    systemDiagnostics.setMaxOpenFileHandles(maxOpenFileDescriptors);
+                }
 
                 final Method openFileDescriptors = unixOsMxBeanClass.getMethod("getOpenFileDescriptorCount");
                 openFileDescriptors.setAccessible(true);
                 final Long openDescriptorCount = (Long) openFileDescriptors.invoke(osStats);
-                systemDiagnostics.setOpenFileHandles(openDescriptorCount);
+                if (openDescriptorCount != null) {
+                    systemDiagnostics.setOpenFileHandles(openDescriptorCount);
+                }
             }
         } catch (final Throwable t) {
             // Ignore. This will throw either ClassNotFound or NoClassDefFoundError if unavailable in this JVM.