Martin Mucha has uploaded a new change for review.

Change subject: restapi: fix NPE on ReloadConfigurationsCommand
......................................................................

restapi: fix NPE on ReloadConfigurationsCommand

org.ovirt.engine.api.model.API is not registered in
org.ovirt.engine.api.utils.LinkHelper#TYPES producing NPE.

Added precondition test and return 'null' as a "field bugfix".

Change-Id: I70fd6b084a33bc7770de245c0001d3eefbb58b66
Signed-off-by: Martin Mucha <[email protected]>
---
M 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/utils/LinkHelper.java
1 file changed, 15 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/49/34649/1

diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/utils/LinkHelper.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/utils/LinkHelper.java
index 4dc5203..b09366b 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/utils/LinkHelper.java
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/utils/LinkHelper.java
@@ -76,8 +76,8 @@
 import org.ovirt.engine.api.model.ParametersSet;
 import org.ovirt.engine.api.model.Permission;
 import org.ovirt.engine.api.model.Permit;
-import org.ovirt.engine.api.model.Quota;
 import org.ovirt.engine.api.model.QoS;
+import org.ovirt.engine.api.model.Quota;
 import org.ovirt.engine.api.model.ReportedDevice;
 import org.ovirt.engine.api.model.Request;
 import org.ovirt.engine.api.model.Role;
@@ -119,12 +119,12 @@
 import org.ovirt.engine.api.resource.CapabiliyResource;
 import org.ovirt.engine.api.resource.ClusterResource;
 import org.ovirt.engine.api.resource.ClustersResource;
+import org.ovirt.engine.api.resource.CpuProfileResource;
+import org.ovirt.engine.api.resource.CpuProfilesResource;
 import org.ovirt.engine.api.resource.DataCenterResource;
 import org.ovirt.engine.api.resource.DataCentersResource;
 import org.ovirt.engine.api.resource.DeviceResource;
 import org.ovirt.engine.api.resource.DevicesResource;
-import org.ovirt.engine.api.resource.CpuProfileResource;
-import org.ovirt.engine.api.resource.CpuProfilesResource;
 import org.ovirt.engine.api.resource.DiskProfileResource;
 import org.ovirt.engine.api.resource.DiskProfilesResource;
 import org.ovirt.engine.api.resource.DiskResource;
@@ -164,8 +164,8 @@
 import org.ovirt.engine.api.resource.PermissionResource;
 import org.ovirt.engine.api.resource.PermitResource;
 import org.ovirt.engine.api.resource.PermitsResource;
-import org.ovirt.engine.api.resource.QosResource;
 import org.ovirt.engine.api.resource.QoSsResource;
+import org.ovirt.engine.api.resource.QosResource;
 import org.ovirt.engine.api.resource.QuotaResource;
 import org.ovirt.engine.api.resource.QuotasResource;
 import org.ovirt.engine.api.resource.ReadOnlyDeviceResource;
@@ -242,6 +242,8 @@
 import org.ovirt.engine.api.resource.gluster.GlusterHooksResource;
 import org.ovirt.engine.api.resource.gluster.GlusterVolumeResource;
 import org.ovirt.engine.api.resource.gluster.GlusterVolumesResource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Contains a static addLinks() method which constructs any href attributes
@@ -277,6 +279,9 @@
      * A constant representing the pseudo-parent of a top-level collection
      */
     private static final Class<? extends BaseResource> NO_PARENT = 
BaseResource.class;
+
+    private static Logger log = LoggerFactory.getLogger(LinkHelper.class);
+
 
     /**
      * A map describing every possible collection
@@ -706,6 +711,12 @@
     private static Collection getCollection(BaseResource model, Class<? 
extends BaseResource> suggestedParentType) {
         ParentToCollectionMap collections = TYPES.get(model.getClass());
 
+        if (collections == null) {
+            log.error("Map 'describing every possible collection' does not 
contain rather possible key for resource " +
+                    "%1$s, returning 'null' instead.", model.getClass());
+            return null;
+        }
+
         if (suggestedParentType != null) {
             for (Entry<Class<? extends BaseResource>, Collection> entry : 
collections.entrySet()) {
                 if (entry.getKey().equals(suggestedParentType)) {


-- 
To view, visit http://gerrit.ovirt.org/34649
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I70fd6b084a33bc7770de245c0001d3eefbb58b66
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Martin Mucha <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to