From c80df408ca04fe6fb00f70e94cbc92eb19bc935a Mon Sep 17 00:00:00 2001 From: Eitan Raviv Date: Sun, 16 Apr 2023 20:07:55 +0300 Subject: [PATCH] webadmin: avoid NPE on null rx, tx drops Bug-Url: http://bugzilla.redhat.com/2180230 Change-Id: Iee6fa946f52481091a431a6ef0f173d74f9e37f2 Signed-off-by: Eitan Raviv --- .../widget/renderer/RxTxDropRenderer.java | 26 +++++++++++++++++++ ...ostNetworkInterfaceBondedListViewItem.java | 3 ++- .../HostNetworkInterfaceListViewItem.java | 2 ++ 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/renderer/RxTxDropRenderer.java diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/renderer/RxTxDropRenderer.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/renderer/RxTxDropRenderer.java new file mode 100644 index 00000000000..c8950147524 --- /dev/null +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/renderer/RxTxDropRenderer.java @@ -0,0 +1,26 @@ +package org.ovirt.engine.ui.common.widget.renderer; + +import java.math.BigInteger; + +import com.google.gwt.text.shared.AbstractRenderer; + +/** + * Renderer for Rx/Tx drop rates. + */ +public class RxTxDropRenderer extends AbstractRenderer { + + private static final String ZERO_VALUE = "0"; //$NON-NLS-1$ + + @Override + public String render(BigInteger[] values) { + if (values.length != 2 || values[0] == null && values[1] == null) { + return ZERO_VALUE; + } else if (values[0] == null) { + return String.valueOf(values[1]); + } else if (values[1] == null) { + return String.valueOf(values[0]); + } else { + return String.valueOf(values[0].add(values[1])); + } + } +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/host/HostNetworkInterfaceBondedListViewItem.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/host/HostNetworkInterfaceBondedListViewItem.java index 1ccd12505ef..66e17ddec06 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/host/HostNetworkInterfaceBondedListViewItem.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/host/HostNetworkInterfaceBondedListViewItem.java @@ -1,5 +1,6 @@ package org.ovirt.engine.ui.webadmin.widget.host; +import java.math.BigInteger; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -165,7 +166,7 @@ public String getValue(HostInterface hostInterface) { TextColumn dropRate = new TextColumn() { @Override public String getValue(HostInterface hostInterface) { - return String.valueOf(hostInterface.getRxDrop().add(hostInterface.getTxDrop())); + return dropRenderer.render(new BigInteger[]{hostInterface.getRxDrop(), hostInterface.getTxDrop()}); } }; slavesTable.addColumn(dropRate, templates.sub(constants.dropsInterface(), constants.pkts())); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/host/HostNetworkInterfaceListViewItem.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/host/HostNetworkInterfaceListViewItem.java index 7acc4c30299..a8a33654ef7 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/host/HostNetworkInterfaceListViewItem.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/host/HostNetworkInterfaceListViewItem.java @@ -19,6 +19,7 @@ import org.ovirt.engine.ui.common.css.PatternflyConstants; import org.ovirt.engine.ui.common.widget.listgroup.ExpandableListViewItem; import org.ovirt.engine.ui.common.widget.listgroup.PatternflyListViewItem; +import org.ovirt.engine.ui.common.widget.renderer.RxTxDropRenderer; import org.ovirt.engine.ui.common.widget.renderer.RxTxRateRenderer; import org.ovirt.engine.ui.common.widget.renderer.RxTxTotalRenderer; import org.ovirt.engine.ui.common.widget.table.column.AbstractIconTypeColumn; @@ -57,6 +58,7 @@ public class HostNetworkInterfaceListViewItem extends PatternflyListViewItem