Bug 14071: queryAsyncJobResult in xml format gives incorrect UUIDs back

Description:

	Incorrectly removed part of the XML serializer that serialized
	the IdentityProxy object in normal responses, when putting in
	support for serialization of lists of IdentityProxy objects in
	exception responses as part of the code changes put in for bug
	13217, resulting in this bug. Putting it back in place.
This commit is contained in:
Vijayendra Bhamidipati 2012-03-20 15:35:09 -07:00
parent 7cb0351eaa
commit 24e57e283e
1 changed files with 14 additions and 0 deletions

View File

@ -213,6 +213,7 @@ public class ApiResponseSerializer {
}
serializeResponseObjXML(sb, subObj);
} else if (value instanceof IdentityProxy) {
// Only exception reponses carry a list of IdentityProxy objects.
IdentityProxy idProxy = (IdentityProxy)value;
String id = (idProxy.getValue() != null ? String.valueOf(idProxy.getValue()) : "");
if(!id.isEmpty()) {
@ -240,6 +241,19 @@ public class ApiResponseSerializer {
}
} else if (fieldValue instanceof Date) {
sb.append("<" + serializedName.value() + ">" + BaseCmd.getDateString((Date) fieldValue) + "</" + serializedName.value() + ">");
} else if (fieldValue instanceof IdentityProxy) {
IdentityProxy idProxy = (IdentityProxy)fieldValue;
String id = (idProxy.getValue() != null ? String.valueOf(idProxy.getValue()) : "");
if(!id.isEmpty()) {
IdentityDao identityDao = new IdentityDaoImpl();
if(idProxy.getTableName() != null) {
id = identityDao.getIdentityUuid(idProxy.getTableName(), id);
} else {
s_logger.warn("IdentityProxy sanity check issue, invalid IdentityProxy table name found in class: " + obj.getClass().getName());
}
}
if(id != null && !id.isEmpty())
sb.append("<" + serializedName.value() + ">" + id + "</" + serializedName.value() + ">");
} else {
String resultString = escapeSpecialXmlChars(fieldValue.toString());
if (!(obj instanceof ExceptionResponse)) {