From 01ad2a6dc53c7b084664e564a9e010440967efc9 Mon Sep 17 00:00:00 2001 From: remillet Date: Mon, 27 Feb 2017 11:20:35 -0800 Subject: [PATCH] CSPACE-7060: Add core values part to return payload of PUT/update requests. --- .../java/RemoteDocumentModelHandlerImpl.java | 41 ++++++------------- 1 file changed, 13 insertions(+), 28 deletions(-) diff --git a/services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/RemoteDocumentModelHandlerImpl.java b/services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/RemoteDocumentModelHandlerImpl.java index 163ebb7f9..4baecf273 100644 --- a/services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/RemoteDocumentModelHandlerImpl.java +++ b/services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/RemoteDocumentModelHandlerImpl.java @@ -217,36 +217,21 @@ public abstract class RemoteDocumentModelHandlerImpl @Override public void completeUpdate(DocumentWrapper wrapDoc) throws Exception { DocumentModel docModel = wrapDoc.getWrappedObject(); - // We need to return at least those document part(s) and corresponding payloads that were received + + String[] schemas = docModel.getDeclaredSchemas(); Map partsMetaMap = getServiceContext().getPartsMetadata(); - MultipartServiceContext ctx = (MultipartServiceContext) getServiceContext(); - PoxPayloadIn input = ctx.getInput(); - if (input != null) { - List inputParts = ctx.getInput().getParts(); - for (PayloadInputPart part : inputParts) { - String partLabel = part.getLabel(); - try{ - ObjectPartType partMeta = partsMetaMap.get(partLabel); - // CSPACE-4030 - generates NPE if the part is missing. - if(partMeta!=null) { - Map unQObjectProperties = extractPart(docModel, partLabel, partMeta); - if(unQObjectProperties!=null) { - addOutputPart(unQObjectProperties, partLabel, partMeta); - } - } - } catch (Throwable t){ - logger.error("Unable to addOutputPart: " + partLabel - + " in serviceContextPath: "+this.getServiceContextPath() - + " with URI: " + this.getServiceContext().getUriInfo().getPath() - + " error: " + t); - } - } - } else { - if (logger.isWarnEnabled() == true) { - logger.warn("MultipartInput part was null for document id = " + - docModel.getName()); - } + for (String schema : schemas) { + ObjectPartType partMeta = partsMetaMap.get(schema); + if (partMeta == null) { + continue; // unknown part, ignore + } + Map unQObjectProperties = extractPart(docModel, schema, partMeta); + if(CollectionSpaceClient.COLLECTIONSPACE_CORE_SCHEMA.equals(schema)) { + addExtraCoreValues(docModel, unQObjectProperties); + } + addOutputPart(unQObjectProperties, schema, partMeta); } + // // If the resource's service supports hierarchy then we need to perform a little more work // -- 2.47.3