Roy Golan has uploaded a new change for review.
Change subject: core: Fix JSON serialization for diskMap at VmTemplate
......................................................................
core: Fix JSON serialization for diskMap at VmTemplate
JSON de-serialization of java class with a member of an interface type
is loosing its concrete type due to erasure so
class A {
private Map x
}
is serialized to
A {
x {} <- x is considered an arbitraty object
}
and couldn't deserialized back to Map, throwing an error
while it should have been
private HashMap x
and then
A {
x: [ "java.util.HashMap" , { ... } ]
}
See Also - http://wiki.fasterxml.com/JacksonPolymorphicDeserialization
Change-Id: Ie56dca3f2cae063c28515e904d644a0f1f39feeb
Signed-off-by: Roy Golan <[email protected]>
Bug-Url: https://bugzilla.redhat.com/996005
---
M
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java
M
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AddVmCommandTest.java
M
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmTemplate.java
3 files changed, 6 insertions(+), 6 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/01/18001/1
diff --git
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java
index 6df80ef..8e5067c 100644
---
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java
+++
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java
@@ -121,7 +121,7 @@
getParameters().setImages(images);
getVmTemplate().setImages(images);
ensureDomainMap(getParameters().getImages(),
getParameters().getDestDomainId());
- Map<Guid, DiskImage> imageMap = new HashMap<Guid, DiskImage>();
+ HashMap<Guid, DiskImage> imageMap = new HashMap<Guid,
DiskImage>();
for (DiskImage image : images) {
if (Guid.Empty.equals(image.getVmSnapshotId())) {
retVal =
failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_CORRUPTED_VM_SNAPSHOT_ID);
diff --git
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AddVmCommandTest.java
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AddVmCommandTest.java
index 35723d1..1295c6f 100644
---
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AddVmCommandTest.java
+++
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AddVmCommandTest.java
@@ -385,7 +385,7 @@
vmTemplate.setStoragePoolId(STORAGE_POOL_ID);
DiskImage image = createDiskImageTemplate();
vmTemplate.getDiskMap().put(image.getImageId(), image);
- Map<Guid, DiskImage> diskImageMap = new HashMap<Guid, DiskImage>();
+ HashMap<Guid, DiskImage> diskImageMap = new HashMap<Guid,
DiskImage>();
DiskImage diskImage = createDiskImage(REQUIRED_DISK_SIZE_GB);
diskImageMap.put(diskImage.getId(), diskImage);
vmTemplate.setDiskImageMap(diskImageMap);
diff --git
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmTemplate.java
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmTemplate.java
index 3288096..2b23dfb 100644
---
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmTemplate.java
+++
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmTemplate.java
@@ -4,7 +4,6 @@
import java.util.Date;
import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import javax.validation.constraints.Size;
import javax.validation.groups.Default;
@@ -37,7 +36,7 @@
private String storagePoolName;
- private Map<Guid, DiskImage> diskMap = new HashMap<Guid, DiskImage>();
+ private HashMap<Guid, DiskImage> diskMap = new HashMap<Guid, DiskImage>();
private ArrayList<DiskImage> diskList = new ArrayList<DiskImage>();
@@ -201,14 +200,15 @@
}
@JsonIgnore
- public Map<Guid, DiskImage> getDiskImageMap() {
+ public HashMap<Guid, DiskImage> getDiskImageMap() {
return diskMap;
}
- public void setDiskImageMap(Map<Guid, DiskImage> value) {
+ public void setDiskImageMap(HashMap<Guid, DiskImage> value) {
diskMap = value;
}
+
@Override
@JsonIgnore
public ArrayList<DiskImage> getDiskList() {
--
To view, visit http://gerrit.ovirt.org/18001
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie56dca3f2cae063c28515e904d644a0f1f39feeb
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Roy Golan <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches