Arik Hadas has posted comments on this change. Change subject: core: add support to update running vm ......................................................................
Patch Set 11: (3 comments) http://gerrit.ovirt.org/#/c/26758/11/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ObjectIdentityChecker.java File backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ObjectIdentityChecker.java: Line 111: * @param destination object to copy the non editable to it Line 112: */ Line 113: public boolean copyNonEditableFieldsToDestination(Object source, Object destination) { Line 114: Class<?> cls = source.getClass(); Line 115: while (!cls.equals(Object.class)) { > Object doesn't have fields as far as I remember. I think it is not related to whether Object has fields or not. we should know when to end the loop - so we can either check that we reach Object class or check if the super class is null (in case of Object class), and it's better not to have a redundant iteration for the Object class. Line 116: for (Field srcFld : cls.getDeclaredFields()) { Line 117: try { Line 118: if (!Modifier.isFinal(srcFld.getModifiers()) && !IsFieldUpdatable(srcFld.getName())) { Line 119: srcFld.setAccessible(true); Line 112: */ Line 113: public boolean copyNonEditableFieldsToDestination(Object source, Object destination) { Line 114: Class<?> cls = source.getClass(); Line 115: while (!cls.equals(Object.class)) { Line 116: for (Field srcFld : cls.getDeclaredFields()) { > cls.getFields() should get you all the fields of the class and its parents. we need to get all the private fields as well Line 117: try { Line 118: if (!Modifier.isFinal(srcFld.getModifiers()) && !IsFieldUpdatable(srcFld.getName())) { Line 119: srcFld.setAccessible(true); Line 120: Line 115: while (!cls.equals(Object.class)) { Line 116: for (Field srcFld : cls.getDeclaredFields()) { Line 117: try { Line 118: if (!Modifier.isFinal(srcFld.getModifiers()) && !IsFieldUpdatable(srcFld.getName())) { Line 119: srcFld.setAccessible(true); > why do we need the srcFld to be accessible for modification? it is not only for accessibility for modification but also for reading Line 120: Line 121: Field dstFld = cls.getDeclaredField(srcFld.getName()); Line 122: dstFld.setAccessible(true); Line 123: dstFld.set(destination, srcFld.get(source)); -- To view, visit http://gerrit.ovirt.org/26758 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ie433352852f53f62e58349ce85475ee89e37ce89 Gerrit-PatchSet: 11 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Omer Frenkel <ofren...@redhat.com> Gerrit-Reviewer: Arik Hadas <aha...@redhat.com> Gerrit-Reviewer: Michal Skrivanek <michal.skriva...@redhat.com> Gerrit-Reviewer: Omer Frenkel <ofren...@redhat.com> Gerrit-Reviewer: Roy Golan <rgo...@redhat.com> Gerrit-Reviewer: automat...@ovirt.org Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: Yes _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches