Example usage for com.liferay.portal.kernel.upload UploadException isExceededFileSizeLimit

List of usage examples for com.liferay.portal.kernel.upload UploadException isExceededFileSizeLimit

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.upload UploadException isExceededFileSizeLimit.

Prototype

public boolean isExceededFileSizeLimit() 

Source Link

Usage

From source file:com.liferay.blogs.web.internal.portlet.action.EditEntryMVCActionCommand.java

License:Open Source License

@Override
protected void doProcessAction(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception {

    String cmd = ParamUtil.getString(actionRequest, Constants.CMD);

    try {/*  w w w.j  a  v a 2  s . c om*/
        BlogsEntry entry = null;
        List<BlogsEntryAttachmentFileEntryReference> blogsEntryAttachmentFileEntryReferences = null;

        UploadException uploadException = (UploadException) actionRequest
                .getAttribute(WebKeys.UPLOAD_EXCEPTION);

        if (uploadException != null) {
            Throwable cause = uploadException.getCause();

            if (uploadException.isExceededFileSizeLimit()) {
                throw new FileSizeException(cause);
            }

            if (uploadException.isExceededLiferayFileItemSizeLimit()) {
                throw new LiferayFileItemException(cause);
            }

            if (uploadException.isExceededUploadRequestSizeLimit()) {
                throw new UploadRequestSizeException(cause);
            }

            throw new PortalException(cause);
        } else if (cmd.equals(Constants.ADD) || cmd.equals(Constants.UPDATE)) {

            Callable<Object[]> updateEntryCallable = new UpdateEntryCallable(actionRequest);

            Object[] returnValue = TransactionInvokerUtil.invoke(_transactionConfig, updateEntryCallable);

            entry = (BlogsEntry) returnValue[0];
            blogsEntryAttachmentFileEntryReferences = (List<BlogsEntryAttachmentFileEntryReference>) returnValue[1];
        } else if (cmd.equals(Constants.DELETE)) {
            deleteEntries(actionRequest, false);
        } else if (cmd.equals(Constants.MOVE_TO_TRASH)) {
            deleteEntries(actionRequest, true);
        } else if (cmd.equals(Constants.RESTORE)) {
            restoreTrashEntries(actionRequest);
        } else if (cmd.equals(Constants.SUBSCRIBE)) {
            subscribe(actionRequest);
        } else if (cmd.equals(Constants.UNSUBSCRIBE)) {
            unsubscribe(actionRequest);
        }

        String redirect = ParamUtil.getString(actionRequest, "redirect");
        String portletId = HttpUtil.getParameter(redirect, "p_p_id", false);

        int workflowAction = ParamUtil.getInteger(actionRequest, "workflowAction",
                WorkflowConstants.ACTION_SAVE_DRAFT);

        boolean ajax = ParamUtil.getBoolean(actionRequest, "ajax");

        if (ajax) {
            JSONObject jsonObject = JSONFactoryUtil.createJSONObject();

            JSONArray jsonArray = JSONFactoryUtil.createJSONArray();

            for (BlogsEntryAttachmentFileEntryReference blogsEntryAttachmentFileEntryReference : blogsEntryAttachmentFileEntryReferences) {

                JSONObject blogsEntryFileEntryReferencesJSONObject = JSONFactoryUtil.createJSONObject();

                blogsEntryFileEntryReferencesJSONObject.put("attributeDataImageId",
                        EditorConstants.ATTRIBUTE_DATA_IMAGE_ID);
                blogsEntryFileEntryReferencesJSONObject.put("fileEntryId", String.valueOf(
                        blogsEntryAttachmentFileEntryReference.getTempBlogsEntryAttachmentFileEntryId()));
                blogsEntryFileEntryReferencesJSONObject.put("fileEntryUrl",
                        PortletFileRepositoryUtil.getPortletFileEntryURL(null,
                                blogsEntryAttachmentFileEntryReference.getBlogsEntryAttachmentFileEntry(),
                                StringPool.BLANK));

                jsonArray.put(blogsEntryFileEntryReferencesJSONObject);
            }

            jsonObject.put("blogsEntryAttachmentReferences", jsonArray);
            jsonObject.put("coverImageFileEntryId", entry.getCoverImageFileEntryId());
            jsonObject.put("entryId", entry.getEntryId());
            jsonObject.put("redirect", redirect);

            JSONPortletResponseUtil.writeJSON(actionRequest, actionResponse, jsonObject);

            return;
        }

        if ((entry != null) && (workflowAction == WorkflowConstants.ACTION_SAVE_DRAFT)) {

            redirect = getSaveAndContinueRedirect(actionRequest, entry, redirect);

            sendRedirect(actionRequest, actionResponse, redirect);
        } else {
            WindowState windowState = actionRequest.getWindowState();

            if (!windowState.equals(LiferayWindowState.POP_UP)) {
                sendRedirect(actionRequest, actionResponse, redirect);
            } else {
                redirect = PortalUtil.escapeRedirect(redirect);

                if (Validator.isNotNull(redirect)) {
                    if (cmd.equals(Constants.ADD) && (entry != null)) {
                        String namespace = PortalUtil.getPortletNamespace(portletId);

                        redirect = HttpUtil.addParameter(redirect, namespace + "className",
                                BlogsEntry.class.getName());
                        redirect = HttpUtil.addParameter(redirect, namespace + "classPK", entry.getEntryId());
                    }

                    actionRequest.setAttribute(WebKeys.REDIRECT, redirect);
                }
            }
        }
    } catch (AssetCategoryException | AssetTagException e) {
        SessionErrors.add(actionRequest, e.getClass(), e);

        actionResponse.setRenderParameter("mvcRenderCommandName", "/blogs/edit_entry");

        hideDefaultSuccessMessage(actionRequest);
    } catch (EntryContentException | EntryCoverImageCropException | EntryDescriptionException
            | EntryDisplayDateException | EntrySmallImageNameException | EntrySmallImageScaleException
            | EntryTitleException | EntryUrlTitleException | FileSizeException | LiferayFileItemException
            | SanitizerException | UploadRequestSizeException e) {

        SessionErrors.add(actionRequest, e.getClass());

        actionResponse.setRenderParameter("mvcRenderCommandName", "/blogs/edit_entry");

        hideDefaultSuccessMessage(actionRequest);
    } catch (NoSuchEntryException | PrincipalException e) {
        SessionErrors.add(actionRequest, e.getClass());

        actionResponse.setRenderParameter("mvcPath", "/blogs/error.jsp");

        hideDefaultSuccessMessage(actionRequest);
    } catch (Throwable t) {
        _log.error(t, t);

        actionResponse.setRenderParameter("mvcPath", "/blogs/error.jsp");

        hideDefaultSuccessMessage(actionRequest);
    }
}

From source file:com.liferay.document.library.web.internal.portlet.action.EditFileEntryMVCActionCommand.java

License:Open Source License

@Override
protected void doProcessAction(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception {

    String cmd = ParamUtil.getString(actionRequest, Constants.CMD);

    FileEntry fileEntry = null;/*from  w w  w  .  j ava 2 s .  c  o  m*/

    PortletConfig portletConfig = getPortletConfig(actionRequest);

    try {
        UploadException uploadException = (UploadException) actionRequest
                .getAttribute(WebKeys.UPLOAD_EXCEPTION);

        if (uploadException != null) {
            Throwable cause = uploadException.getCause();

            if (cmd.equals(Constants.ADD_TEMP)) {
                if (cause instanceof FileUploadBase.IOFileUploadException) {
                    if (_log.isInfoEnabled()) {
                        _log.info("Temporary upload was cancelled");
                    }
                }
            } else {
                if (uploadException.isExceededFileSizeLimit()) {
                    throw new FileSizeException(cause);
                }

                if (uploadException.isExceededLiferayFileItemSizeLimit()) {
                    throw new LiferayFileItemException(cause);
                }

                if (uploadException.isExceededUploadRequestSizeLimit()) {
                    throw new UploadRequestSizeException(cause);
                }

                throw new PortalException(cause);
            }
        } else if (cmd.equals(Constants.ADD) || cmd.equals(Constants.ADD_DYNAMIC)
                || cmd.equals(Constants.UPDATE) || cmd.equals(Constants.UPDATE_AND_CHECKIN)) {

            fileEntry = updateFileEntry(portletConfig, actionRequest, actionResponse);
        } else if (cmd.equals(Constants.ADD_MULTIPLE)) {
            addMultipleFileEntries(portletConfig, actionRequest, actionResponse);

            hideDefaultSuccessMessage(actionRequest);
        } else if (cmd.equals(Constants.ADD_TEMP)) {
            addTempFileEntry(actionRequest, actionResponse);
        } else if (cmd.equals(Constants.DELETE)) {
            deleteFileEntry(actionRequest, false);
        } else if (cmd.equals(Constants.DELETE_TEMP)) {
            deleteTempFileEntry(actionRequest, actionResponse);
        } else if (cmd.equals(Constants.CANCEL_CHECKOUT)) {
            cancelFileEntriesCheckOut(actionRequest);
        } else if (cmd.equals(Constants.CHECKIN)) {
            checkInFileEntries(actionRequest);
        } else if (cmd.equals(Constants.CHECKOUT)) {
            checkOutFileEntries(actionRequest);
        } else if (cmd.equals(Constants.MOVE_TO_TRASH)) {
            deleteFileEntry(actionRequest, true);
        } else if (cmd.equals(Constants.RESTORE)) {
            restoreTrashEntries(actionRequest);
        } else if (cmd.equals(Constants.REVERT)) {
            revertFileEntry(actionRequest);
        }

        WindowState windowState = actionRequest.getWindowState();

        if (cmd.equals(Constants.ADD_TEMP) || cmd.equals(Constants.DELETE_TEMP)) {

            actionResponse.setRenderParameter("mvcPath", "/null.jsp");
        } else if (cmd.equals(Constants.PREVIEW)) {
            SessionMessages.add(actionRequest,
                    _portal.getPortletId(actionRequest) + SessionMessages.KEY_SUFFIX_FORCE_SEND_REDIRECT);

            hideDefaultSuccessMessage(actionRequest);

            actionResponse.setRenderParameter("mvcRenderCommandName", "/document_library/edit_file_entry");
        } else if (!windowState.equals(LiferayWindowState.POP_UP)) {
        } else {
            String redirect = ParamUtil.getString(actionRequest, "redirect");
            int workflowAction = ParamUtil.getInteger(actionRequest, "workflowAction",
                    WorkflowConstants.ACTION_SAVE_DRAFT);

            if ((fileEntry != null) && (workflowAction == WorkflowConstants.ACTION_SAVE_DRAFT)) {

                redirect = getSaveAndContinueRedirect(portletConfig, actionRequest, fileEntry, redirect);

                sendRedirect(actionRequest, actionResponse, redirect);
            } else {
                if (windowState.equals(LiferayWindowState.POP_UP)) {
                    redirect = _portal.escapeRedirect(ParamUtil.getString(actionRequest, "redirect"));

                    if (Validator.isNotNull(redirect)) {
                        if (cmd.equals(Constants.ADD) && (fileEntry != null)) {

                            String portletId = HttpUtil.getParameter(redirect, "p_p_id", false);

                            String namespace = _portal.getPortletNamespace(portletId);

                            redirect = HttpUtil.addParameter(redirect, namespace + "className",
                                    DLFileEntry.class.getName());
                            redirect = HttpUtil.addParameter(redirect, namespace + "classPK",
                                    fileEntry.getFileEntryId());
                        }

                        actionRequest.setAttribute(WebKeys.REDIRECT, redirect);
                    }
                }
            }
        }
    } catch (Exception e) {
        handleUploadException(portletConfig, actionRequest, actionResponse, cmd, e);
    }
}

From source file:com.liferay.exportimport.web.internal.portlet.action.ImportLayoutsMVCActionCommand.java

License:Open Source License

protected void addTempFileEntry(ActionRequest actionRequest, String folderName) throws Exception {

    UploadPortletRequest uploadPortletRequest = _portal.getUploadPortletRequest(actionRequest);

    checkExceededSizeLimit(uploadPortletRequest);

    long groupId = ParamUtil.getLong(actionRequest, "groupId");

    deleteTempFileEntry(groupId, folderName);

    try (InputStream inputStream = uploadPortletRequest.getFileAsStream("file")) {

        String sourceFileName = uploadPortletRequest.getFileName("file");

        String contentType = uploadPortletRequest.getContentType("file");

        _layoutService.addTempFileEntry(groupId, folderName, sourceFileName, inputStream, contentType);
    } catch (Exception e) {
        UploadException uploadException = (UploadException) actionRequest
                .getAttribute(WebKeys.UPLOAD_EXCEPTION);

        if (uploadException != null) {
            Throwable cause = uploadException.getCause();

            if (cause instanceof FileUploadBase.IOFileUploadException) {
                if (_log.isInfoEnabled()) {
                    _log.info("Temporary upload was cancelled");
                }// www . j a va 2s.  c  o  m
            }

            if (uploadException.isExceededFileSizeLimit()) {
                throw new FileSizeException(cause);
            }

            if (uploadException.isExceededUploadRequestSizeLimit()) {
                throw new UploadRequestSizeException(cause);
            }
        } else {
            throw e;
        }
    }
}

From source file:com.liferay.exportimport.web.internal.portlet.action.ImportLayoutsMVCActionCommand.java

License:Open Source License

protected void checkExceededSizeLimit(HttpServletRequest request) throws PortalException {

    UploadException uploadException = (UploadException) request.getAttribute(WebKeys.UPLOAD_EXCEPTION);

    if (uploadException != null) {
        Throwable cause = uploadException.getCause();

        if (uploadException.isExceededFileSizeLimit() || uploadException.isExceededUploadRequestSizeLimit()) {

            throw new LARFileSizeException(cause);
        }/*w  w w  .j  ava 2 s. co m*/

        throw new PortalException(cause);
    }
}

From source file:com.liferay.image.uploader.web.internal.portlet.action.UploadImageMVCActionCommand.java

License:Open Source License

@Override
protected void doProcessAction(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception {

    hideDefaultSuccessMessage(actionRequest);

    String cmd = ParamUtil.getString(actionRequest, Constants.CMD);

    long maxFileSize = ParamUtil.getLong(actionRequest, "maxFileSize");

    try {/*from  w  w  w  .j  a v a 2 s.  c  o m*/
        UploadException uploadException = (UploadException) actionRequest
                .getAttribute(WebKeys.UPLOAD_EXCEPTION);

        if (uploadException != null) {
            Throwable cause = uploadException.getCause();

            if (uploadException.isExceededFileSizeLimit()) {
                throw new FileSizeException(cause);
            }

            if (uploadException.isExceededUploadRequestSizeLimit()) {
                throw new UploadRequestSizeException(cause);
            }

            throw new PortalException(cause);
        } else if (cmd.equals(Constants.ADD_TEMP)) {
            FileEntry tempImageFileEntry = addTempImageFileEntry(actionRequest);

            JSONObject jsonObject = JSONFactoryUtil.createJSONObject();

            jsonObject.put("tempImageFileName", tempImageFileEntry.getTitle());

            JSONPortletResponseUtil.writeJSON(actionRequest, actionResponse, jsonObject);
        } else {
            FileEntry fileEntry = null;

            boolean imageUploaded = ParamUtil.getBoolean(actionRequest, "imageUploaded");

            if (imageUploaded) {
                fileEntry = saveTempImageFileEntry(actionRequest);

                if (fileEntry.getSize() > maxFileSize) {
                    throw new FileSizeException();
                }
            }

            SessionMessages.add(actionRequest, "imageUploaded", fileEntry);

            sendRedirect(actionRequest, actionResponse);
        }
    } catch (Exception e) {
        handleUploadException(actionRequest, actionResponse, cmd, maxFileSize, e);
    }
}

From source file:com.liferay.journal.web.internal.portlet.JournalPortlet.java

License:Open Source License

public void updateArticle(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception {

    UploadException uploadException = (UploadException) actionRequest.getAttribute(WebKeys.UPLOAD_EXCEPTION);

    if (uploadException != null) {
        Throwable cause = uploadException.getCause();

        if (uploadException.isExceededLiferayFileItemSizeLimit()) {
            throw new LiferayFileItemException(cause);
        }/*from   ww  w.j a v a2 s.c  om*/

        if (uploadException.isExceededFileSizeLimit() || uploadException.isExceededUploadRequestSizeLimit()) {

            throw new ArticleContentSizeException(cause);
        }

        throw new PortalException(cause);
    }

    UploadPortletRequest uploadPortletRequest = _portal.getUploadPortletRequest(actionRequest);

    if (_log.isDebugEnabled()) {
        _log.debug("Updating article " + MapUtil.toString(uploadPortletRequest.getParameterMap()));
    }

    String actionName = ParamUtil.getString(actionRequest, ActionRequest.ACTION_NAME);

    long groupId = ParamUtil.getLong(uploadPortletRequest, "groupId");
    long folderId = ParamUtil.getLong(uploadPortletRequest, "folderId");
    long classNameId = ParamUtil.getLong(uploadPortletRequest, "classNameId");
    long classPK = ParamUtil.getLong(uploadPortletRequest, "classPK");

    String articleId = ParamUtil.getString(uploadPortletRequest, "articleId");

    boolean autoArticleId = ParamUtil.getBoolean(uploadPortletRequest, "autoArticleId");
    double version = ParamUtil.getDouble(uploadPortletRequest, "version");

    Map<Locale, String> titleMap = LocalizationUtil.getLocalizationMap(actionRequest, "titleMapAsXML");
    Map<Locale, String> descriptionMap = LocalizationUtil.getLocalizationMap(actionRequest,
            "descriptionMapAsXML");

    ServiceContext serviceContext = ServiceContextFactory.getInstance(JournalArticle.class.getName(),
            uploadPortletRequest);

    String ddmStructureKey = ParamUtil.getString(uploadPortletRequest, "ddmStructureKey");

    DDMStructure ddmStructure = _ddmStructureLocalService.getStructure(_portal.getSiteGroupId(groupId),
            _portal.getClassNameId(JournalArticle.class), ddmStructureKey, true);

    Fields fields = DDMUtil.getFields(ddmStructure.getStructureId(), serviceContext);

    String content = _journalConverter.getContent(ddmStructure, fields);

    String ddmTemplateKey = ParamUtil.getString(uploadPortletRequest, "ddmTemplateKey");
    String layoutUuid = ParamUtil.getString(uploadPortletRequest, "layoutUuid");

    Layout targetLayout = JournalUtil.getArticleLayout(layoutUuid, groupId);

    if (targetLayout == null) {
        layoutUuid = null;
    }

    int displayDateMonth = ParamUtil.getInteger(uploadPortletRequest, "displayDateMonth");
    int displayDateDay = ParamUtil.getInteger(uploadPortletRequest, "displayDateDay");
    int displayDateYear = ParamUtil.getInteger(uploadPortletRequest, "displayDateYear");
    int displayDateHour = ParamUtil.getInteger(uploadPortletRequest, "displayDateHour");
    int displayDateMinute = ParamUtil.getInteger(uploadPortletRequest, "displayDateMinute");
    int displayDateAmPm = ParamUtil.getInteger(uploadPortletRequest, "displayDateAmPm");

    if (displayDateAmPm == Calendar.PM) {
        displayDateHour += 12;
    }

    int expirationDateMonth = ParamUtil.getInteger(uploadPortletRequest, "expirationDateMonth");
    int expirationDateDay = ParamUtil.getInteger(uploadPortletRequest, "expirationDateDay");
    int expirationDateYear = ParamUtil.getInteger(uploadPortletRequest, "expirationDateYear");
    int expirationDateHour = ParamUtil.getInteger(uploadPortletRequest, "expirationDateHour");
    int expirationDateMinute = ParamUtil.getInteger(uploadPortletRequest, "expirationDateMinute");
    int expirationDateAmPm = ParamUtil.getInteger(uploadPortletRequest, "expirationDateAmPm");
    boolean neverExpire = ParamUtil.getBoolean(uploadPortletRequest, "neverExpire");

    if (!PropsValues.SCHEDULER_ENABLED) {
        neverExpire = true;
    }

    if (expirationDateAmPm == Calendar.PM) {
        expirationDateHour += 12;
    }

    int reviewDateMonth = ParamUtil.getInteger(uploadPortletRequest, "reviewDateMonth");
    int reviewDateDay = ParamUtil.getInteger(uploadPortletRequest, "reviewDateDay");
    int reviewDateYear = ParamUtil.getInteger(uploadPortletRequest, "reviewDateYear");
    int reviewDateHour = ParamUtil.getInteger(uploadPortletRequest, "reviewDateHour");
    int reviewDateMinute = ParamUtil.getInteger(uploadPortletRequest, "reviewDateMinute");
    int reviewDateAmPm = ParamUtil.getInteger(uploadPortletRequest, "reviewDateAmPm");
    boolean neverReview = ParamUtil.getBoolean(uploadPortletRequest, "neverReview");

    if (!PropsValues.SCHEDULER_ENABLED) {
        neverReview = true;
    }

    if (reviewDateAmPm == Calendar.PM) {
        reviewDateHour += 12;
    }

    boolean indexable = ParamUtil.getBoolean(uploadPortletRequest, "indexable");

    boolean smallImage = ParamUtil.getBoolean(uploadPortletRequest, "smallImage");
    String smallImageURL = ParamUtil.getString(uploadPortletRequest, "smallImageURL");
    File smallFile = uploadPortletRequest.getFile("smallFile");

    String articleURL = ParamUtil.getString(uploadPortletRequest, "articleURL");

    JournalArticle article = null;
    String oldUrlTitle = StringPool.BLANK;

    if (actionName.equals("addArticle")) {

        // Add article

        article = _journalArticleService.addArticle(groupId, folderId, classNameId, classPK, articleId,
                autoArticleId, titleMap, descriptionMap, content, ddmStructureKey, ddmTemplateKey, layoutUuid,
                displayDateMonth, displayDateDay, displayDateYear, displayDateHour, displayDateMinute,
                expirationDateMonth, expirationDateDay, expirationDateYear, expirationDateHour,
                expirationDateMinute, neverExpire, reviewDateMonth, reviewDateDay, reviewDateYear,
                reviewDateHour, reviewDateMinute, neverReview, indexable, smallImage, smallImageURL, smallFile,
                null, articleURL, serviceContext);
    } else {

        // Update article

        article = _journalArticleService.getArticle(groupId, articleId, version);

        String tempOldUrlTitle = article.getUrlTitle();

        if (actionName.equals("previewArticle") || actionName.equals("updateArticle")) {

            article = _journalArticleService.updateArticle(groupId, folderId, articleId, version, titleMap,
                    descriptionMap, content, ddmStructureKey, ddmTemplateKey, layoutUuid, displayDateMonth,
                    displayDateDay, displayDateYear, displayDateHour, displayDateMinute, expirationDateMonth,
                    expirationDateDay, expirationDateYear, expirationDateHour, expirationDateMinute,
                    neverExpire, reviewDateMonth, reviewDateDay, reviewDateYear, reviewDateHour,
                    reviewDateMinute, neverReview, indexable, smallImage, smallImageURL, smallFile, null,
                    articleURL, serviceContext);
        }

        if (!tempOldUrlTitle.equals(article.getUrlTitle())) {
            oldUrlTitle = tempOldUrlTitle;
        }
    }

    // Recent articles

    JournalUtil.addRecentArticle(actionRequest, article);

    // Journal content

    String portletResource = ParamUtil.getString(actionRequest, "portletResource");

    long referringPlid = ParamUtil.getLong(actionRequest, "referringPlid");

    if (Validator.isNotNull(portletResource) && (referringPlid > 0)) {
        Layout layout = _layoutLocalService.getLayout(referringPlid);

        PortletPreferences portletPreferences = PortletPreferencesFactoryUtil.getStrictPortletSetup(layout,
                portletResource);

        if (portletPreferences != null) {
            portletPreferences.setValue("groupId", String.valueOf(article.getGroupId()));
            portletPreferences.setValue("articleId", article.getArticleId());

            portletPreferences.store();

            updateContentSearch(actionRequest, portletResource, article.getArticleId());
        }
    }

    sendEditArticleRedirect(actionRequest, actionResponse, article, oldUrlTitle);

    long ddmStructureClassNameId = _portal.getClassNameId(DDMStructure.class);

    if (article.getClassNameId() == ddmStructureClassNameId) {
        String ddmPortletId = PortletProviderUtil.getPortletId(DDMStructure.class.getName(), Action.EDIT);

        MultiSessionMessages.add(actionRequest, ddmPortletId + "requestProcessed");
    }
}

From source file:com.liferay.message.boards.web.internal.portlet.action.EditMessageMVCActionCommand.java

License:Open Source License

@Override
protected void doProcessAction(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception {

    String cmd = ParamUtil.getString(actionRequest, Constants.CMD);

    MBMessage message = null;/*from w w  w  . j  av a2 s . com*/

    try {
        UploadException uploadException = (UploadException) actionRequest
                .getAttribute(WebKeys.UPLOAD_EXCEPTION);

        if (uploadException != null) {
            Throwable cause = uploadException.getCause();

            if (uploadException.isExceededFileSizeLimit()) {
                throw new FileSizeException(cause);
            }

            if (uploadException.isExceededLiferayFileItemSizeLimit()) {
                throw new LiferayFileItemException(cause);
            }

            if (uploadException.isExceededUploadRequestSizeLimit()) {
                throw new UploadRequestSizeException(cause);
            }

            throw new PortalException(cause);
        } else if (cmd.equals(Constants.ADD) || cmd.equals(Constants.UPDATE)) {

            message = updateMessage(actionRequest, actionResponse);
        } else if (cmd.equals(Constants.ADD_ANSWER)) {
            addAnswer(actionRequest);
        } else if (cmd.equals(Constants.DELETE)) {
            deleteMessage(actionRequest);
        } else if (cmd.equals(Constants.DELETE_ANSWER)) {
            deleteAnswer(actionRequest);
        } else if (cmd.equals(Constants.LOCK)) {
            lockThreads(actionRequest);
        } else if (cmd.equals(Constants.SUBSCRIBE)) {
            subscribeMessage(actionRequest);
        } else if (cmd.equals(Constants.UNLOCK)) {
            unlockThreads(actionRequest);
        } else if (cmd.equals(Constants.UNSUBSCRIBE)) {
            unsubscribeMessage(actionRequest);
        }

        if (Validator.isNotNull(cmd)) {
            WindowState windowState = actionRequest.getWindowState();

            if (!windowState.equals(LiferayWindowState.POP_UP)) {
                String redirect = getRedirect(actionRequest, actionResponse, message);

                sendRedirect(actionRequest, actionResponse, redirect);
            } else {
                String redirect = PortalUtil.escapeRedirect(ParamUtil.getString(actionRequest, "redirect"));

                if (Validator.isNotNull(redirect)) {
                    actionResponse.sendRedirect(redirect);
                }
            }
        }
    } catch (NoSuchMessageException | PrincipalException | RequiredMessageException e) {

        SessionErrors.add(actionRequest, e.getClass());

        actionResponse.setRenderParameter("mvcPath", "/message_boards/error.jsp");
    } catch (AntivirusScannerException | CaptchaConfigurationException | CaptchaTextException
            | DuplicateFileEntryException | FileExtensionException | FileNameException | FileSizeException
            | LiferayFileItemException | LockedThreadException | MessageBodyException | MessageSubjectException
            | SanitizerException | UploadRequestSizeException e) {

        if (e instanceof AntivirusScannerException) {
            SessionErrors.add(actionRequest, e.getClass(), e);
        } else {
            SessionErrors.add(actionRequest, e.getClass());
        }
    } catch (AssetCategoryException | AssetTagException e) {
        SessionErrors.add(actionRequest, e.getClass(), e);
    } catch (Exception e) {
        Throwable cause = e.getCause();

        if (cause instanceof SanitizerException) {
            SessionErrors.add(actionRequest, SanitizerException.class);
        } else {
            throw e;
        }
    }
}

From source file:com.liferay.wiki.web.internal.portlet.action.EditPageAttachmentsMVCActionCommand.java

License:Open Source License

@Override
protected void doProcessAction(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception {

    String cmd = ParamUtil.getString(actionRequest, Constants.CMD);

    PortletConfig portletConfig = getPortletConfig(actionRequest);

    try {//www. j av a 2 s  . com
        UploadException uploadException = (UploadException) actionRequest
                .getAttribute(WebKeys.UPLOAD_EXCEPTION);

        if (uploadException != null) {
            Throwable cause = uploadException.getCause();

            if (uploadException.isExceededFileSizeLimit()) {
                throw new FileSizeException(cause);
            }

            if (uploadException.isExceededLiferayFileItemSizeLimit()) {
                throw new LiferayFileItemException(cause);
            }

            if (uploadException.isExceededUploadRequestSizeLimit()) {
                throw new UploadRequestSizeException(cause);
            }

            throw new PortalException(cause);
        } else if (cmd.equals(Constants.ADD)) {
            _wikiAttachmentsHelper.addAttachments(actionRequest);
        } else if (cmd.equals(Constants.CHECK)) {
            JSONObject jsonObject = RestoreEntryUtil.checkEntry(actionRequest);

            JSONPortletResponseUtil.writeJSON(actionRequest, actionResponse, jsonObject);

            return;
        } else if (cmd.equals(Constants.DELETE)) {
            deleteAttachment(actionRequest, false);
        } else if (cmd.equals(Constants.EMPTY_TRASH)) {
            _wikiAttachmentsHelper.emptyTrash(actionRequest);
        } else if (cmd.equals(Constants.MOVE_TO_TRASH)) {
            deleteAttachment(actionRequest, true);
        } else if (cmd.equals(Constants.RENAME)) {
            _wikiAttachmentsHelper.restoreRename(actionRequest);
        } else if (cmd.equals(Constants.RESTORE)) {
            _wikiAttachmentsHelper.restoreEntries(actionRequest);

            String redirect = ParamUtil.getString(actionRequest, "redirect");

            if (Validator.isNotNull(redirect)) {
                actionResponse.sendRedirect(redirect);
            }
        } else if (cmd.equals(Constants.OVERRIDE)) {
            _wikiAttachmentsHelper.restoreOverride(actionRequest);
        }
    } catch (NoSuchNodeException | NoSuchPageException | PrincipalException e) {

        SessionErrors.add(actionRequest, e.getClass());

        actionResponse.setRenderParameter("mvcPath", "/wiki/error.jsp");
    } catch (Exception e) {
        handleUploadException(portletConfig, actionRequest, actionResponse, cmd, e);
    }
}

From source file:org.lsug.quota.web.internal.upload.QuotaDefaultUploadHandler.java

License:Open Source License

private UploadPortletRequest _getUploadPortletRequest(PortletRequest portletRequest) throws PortalException {

    UploadPortletRequest uploadPortletRequest = _portal.getUploadPortletRequest(portletRequest);

    UploadException uploadException = (UploadException) portletRequest.getAttribute(WebKeys.UPLOAD_EXCEPTION);

    if (uploadException != null) {
        Throwable cause = uploadException.getCause();

        if (uploadException.isExceededFileSizeLimit()) {
            throw new FileSizeException(cause);
        }//w  ww.ja v a 2s . c om

        if (uploadException.isExceededLiferayFileItemSizeLimit()) {
            throw new LiferayFileItemException(cause);
        }

        if (uploadException.isExceededUploadRequestSizeLimit()) {
            throw new UploadRequestSizeException(cause);
        }

        throw new PortalException(cause);
    }

    return uploadPortletRequest;
}