Example usage for com.liferay.portal.kernel.servlet ServletResponseConstants SC_DUPLICATE_FILE_EXCEPTION

List of usage examples for com.liferay.portal.kernel.servlet ServletResponseConstants SC_DUPLICATE_FILE_EXCEPTION

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.servlet ServletResponseConstants SC_DUPLICATE_FILE_EXCEPTION.

Prototype

int SC_DUPLICATE_FILE_EXCEPTION

To view the source code for com.liferay.portal.kernel.servlet ServletResponseConstants SC_DUPLICATE_FILE_EXCEPTION.

Click Source Link

Usage

From source file:com.liferay.document.library.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 {/* ww  w  .ja  v a  2s.  c  o  m*/
        if (cmd.equals(Constants.CANCEL_CHECKOUT)) {
            cancelCheckedOutEntries(actionRequest);
        } else if (cmd.equals(Constants.CHECKIN)) {
            checkInEntries(actionRequest);
        } else if (cmd.equals(Constants.CHECKOUT)) {
            checkOutEntries(actionRequest);
        } else if (cmd.equals(Constants.DELETE)) {
            deleteEntries(actionRequest, false);
        } else if (cmd.equals(Constants.MOVE)) {
            moveEntries(actionRequest);
        } else if (cmd.equals(Constants.MOVE_TO_TRASH)) {
            deleteEntries(actionRequest, true);
        } else if (cmd.equals(Constants.RESTORE)) {
            restoreTrashEntries(actionRequest);
        }

        WindowState windowState = actionRequest.getWindowState();

        if (windowState.equals(LiferayWindowState.POP_UP)) {
            String redirect = _portal.escapeRedirect(ParamUtil.getString(actionRequest, "redirect"));

            if (Validator.isNotNull(redirect)) {
                sendRedirect(actionRequest, actionResponse, redirect);
            }
        }
    } catch (DuplicateLockException | NoSuchFileEntryException | NoSuchFolderException | PrincipalException e) {

        if (e instanceof DuplicateLockException) {
            DuplicateLockException dle = (DuplicateLockException) e;

            SessionErrors.add(actionRequest, dle.getClass(), dle.getLock());
        } else {
            SessionErrors.add(actionRequest, e.getClass());
        }

        actionResponse.setRenderParameter("mvcPath", "/document_library/error.jsp");
    } catch (DuplicateFileEntryException | DuplicateFolderNameException | SourceFileNameException e) {

        if (e instanceof DuplicateFileEntryException) {
            HttpServletResponse response = _portal.getHttpServletResponse(actionResponse);

            response.setStatus(ServletResponseConstants.SC_DUPLICATE_FILE_EXCEPTION);
        }

        SessionErrors.add(actionRequest, e.getClass());
    } catch (AssetCategoryException | AssetTagException | InvalidFolderException e) {

        SessionErrors.add(actionRequest, e.getClass(), e);
    } catch (Exception e) {
        throw new PortletException(e);
    }
}

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

License:Open Source License

protected void handleUploadException(PortletConfig portletConfig, ActionRequest actionRequest,
        ActionResponse actionResponse, String cmd, Exception e) throws Exception {

    if (e instanceof AssetCategoryException || e instanceof AssetTagException) {

        SessionErrors.add(actionRequest, e.getClass(), e);
    } else if (e instanceof AntivirusScannerException || e instanceof DuplicateFileEntryException
            || e instanceof DuplicateFolderNameException || e instanceof FileExtensionException
            || e instanceof FileMimeTypeException || e instanceof FileNameException
            || e instanceof FileSizeException || e instanceof LiferayFileItemException
            || e instanceof NoSuchFolderException || e instanceof SourceFileNameException
            || e instanceof StorageFieldRequiredException || e instanceof UploadRequestSizeException) {

        if (!cmd.equals(Constants.ADD_DYNAMIC) && !cmd.equals(Constants.ADD_MULTIPLE)
                && !cmd.equals(Constants.ADD_TEMP)) {

            if (e instanceof AntivirusScannerException) {
                SessionErrors.add(actionRequest, e.getClass(), e);
            } else {
                SessionErrors.add(actionRequest, e.getClass());
            }//from w  ww  . j a  v a2 s .c o m

            return;
        } else if (cmd.equals(Constants.ADD_TEMP)) {
            hideDefaultErrorMessage(actionRequest);
        }

        if (e instanceof AntivirusScannerException || e instanceof DuplicateFileEntryException
                || e instanceof FileExtensionException || e instanceof FileNameException
                || e instanceof FileSizeException || e instanceof UploadRequestSizeException) {

            HttpServletResponse response = _portal.getHttpServletResponse(actionResponse);

            response.setContentType(ContentTypes.TEXT_HTML);
            response.setStatus(HttpServletResponse.SC_OK);

            String errorMessage = StringPool.BLANK;
            int errorType = 0;

            ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);

            if (e instanceof AntivirusScannerException) {
                AntivirusScannerException ase = (AntivirusScannerException) e;

                errorMessage = themeDisplay.translate(ase.getMessageKey());

                errorType = ServletResponseConstants.SC_FILE_ANTIVIRUS_EXCEPTION;
            }

            if (e instanceof DuplicateFileEntryException) {
                errorMessage = themeDisplay.translate("please-enter-a-unique-document-name");
                errorType = ServletResponseConstants.SC_DUPLICATE_FILE_EXCEPTION;
            } else if (e instanceof FileExtensionException) {
                errorMessage = themeDisplay.translate("please-enter-a-file-with-a-valid-extension-x", StringUtil
                        .merge(getAllowedFileExtensions(portletConfig, actionRequest, actionResponse)));
                errorType = ServletResponseConstants.SC_FILE_EXTENSION_EXCEPTION;
            } else if (e instanceof FileNameException) {
                errorMessage = themeDisplay.translate("please-enter-a-file-with-a-valid-file-name");
                errorType = ServletResponseConstants.SC_FILE_NAME_EXCEPTION;
            } else if (e instanceof FileSizeException) {
                long fileMaxSize = PrefsPropsUtil.getLong(PropsKeys.DL_FILE_MAX_SIZE);

                if (fileMaxSize == 0) {
                    fileMaxSize = PrefsPropsUtil.getLong(PropsKeys.UPLOAD_SERVLET_REQUEST_IMPL_MAX_SIZE);
                }

                errorMessage = themeDisplay.translate(
                        "please-enter-a-file-with-a-valid-file-size-no-" + "larger-than-x",
                        TextFormatter.formatStorageSize(fileMaxSize, themeDisplay.getLocale()));

                errorType = ServletResponseConstants.SC_FILE_SIZE_EXCEPTION;
            }

            JSONObject jsonObject = JSONFactoryUtil.createJSONObject();

            jsonObject.put("message", errorMessage);
            jsonObject.put("status", errorType);

            JSONPortletResponseUtil.writeJSON(actionRequest, actionResponse, jsonObject);
        }

        if (e instanceof AntivirusScannerException) {
            SessionErrors.add(actionRequest, e.getClass(), e);
        } else {
            SessionErrors.add(actionRequest, e.getClass());
        }
    } else if (e instanceof DuplicateLockException || e instanceof FileEntryLockException.MustOwnLock
            || e instanceof InvalidFileVersionException || e instanceof NoSuchFileEntryException
            || e instanceof PrincipalException) {

        if (e instanceof DuplicateLockException) {
            DuplicateLockException dle = (DuplicateLockException) e;

            SessionErrors.add(actionRequest, dle.getClass(), dle.getLock());
        } else {
            SessionErrors.add(actionRequest, e.getClass());
        }

        actionResponse.setRenderParameter("mvcPath", "/document_library/error.jsp");
    } else {
        Throwable cause = e.getCause();

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

From source file:com.liferay.exportimport.staging.StagingImpl.java

License:Open Source License

@Override
public JSONObject getExceptionMessagesJSONObject(Locale locale, Exception e,
        ExportImportConfiguration exportImportConfiguration) {

    JSONObject exceptionMessagesJSONObject = JSONFactoryUtil.createJSONObject();

    String errorMessage = StringPool.BLANK;
    JSONArray errorMessagesJSONArray = null;
    int errorType = 0;
    JSONArray warningMessagesJSONArray = null;

    ResourceBundle resourceBundle = ResourceBundleUtil.getBundle("content.Language", locale, getClass());

    Throwable cause = e.getCause();

    if (e instanceof DuplicateFileEntryException) {
        errorMessage = LanguageUtil.get(locale, "please-enter-a-unique-document-name");
        errorType = ServletResponseConstants.SC_DUPLICATE_FILE_EXCEPTION;
    } else if (e instanceof FileExtensionException) {
        errorMessage = LanguageUtil.format(locale,
                "document-names-must-end-with-one-of-the-following-extensions", ".lar", false);
        errorType = ServletResponseConstants.SC_FILE_EXTENSION_EXCEPTION;
    } else if (e instanceof FileNameException) {
        errorMessage = LanguageUtil.get(locale, "please-enter-a-file-with-a-valid-file-name");
        errorType = ServletResponseConstants.SC_FILE_NAME_EXCEPTION;
    } else if (e instanceof FileSizeException || e instanceof LARFileSizeException) {

        if ((exportImportConfiguration != null) && ((exportImportConfiguration
                .getType() == ExportImportConfigurationConstants.TYPE_PUBLISH_LAYOUT_LOCAL)
                || (exportImportConfiguration
                        .getType() == ExportImportConfigurationConstants.TYPE_PUBLISH_LAYOUT_REMOTE)
                || (exportImportConfiguration
                        .getType() == ExportImportConfigurationConstants.TYPE_PUBLISH_PORTLET))) {

            errorMessage = LanguageUtil.get(locale,
                    "file-size-limit-exceeded.-please-ensure-that-the-file-"
                            + "does-not-exceed-the-file-size-limit-in-both-the-"
                            + "live-environment-and-the-staging-environment");
        } else {//www . j  ava 2s  . com
            errorMessage = LanguageUtil.format(locale,
                    "please-enter-a-file-with-a-valid-file-size-no-larger-" + "than-x",
                    TextFormatter.formatStorageSize(_dlValidator.getMaxAllowableSize(), locale), false);
        }

        errorType = ServletResponseConstants.SC_FILE_SIZE_EXCEPTION;
    } else if (e instanceof LARTypeException) {
        LARTypeException lte = (LARTypeException) e;

        if (lte.getType() == LARTypeException.TYPE_COMPANY_GROUP) {
            errorMessage = LanguageUtil.format(resourceBundle, "a-x-can-only-be-imported-to-a-x",
                    "global-site");
        } else if (lte.getType() == LARTypeException.TYPE_LAYOUT_PROTOTYPE) {
            errorMessage = LanguageUtil.format(resourceBundle, "a-x-can-only-be-imported-to-a-x",
                    LanguageUtil.get(locale, "page-template"));
        } else if (lte.getType() == LARTypeException.TYPE_LAYOUT_SET) {
            errorMessage = LanguageUtil.format(resourceBundle, "a-x-can-only-be-imported-to-a-x", "site");
        } else if (lte.getType() == LARTypeException.TYPE_LAYOUT_SET_PROTOTYPE) {

            errorMessage = LanguageUtil.format(resourceBundle, "a-x-can-only-be-imported-to-a-x",
                    LanguageUtil.get(locale, "site-template"));
        } else {
            errorMessage = LanguageUtil.format(resourceBundle, "uploaded-lar-file-type-x-does-not-match-x",
                    new Object[] { lte.getActualLARType(),
                            StringUtil.merge(lte.getExpectedLARTypes(), StringPool.COMMA_AND_SPACE) });
        }

        errorType = ServletResponseConstants.SC_FILE_CUSTOM_EXCEPTION;
    } else if (e instanceof LARFileException) {
        LARFileException lfe = (LARFileException) e;

        if (lfe.getType() == LARFileException.TYPE_INVALID_MANIFEST) {
            errorMessage = LanguageUtil.format(resourceBundle, "invalid-manifest.xml-x", lfe.getMessage());
        } else if (lfe.getType() == LARFileException.TYPE_MISSING_MANIFEST) {
            errorMessage = LanguageUtil.get(resourceBundle, "missing-manifest.xml");
        } else {
            errorMessage = LanguageUtil.get(locale, "please-specify-a-lar-file-to-import");
        }

        errorType = ServletResponseConstants.SC_FILE_CUSTOM_EXCEPTION;
    } else if (e instanceof LayoutImportException || cause instanceof LayoutImportException) {

        LayoutImportException lie = null;

        if (e instanceof LayoutImportException) {
            lie = (LayoutImportException) e;
        } else {
            lie = (LayoutImportException) cause;
        }

        if (lie.getType() == LayoutImportException.TYPE_WRONG_BUILD_NUMBER) {

            errorMessage = LanguageUtil.format(resourceBundle,
                    "lar-build-number-x-does-not-match-portal-build-number-x", lie.getArguments());
        } else if (lie.getType() == LayoutImportException.TYPE_WRONG_LAR_SCHEMA_VERSION) {

            errorMessage = LanguageUtil.format(resourceBundle,
                    "lar-schema-version-x-does-not-match-deployed-export-" + "import-schema-version-x",
                    lie.getArguments());
        } else if (lie.getType() == LayoutImportException.TYPE_WRONG_PORTLET_SCHEMA_VERSION) {

            Object[] arguments = lie.getArguments();

            Portlet portlet = _portletLocalService.getPortletById((String) arguments[1]);

            arguments[1] = portlet.getDisplayName();

            errorMessage = LanguageUtil.format(resourceBundle,
                    "portlet's-schema-version-x-in-the-lar-is-not-valid-for-"
                            + "the-deployed-portlet-x-with-schema-version-x",
                    lie.getArguments());
        } else {
            errorMessage = e.getLocalizedMessage();
        }

        errorType = ServletResponseConstants.SC_FILE_CUSTOM_EXCEPTION;
    } else if (e instanceof LayoutPrototypeException) {
        LayoutPrototypeException lpe = (LayoutPrototypeException) e;

        StringBundler sb = new StringBundler(4);

        sb.append("the-lar-file-could-not-be-imported-because-it-");
        sb.append("requires-page-templates-or-site-templates-that-could-");
        sb.append("not-be-found.-please-import-the-following-templates-");
        sb.append("manually");

        errorMessage = LanguageUtil.get(resourceBundle, sb.toString());

        errorMessagesJSONArray = JSONFactoryUtil.createJSONArray();

        List<Tuple> missingLayoutPrototypes = lpe.getMissingLayoutPrototypes();

        for (Tuple missingLayoutPrototype : missingLayoutPrototypes) {
            JSONObject errorMessageJSONObject = JSONFactoryUtil.createJSONObject();

            String layoutPrototypeUuid = (String) missingLayoutPrototype.getObject(1);

            errorMessageJSONObject.put("info", layoutPrototypeUuid);

            String layoutPrototypeName = (String) missingLayoutPrototype.getObject(2);

            errorMessageJSONObject.put("name", layoutPrototypeName);

            String layoutPrototypeClassName = (String) missingLayoutPrototype.getObject(0);

            errorMessageJSONObject.put("type",
                    ResourceActionsUtil.getModelResource(locale, layoutPrototypeClassName));

            errorMessagesJSONArray.put(errorMessageJSONObject);
        }

        errorType = ServletResponseConstants.SC_FILE_CUSTOM_EXCEPTION;
    } else if (e instanceof LocaleException) {
        LocaleException le = (LocaleException) e;

        errorMessage = LanguageUtil.format(locale,
                "the-available-languages-in-the-lar-file-x-do-not-match-the-" + "site's-available-languages-x",
                new String[] { StringUtil.merge(le.getSourceAvailableLocales(), StringPool.COMMA_AND_SPACE),
                        StringUtil.merge(le.getTargetAvailableLocales(), StringPool.COMMA_AND_SPACE) },
                false);

        errorType = ServletResponseConstants.SC_FILE_CUSTOM_EXCEPTION;
    } else if (e instanceof MissingReferenceException) {
        MissingReferenceException mre = (MissingReferenceException) e;

        if ((exportImportConfiguration != null) && ((exportImportConfiguration
                .getType() == ExportImportConfigurationConstants.TYPE_PUBLISH_LAYOUT_LOCAL)
                || (exportImportConfiguration
                        .getType() == ExportImportConfigurationConstants.TYPE_PUBLISH_LAYOUT_REMOTE)
                || (exportImportConfiguration
                        .getType() == ExportImportConfigurationConstants.TYPE_PUBLISH_PORTLET))) {

            errorMessage = LanguageUtil.get(locale, "there-are-missing-references-that-could-not-be-found-in-"
                    + "the-live-environment-the-following-elements-are-" + "published-from-their-own-site");
        } else {
            errorMessage = LanguageUtil.get(locale,
                    "there-are-missing-references-that-could-not-be-found-in-" + "the-current-site");
        }

        MissingReferences missingReferences = mre.getMissingReferences();

        errorMessagesJSONArray = getErrorMessagesJSONArray(locale,
                missingReferences.getDependencyMissingReferences());

        errorType = ServletResponseConstants.SC_FILE_CUSTOM_EXCEPTION;
        warningMessagesJSONArray = getWarningMessagesJSONArray(locale,
                missingReferences.getWeakMissingReferences());
    } else if (e instanceof PortletDataException) {
        PortletDataException pde = (PortletDataException) e;

        String referrerClassName = pde.getStagedModelClassName();
        String referrerDisplayName = pde.getStagedModelDisplayName();

        String modelResource = ResourceActionsUtil.getModelResource(locale, referrerClassName);

        if (pde.getType() == PortletDataException.DELETE_PORTLET_DATA) {
            if (Validator.isNotNull(pde.getLocalizedMessage())) {
                errorMessage = LanguageUtil.format(locale,
                        "the-following-error-in-x-while-deleting-its-data-" + "has-stopped-the-process-x",
                        new String[] { _portal.getPortletTitle(pde.getPortletId(), locale),
                                pde.getLocalizedMessage() },
                        false);
            } else {
                errorMessage = LanguageUtil.format(locale,
                        "an-unexpected-error-in-x-while-deleting-its-data-" + "has-stopped-the-process",
                        new String[] { _portal.getPortletTitle(pde.getPortletId(), locale) }, false);
            }
        } else if (pde.getType() == PortletDataException.EXPORT_PORTLET_DATA) {

            if (Validator.isNotNull(pde.getLocalizedMessage())) {
                errorMessage = LanguageUtil.format(locale,
                        "the-following-error-in-x-while-exporting-its-data-" + "has-stopped-the-process-x",
                        new String[] { _portal.getPortletTitle(pde.getPortletId(), locale),
                                pde.getLocalizedMessage() },
                        false);
            } else {
                errorMessage = LanguageUtil.format(locale,
                        "an-unexpected-error-in-x-while-exporting-its-data-" + "has-stopped-the-process",
                        new String[] { _portal.getPortletTitle(pde.getPortletId(), locale) }, false);
            }
        } else if (pde.getType() == PortletDataException.IMPORT_PORTLET_DATA) {

            if (Validator.isNotNull(pde.getLocalizedMessage())) {
                errorMessage = LanguageUtil.format(locale,
                        "the-following-error-in-x-while-importing-its-data-" + "has-stopped-the-process-x",
                        new String[] { _portal.getPortletTitle(pde.getPortletId(), locale),
                                pde.getLocalizedMessage() },
                        false);
            } else {
                errorMessage = LanguageUtil.format(locale,
                        "an-unexpected-error-in-x-while-importing-its-data-" + "has-stopped-the-process",
                        new String[] { _portal.getPortletTitle(pde.getPortletId(), locale) }, false);
            }
        } else if (pde.getType() == PortletDataException.INVALID_GROUP) {
            errorMessage = LanguageUtil.format(locale,
                    "the-x-x-could-not-be-exported-because-it-is-not-in-the-" + "currently-exported-group",
                    new String[] { modelResource, referrerDisplayName }, false);
        } else if (pde.getType() == PortletDataException.MISSING_DEPENDENCY) {
            errorMessage = LanguageUtil.format(locale,
                    "the-x-x-has-missing-references-that-could-not-be-found-" + "during-the-process",
                    new String[] { modelResource, referrerDisplayName }, false);
        } else if (pde.getType() == PortletDataException.PREPARE_MANIFEST_SUMMARY) {

            if (Validator.isNotNull(pde.getLocalizedMessage())) {
                errorMessage = LanguageUtil.format(locale,
                        "the-following-error-in-x-while-preparing-its-" + "manifest-has-stopped-the-process-x",
                        new String[] { _portal.getPortletTitle(pde.getPortletId(), locale),
                                pde.getLocalizedMessage() },
                        false);
            } else {
                errorMessage = LanguageUtil.format(locale,
                        "an-unexpected-error-in-x-while-preparing-its-" + "manifest-has-stopped-the-process",
                        new String[] { _portal.getPortletTitle(pde.getPortletId(), locale) }, false);
            }
        } else if (pde.getType() == PortletDataException.STATUS_IN_TRASH) {
            errorMessage = LanguageUtil.format(locale,
                    "the-x-x-could-not-be-exported-because-it-is-in-the-" + "recycle-bin",
                    new String[] { modelResource, referrerDisplayName }, false);
        } else if (pde.getType() == PortletDataException.STATUS_UNAVAILABLE) {
            errorMessage = LanguageUtil.format(locale,
                    "the-x-x-could-not-be-exported-because-its-workflow-" + "status-is-not-exportable",
                    new String[] { modelResource, referrerDisplayName }, false);
        } else if (Validator.isNotNull(referrerDisplayName)) {
            errorMessage = LanguageUtil.format(resourceBundle,
                    "the-following-error-occurred-while-processing-the-x-x-x",
                    new String[] { modelResource, referrerDisplayName, e.getLocalizedMessage() });
        } else {
            errorMessage = e.getLocalizedMessage();
        }

        errorType = ServletResponseConstants.SC_FILE_CUSTOM_EXCEPTION;
    } else if (e instanceof PortletIdException) {
        PortletIdException pie = (PortletIdException) e;

        Portlet portlet = _portletLocalService.getPortletById(pie.getMessage());

        errorMessage = LanguageUtil.format(resourceBundle, "a-x-can-only-be-imported-to-a-x",
                portlet.getDisplayName() + " Portlet");

        errorType = ServletResponseConstants.SC_FILE_CUSTOM_EXCEPTION;
    } else {
        errorMessage = e.getLocalizedMessage();
        errorType = ServletResponseConstants.SC_FILE_CUSTOM_EXCEPTION;
    }

    exceptionMessagesJSONObject.put("message", errorMessage);

    if ((errorMessagesJSONArray != null) && (errorMessagesJSONArray.length() > 0)) {

        exceptionMessagesJSONObject.put("messageListItems", errorMessagesJSONArray);
    }

    exceptionMessagesJSONObject.put("status", errorType);

    if ((warningMessagesJSONArray != null) && (warningMessagesJSONArray.length() > 0)) {

        exceptionMessagesJSONObject.put("warningMessages", warningMessagesJSONArray);
    }

    return exceptionMessagesJSONObject;
}

From source file:com.liferay.portlet.documentlibrary.action.EditEntryAction.java

License:Open Source License

@Override
public void processAction(ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
        ActionRequest actionRequest, ActionResponse actionResponse) throws Exception {

    HttpServletResponse Response = PortalUtil.getHttpServletResponse(actionResponse);

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

    try {//w w  w . j  a v  a  2  s .co  m
        if (cmd.equals(Constants.DELETE)) {
            deleteEntries(actionRequest);
        } else if (cmd.equals(Constants.CANCEL_CHECKOUT)) {
            cancelCheckedOutEntries(actionRequest);
        } else if (cmd.equals(Constants.CHECKIN)) {
            checkInEntries(actionRequest);
        } else if (cmd.equals(Constants.CHECKOUT)) {
            checkOutEntries(actionRequest);
        } else if (cmd.equals(Constants.MOVE)) {
            moveEntries(actionRequest);
        }

        WindowState windowState = actionRequest.getWindowState();

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

            if (Validator.isNotNull(redirect)) {
                actionResponse.sendRedirect(redirect);
            }
        }
    } catch (Exception e) {
        if (e instanceof DuplicateLockException || e instanceof NoSuchFileEntryException
                || e instanceof NoSuchFolderException || e instanceof PrincipalException) {

            if (e instanceof DuplicateLockException) {
                DuplicateLockException dle = (DuplicateLockException) e;

                SessionErrors.add(actionRequest, dle.getClass(), dle.getLock());
            } else {
                SessionErrors.add(actionRequest, e.getClass());
            }

            setForward(actionRequest, "portlet.document_library.error");
        } else if (e instanceof DuplicateFileException || e instanceof DuplicateFolderNameException
                || e instanceof NoSuchFolderException || e instanceof SourceFileNameException) {

            if (e instanceof DuplicateFileException) {
                HttpServletResponse response = PortalUtil.getHttpServletResponse(actionResponse);

                response.setStatus(ServletResponseConstants.SC_DUPLICATE_FILE_EXCEPTION);
            }

            SessionErrors.add(actionRequest, e.getClass());
        } else if (e instanceof AssetCategoryException || e instanceof AssetTagException) {

            SessionErrors.add(actionRequest, e.getClass(), e);
        } else {
            throw e;
        }
    }
}

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

License:Open Source License

/**
 * TODO: Remove. This should extend from EditFileEntryAction once it is
 * modularized./*from w  w w . j  a  v  a 2s  .c om*/
 */
protected void handleUploadException(PortletConfig portletConfig, ActionRequest actionRequest,
        ActionResponse actionResponse, String cmd, Exception e) throws Exception {

    if (e instanceof AssetCategoryException || e instanceof AssetTagException) {

        SessionErrors.add(actionRequest, e.getClass(), e);
    } else if (e instanceof AntivirusScannerException || e instanceof DuplicateFileEntryException
            || e instanceof DuplicateFolderNameException || e instanceof FileExtensionException
            || e instanceof FileMimeTypeException || e instanceof FileNameException
            || e instanceof FileSizeException || e instanceof LiferayFileItemException
            || e instanceof NoSuchFolderException || e instanceof SourceFileNameException
            || e instanceof StorageFieldRequiredException || e instanceof UploadRequestSizeException) {

        if (!cmd.equals(Constants.ADD_DYNAMIC) && !cmd.equals(Constants.ADD_MULTIPLE)
                && !cmd.equals(Constants.ADD_TEMP)) {

            if (e instanceof AntivirusScannerException) {
                SessionErrors.add(actionRequest, e.getClass(), e);
            } else {
                SessionErrors.add(actionRequest, e.getClass());
            }

            return;
        } else if (cmd.equals(Constants.ADD_TEMP)) {
            hideDefaultErrorMessage(actionRequest);
        }

        if (e instanceof AntivirusScannerException || e instanceof DuplicateFileEntryException
                || e instanceof FileExtensionException || e instanceof FileNameException
                || e instanceof FileSizeException || e instanceof UploadRequestSizeException) {

            HttpServletResponse response = PortalUtil.getHttpServletResponse(actionResponse);

            response.setContentType(ContentTypes.TEXT_HTML);
            response.setStatus(HttpServletResponse.SC_OK);

            String errorMessage = StringPool.BLANK;
            int errorType = 0;

            ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);

            if (e instanceof AntivirusScannerException) {
                AntivirusScannerException ase = (AntivirusScannerException) e;

                errorMessage = themeDisplay.translate(ase.getMessageKey());
                errorType = ServletResponseConstants.SC_FILE_ANTIVIRUS_EXCEPTION;
            }

            if (e instanceof DuplicateFileEntryException) {
                errorMessage = themeDisplay.translate("please-enter-a-unique-document-name");
                errorType = ServletResponseConstants.SC_DUPLICATE_FILE_EXCEPTION;
            } else if (e instanceof FileExtensionException) {
                errorMessage = themeDisplay.translate("please-enter-a-file-with-a-valid-extension-x", StringUtil
                        .merge(getAllowedFileExtensions(portletConfig, actionRequest, actionResponse)));
                errorType = ServletResponseConstants.SC_FILE_EXTENSION_EXCEPTION;
            } else if (e instanceof FileNameException) {
                errorMessage = themeDisplay.translate("please-enter-a-file-with-a-valid-file-name");
                errorType = ServletResponseConstants.SC_FILE_NAME_EXCEPTION;
            } else if (e instanceof FileSizeException) {
                long fileMaxSize = PrefsPropsUtil.getLong(PropsKeys.DL_FILE_MAX_SIZE);

                if (fileMaxSize == 0) {
                    fileMaxSize = PrefsPropsUtil.getLong(PropsKeys.UPLOAD_SERVLET_REQUEST_IMPL_MAX_SIZE);
                }

                errorMessage = themeDisplay.translate(
                        "please-enter-a-file-with-a-valid-file-size-no-larger" + "-than-x",
                        TextFormatter.formatStorageSize(fileMaxSize, themeDisplay.getLocale()));

                errorType = ServletResponseConstants.SC_FILE_SIZE_EXCEPTION;
            }

            JSONObject jsonObject = JSONFactoryUtil.createJSONObject();

            jsonObject.put("message", errorMessage);
            jsonObject.put("status", errorType);

            JSONPortletResponseUtil.writeJSON(actionRequest, actionResponse, jsonObject);
        }

        if (e instanceof AntivirusScannerException) {
            SessionErrors.add(actionRequest, e.getClass(), e);
        } else {
            SessionErrors.add(actionRequest, e.getClass());
        }
    } else if (e instanceof DuplicateLockException || e instanceof InvalidFileVersionException
            || e instanceof NoSuchFileEntryException || e instanceof PrincipalException) {

        if (e instanceof DuplicateLockException) {
            DuplicateLockException dle = (DuplicateLockException) e;

            SessionErrors.add(actionRequest, dle.getClass(), dle.getLock());
        } else {
            SessionErrors.add(actionRequest, e.getClass());
        }

        actionResponse.setRenderParameter("mvcPath", "/html/porltet/document_library/error.jsp");
    } else {
        Throwable cause = e.getCause();

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