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

jinsongzhou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/amoro.git


The following commit(s) were added to refs/heads/master by this push:
     new 9b3318d3e [AMORO-3029] Fix table record calculating with empty table 
(#3030)
9b3318d3e is described below

commit 9b3318d3e88582169c561f62c14e3cea11a08bd7
Author: ZhouJinsong <[email protected]>
AuthorDate: Fri Jul 12 15:17:58 2024 +0800

    [AMORO-3029] Fix table record calculating with empty table (#3030)
    
    Fix table record calculating with empty table
---
 .../amoro/server/dashboard/DashboardServer.java    |  1 +
 .../dashboard/MixedAndIcebergTableDescriptor.java  | 28 +++++++++++++---------
 2 files changed, 18 insertions(+), 11 deletions(-)

diff --git 
a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/dashboard/DashboardServer.java
 
b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/dashboard/DashboardServer.java
index c3b848c79..6d8c98407 100644
--- 
a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/dashboard/DashboardServer.java
+++ 
b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/dashboard/DashboardServer.java
@@ -368,6 +368,7 @@ public class DashboardServer {
     "/ams/v1/versionInfo",
     "/ams/v1/login",
     "/ams/v1/health/status",
+    "/ams/v1/login/current",
     "/",
     "/overview",
     "/introduce",
diff --git 
a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/dashboard/MixedAndIcebergTableDescriptor.java
 
b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/dashboard/MixedAndIcebergTableDescriptor.java
index bc456a0d6..4434304f0 100644
--- 
a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/dashboard/MixedAndIcebergTableDescriptor.java
+++ 
b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/dashboard/MixedAndIcebergTableDescriptor.java
@@ -176,23 +176,29 @@ public class MixedAndIcebergTableDescriptor extends 
PersistentBase
   }
 
   private long getRecordsOfTable(MixedTable mixedTable) {
-    long totalRecords;
+    long totalRecords = 0L;
     if (mixedTable.isKeyedTable()) {
       Snapshot changeSnapshot =
           SnapshotUtil.latestSnapshot(mixedTable.asKeyedTable().changeTable(), 
null);
       Snapshot baseSnapshot =
           SnapshotUtil.latestSnapshot(mixedTable.asKeyedTable().baseTable(), 
null);
-      totalRecords =
-          PropertyUtil.propertyAsLong(
-                  changeSnapshot.summary(), 
SnapshotSummary.TOTAL_RECORDS_PROP, 0L)
-              + PropertyUtil.propertyAsLong(
-                  baseSnapshot.summary(), SnapshotSummary.TOTAL_RECORDS_PROP, 
0L);
+      if (changeSnapshot != null) {
+        totalRecords +=
+            PropertyUtil.propertyAsLong(
+                changeSnapshot.summary(), SnapshotSummary.TOTAL_RECORDS_PROP, 
0L);
+      }
+      if (baseSnapshot != null) {
+        totalRecords +=
+            PropertyUtil.propertyAsLong(
+                baseSnapshot.summary(), SnapshotSummary.TOTAL_RECORDS_PROP, 
0L);
+      }
     } else {
-      totalRecords =
-          PropertyUtil.propertyAsLong(
-              SnapshotUtil.latestSnapshot(mixedTable.asUnkeyedTable(), 
null).summary(),
-              SnapshotSummary.TOTAL_RECORDS_PROP,
-              0L);
+      Snapshot latestSnapshot = 
SnapshotUtil.latestSnapshot(mixedTable.asUnkeyedTable(), null);
+      if (latestSnapshot != null) {
+        totalRecords =
+            PropertyUtil.propertyAsLong(
+                latestSnapshot.summary(), SnapshotSummary.TOTAL_RECORDS_PROP, 
0L);
+      }
     }
     return totalRecords;
   }

Reply via email to