Frank Kobzik has uploaded a new change for review. Change subject: frontend: Fix NPE in os info ......................................................................
frontend: Fix NPE in os info This patch takes care of console-related methods in AsyncDataProvider. NPE can occur when existing vm is edited, but its OS was removed from os info file. Fixed by handling nulls in AsyncDataProvider and handling non-existent OS case in client code (UnitVmModel). Change-Id: I2aef27aee8e079497c9eaa22dfaa6cb9b5502aae Bug-Url: https://bugzilla.redhat.com/1046809 Signed-off-by: Frantisek Kobzik <[email protected]> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java 2 files changed, 12 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/73/32973/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java index 7dd3047..a1106d8 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java @@ -3392,11 +3392,17 @@ } public boolean hasSpiceSupport(int osId, Version version) { - return getDisplayTypes(osId, version).contains(DisplayType.qxl); + List<DisplayType> osDisplayTypes = getDisplayTypes(osId, version); + return osDisplayTypes == null + ? false + : osDisplayTypes.contains(DisplayType.qxl); } public List<DisplayType> getDisplayTypes(int osId, Version version) { - return displayTypes.get(osId).get(version); + Map<Version, List<DisplayType>> osDisplayTypes = displayTypes.get(osId); + return osDisplayTypes == null + ? null + : osDisplayTypes.get(version); } private void initDisplayTypes() { diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java index 80119eb..e983553 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java @@ -1881,6 +1881,10 @@ } List<DisplayType> displayTypes = AsyncDataProvider.getInstance().getDisplayTypes(osType, cluster.getcompatibility_version()); + if (displayTypes == null) { + Integer defaultOs = AsyncDataProvider.getInstance().getDefaultOs(cluster.getArchitecture()); + displayTypes = AsyncDataProvider.getInstance().getDisplayTypes(defaultOs, cluster.getcompatibility_version()); + } initDisplayProtocolWithTypes(displayTypes); } -- To view, visit http://gerrit.ovirt.org/32973 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2aef27aee8e079497c9eaa22dfaa6cb9b5502aae Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Frank Kobzik <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
