TSK-861: Throw error when File upload aborted

This commit is contained in:
BVier 2019-08-07 10:05:18 +02:00 committed by Mustapha Zorgati
parent 6018aac903
commit 7da8b64439
4 changed files with 23 additions and 1 deletions

View File

@ -52,6 +52,9 @@ spring.resources.cache.cachecontrol.cache-private=true
####### for upload of big workbasket- or classification-files
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
server.tomcat.max-http-post-size=-1
server.tomcat.max-save-post-size=-1
server.tomcat.max-swallow-size=-1
####### tomcat is not detecting the x-forward headers from bluemix as a trustworthy proxy
server.tomcat.internal-proxies=.*
server.use-forward-headers=true

View File

@ -30,6 +30,12 @@ taskana.ldap.groupsOfUser=memberUid
taskana.jobscheduler.async.cron=0 * * * * *
####### cache static resources properties
spring.resources.cache.cachecontrol.cache-private=true
####### for upload of big workbasket- or classification-files
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
server.tomcat.max-http-post-size=-1
server.tomcat.max-save-post-size=-1
server.tomcat.max-swallow-size=-1
####### tomcat is not detecting the x-forward headers from bluemix as a trustworthy proxy
server.tomcat.internal-proxies=.*
server.use-forward-headers=true

View File

@ -10,6 +10,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.context.request.WebRequest;
import org.springframework.web.multipart.MaxUploadSizeExceededException;
import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
import pro.taskana.exceptions.ClassificationAlreadyExistException;
@ -122,6 +123,11 @@ public class TaskanaRestExceptionHandler extends ResponseEntityExceptionHandler
return buildResponse(ex, req, HttpStatus.BAD_REQUEST);
}
@ExceptionHandler(MaxUploadSizeExceededException.class)
protected ResponseEntity<Object> handleMaxUploadSizeExceededException(MaxUploadSizeExceededException ex, WebRequest req) {
return buildResponse(ex, req, HttpStatus.PAYLOAD_TOO_LARGE);
}
@ExceptionHandler(Exception.class)
protected ResponseEntity<Object> handleGeneralException(Exception ex, WebRequest req) {
return buildResponse(ex, req, HttpStatus.BAD_REQUEST);

View File

@ -58,7 +58,7 @@ export class ImportExportComponent implements OnInit {
formdata.append('file', file);
ajax.upload.addEventListener('progress', this.progressHandler.bind(this), false);
ajax.addEventListener('load', this.resetProgress.bind(this), false);
ajax.addEventListener('error', this.errorHandler.bind(this), false);
ajax.addEventListener('error', this.onFailedResponse.bind(this, ajax), false);
ajax.onreadystatechange = this.onReadyStateChangeHandler.bind(this, ajax);
if (this.currentSelection === TaskanaType.WORKBASKETS) {
ajax.open('POST', environment.taskanaRestUrl + '/v1/workbasket-definitions');
@ -109,6 +109,8 @@ export class ImportExportComponent implements OnInit {
title = 'Import was not successful, operation was not found.';
} else if (event.status === 409) {
title = 'Import was not successful, operation has some conflicts.';
} else if (event.status === 413) {
title = 'Import was not successful, maximum file size exceeded.'
}
this.errorHandler(title, JSON.parse(event.responseText).message);
@ -119,6 +121,11 @@ export class ImportExportComponent implements OnInit {
}
}
private onFailedResponse(event) {
this.errorHandler('Upload failed', 'The upload didn\'t proceed sucessfully. \
\n Probably the uploaded file exceeded the maximum file size of 10 MB');
}
private errorHandler(title = 'Import was not successful', message) {
this.generalModalService.triggerMessage(
new MessageModal(