/** * Add a file skipped message notification for action messages. * * @param fileName file name * @param request the servlet request */ private void addFileSkippedError(String fileName, HttpServletRequest request) { String exceptionMessage = "Skipped file " + fileName + "; request size limit exceeded."; FileSizeLimitExceededException exception = new FileUploadBase.FileSizeLimitExceededException(exceptionMessage, getRequestSize(request), maxSize); String message = buildErrorMessage(exception, new Object[]{fileName, getRequestSize(request), maxSize}); if (!errors.contains(message)) { errors.add(message); } }
/** * Allows to handle the file upload exceptions and to write them into the output * stream so that the client will be able to deserelize them and to show to the user. * @param logger the logger object * @param ex the exception that has happened * @param response the servlet responce * @param max_img_size_bytes the mazimum size dor the uploaded image * @throws IOException if smth bad happens */ public static void handleFileUploadExceptions(Logger logger, FileUploadException ex, HttpServletResponse response, final long max_img_size_bytes ) throws IOException { String errorCode = ""; if( ex instanceof IOFileUploadException ) { //Thrown to indicate an IOException logger.error( "An IOException exception while user-file upload." , ex); errorCode += ExceptionsSerializer.serialize( new InternalSiteException(InternalSiteException.IO_FILE_UPLOAD_EXCEPTION_ERR ) ); } else if( ex instanceof InvalidContentTypeException ) { //Thrown to indicate that the request is not a multipart request. logger.error( "An incorrect request while user-file upload." , ex); errorCode += ExceptionsSerializer.serialize( new InternalSiteException(InternalSiteException.INCORRECT_FILE_UPLOAD_REQUEST_EXCEPTION_ERR ) ); } else if( ex instanceof FileSizeLimitExceededException ) { //Thrown to indicate that A files size //exceeds the configured maximum. logger.warn( "File size exceeded while user-file upload" ); errorCode += ExceptionsSerializer.serialize( new UserFileUploadException( UserFileUploadException.FILE_IS_TOO_LARGE_ERR ) ); } else if( ex instanceof SizeLimitExceededException ){ //Thrown to indicate that the request size //exceeds the configured maximum. logger.warn( "Request size exceeded while user-file upload" ); UserFileUploadException nex = new UserFileUploadException( UserFileUploadException.FILE_IS_TOO_LARGE_ERR ); nex.setMaxUploadFileSize( max_img_size_bytes ); errorCode += ExceptionsSerializer.serialize( nex ); } else { //Some unknown exceptions, there should not be any else left, but just in case ... logger.error( "An unknown exception while user-file upload", ex); errorCode += ExceptionsSerializer.serialize( new InternalSiteException(InternalSiteException.UNKNOWN_INTERNAL_SITE_EXCEPTION_ERR ) ); } response.getWriter().println( errorCode ); }