Merged FILE-FOLDER-API (5.2.0) to HEAD (5.2)

127427 jkaabimofrad: RA-1052: Modified the upload API so that the failure of the async request to create a rendition wouldn't fail the upload.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@127445 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Jamal Kaabi-Mofrad
2016-05-31 10:08:07 +00:00
parent 0c017176a3
commit ce95d147e1
2 changed files with 30 additions and 10 deletions

View File

@@ -2229,8 +2229,6 @@ public class NodesImpl implements Nodes
try try
{ {
List<ThumbnailDefinition> thumbnailDefs = getThumbnailDefs(renditionNames);
// Map the given properties, if any. // Map the given properties, if any.
if (qnameStrProps.size() > 0) if (qnameStrProps.size() > 0)
{ {
@@ -2265,9 +2263,23 @@ public class NodesImpl implements Nodes
} }
// Create a new file. // Create a new file.
Node fileNode = createNewFile(parentNodeRef, fileName, nodeTypeQName, content, properties, parameters); final Node fileNode = createNewFile(parentNodeRef, fileName, nodeTypeQName, content, properties, parameters);
// RA-1052
try
{
List<ThumbnailDefinition> thumbnailDefs = getThumbnailDefs(renditionNames);
requestRenditions(thumbnailDefs, fileNode); requestRenditions(thumbnailDefs, fileNode);
}
catch (Exception ex)
{
// Note: The log level is not 'error' as it could easily fill out the log file, especially in the Cloud.
if (logger.isDebugEnabled())
{
// Don't throw the exception as we don't want the the upload to fail, just log it.
logger.debug("Asynchronous request to create a rendition upon upload failed: " + ex.getMessage());
}
}
return fileNode; return fileNode;

View File

@@ -529,23 +529,31 @@ public class RenditionsTest extends AbstractBaseApiTest
assertEquals(RenditionStatus.CREATED, rendition.getStatus()); assertEquals(RenditionStatus.CREATED, rendition.getStatus());
*/ */
// -ve - currently we do not support multiple rendition requests on create
/*
* Per RA-1052, the failure of the async request to create a rendition
* should NOT fail the upload.
*/
// Currently we do not support multiple rendition requests on create
reqBody = MultiPartBuilder.create() reqBody = MultiPartBuilder.create()
.setFileData(new FileData(fileName, file, MimetypeMap.MIMETYPE_PDF)) .setFileData(new FileData(fileName, file, MimetypeMap.MIMETYPE_PDF))
.setAutoRename(true)
.setRenditions(Arrays.asList(new String[]{"doclib,imgpreview"})) .setRenditions(Arrays.asList(new String[]{"doclib,imgpreview"}))
.build(); .build();
post(getNodeChildrenUrl(folder_Id), userId, reqBody.getBody(), null, reqBody.getContentType(), 400); post(getNodeChildrenUrl(folder_Id), userId, reqBody.getBody(), null, reqBody.getContentType(), 201);
// -ve // Unknown rendition
reqBody = MultiPartBuilder.create() reqBody = MultiPartBuilder.create()
.setFileData(new FileData(fileName, file, MimetypeMap.MIMETYPE_PDF)) .setFileData(new FileData(fileName, file, MimetypeMap.MIMETYPE_PDF))
.setAutoRename(true)
.setRenditions(Arrays.asList(new String[]{"unknown"})) .setRenditions(Arrays.asList(new String[]{"unknown"}))
.build(); .build();
post(getNodeChildrenUrl(folder_Id), userId, reqBody.getBody(), null, reqBody.getContentType(), 404); post(getNodeChildrenUrl(folder_Id), userId, reqBody.getBody(), null, reqBody.getContentType(), 201);
// -ve // ThumbnailService is disabled
ThumbnailService thumbnailService = applicationContext.getBean("thumbnailService", ThumbnailService.class); ThumbnailService thumbnailService = applicationContext.getBean("thumbnailService", ThumbnailService.class);
thumbnailService.setThumbnailsEnabled(false); thumbnailService.setThumbnailsEnabled(false);
try try
@@ -558,7 +566,7 @@ public class RenditionsTest extends AbstractBaseApiTest
.setRenditions(Arrays.asList(new String[]{"doclib"})) .setRenditions(Arrays.asList(new String[]{"doclib"}))
.build(); .build();
post(getNodeChildrenUrl(folder_Id), userId, reqBody.getBody(), null, reqBody.getContentType(), 501); post(getNodeChildrenUrl(folder_Id), userId, reqBody.getBody(), null, reqBody.getContentType(), 201);
} }
finally finally
{ {