Source:
<code>private void setResponseHeaders(BlobInfo blobInfo) throws RestServiceException { BlobProperties blobProperties = blobInfo.getBlobProperties(); restResponseChannel.setStatus(ResponseStatus.Ok); restResponseChannel.setLastModified(new Date(blobProperties.getCreationTimeInMs())); restResponseChannel.setContentLength(blobProperties.getBlobSize()); restResponseChannel.setHeader(RestUtils.Headers.Blob_Size, blobProperties.getBlobSize()); restResponseChannel.setHeader(RestUtils.Headers.Service_Id, blobProperties.getServiceId()); restResponseChannel.setHeader(RestUtils.Headers.Creation_Time, new Date(blobProperties.getCreationTimeInMs())); restResponseChannel.setHeader(RestUtils.Headers.Private, blobProperties.isPrivate()); if (blobProperties.getTimeToLiveInSeconds() != Utils.Infinite_Time) { restResponseChannel.setHeader(RestUtils.Headers.TTL, Long.toString(blobProperties.getTimeToLiveInSeconds())); } if (blobProperties.getContentType() != null) { restResponseChannel.setHeader(RestUtils.Headers.Content_Type, blobProperties.getContentType()); restResponseChannel.setContentType(blobProperties.getContentType()); } if (blobProperties.getOwnerId() != null) { restResponseChannel.setHeader(RestUtils.Headers.Owner_Id, blobProperties.getOwnerId()); } byte[] userMetadataArray = blobInfo.getUserMetadata(); Map<String, List<String>> userMetadata = RestUtils.getUserMetadataFromByteArray(userMetadataArray); for (String key : userMetadata.keySet()) { <START> restResponseChannel.setHeader(key, RestUtils.getHeaderValueFromList(userMetadata.get(key))); <END> } }</code><technical_language>need concatenate multiple values own. This API (setHeader()) handle multiple values for key. need do cycle values call setHeader() each. a side note, create a ticket if setHeader() is right name for API a key multiple values. of API takes a List argument. (can do this later)</technical_language>

Target:
private void setResponseHeaders(BlobInfo blobInfo) throws RestServiceException { BlobProperties blobProperties = blobInfo.getBlobProperties(); restResponseChannel.setStatus(ResponseStatus.Ok); restResponseChannel.setLastModified(new Date(blobProperties.getCreationTimeInMs())); restResponseChannel.setContentLength(blobProperties.getBlobSize()); restResponseChannel.setHeader(RestUtils.Headers.Blob_Size, blobProperties.getBlobSize()); restResponseChannel.setHeader(RestUtils.Headers.Service_Id, blobProperties.getServiceId()); restResponseChannel.setHeader(RestUtils.Headers.Creation_Time, new Date(blobProperties.getCreationTimeInMs())); restResponseChannel.setHeader(RestUtils.Headers.Private, blobProperties.isPrivate()); if (blobProperties.getTimeToLiveInSeconds() != Utils.Infinite_Time) { restResponseChannel.setHeader(RestUtils.Headers.TTL, Long.toString(blobProperties.getTimeToLiveInSeconds())); } if (blobProperties.getContentType() != null) { restResponseChannel.setHeader(RestUtils.Headers.Content_Type, blobProperties.getContentType()); restResponseChannel.setContentType(blobProperties.getContentType()); } if (blobProperties.getOwnerId() != null) { restResponseChannel.setHeader(RestUtils.Headers.Owner_Id, blobProperties.getOwnerId()); } byte[] userMetadataArray = blobInfo.getUserMetadata(); Map<String, String> userMetadata = RestUtils.buildUserMetadata(userMetadataArray); for (Map.Entry<String, String> entry : userMetadata.entrySet()) { restResponseChannel.setHeader(entry.getKey(), entry.getValue()); } }