@Override public void merge(WebFragment webFragment, WebApp webApp, MergeContext mergeContext) throws DeploymentException { for (ErrorPage errorPage : webFragment.getErrorPage()) { MergeItem mergeItem = (MergeItem) mergeContext.getAttribute(createErrorPageKey(errorPage)); if (mergeItem != null) { if (mergeItem.getSourceType().equals(ElementSource.WEB_XML)) { continue; } else if (mergeItem.getValue().equals(errorPage.getLocation())) { boolean isErrorCodeConfigured = errorPage.getErrorCode() != null; throw new DeploymentException(WebDeploymentMessageUtils.createDuplicateKeyValueMessage("error-page", isErrorCodeConfigured ? "error-code" : "exception-type", isErrorCodeConfigured ? "" + errorPage.getErrorCode() : errorPage.getExceptionType(), "location", (String) mergeItem.getValue(), mergeItem.getBelongedURL(), errorPage.getLocation(), mergeContext.getCurrentJarUrl())); } } else { webApp.getErrorPage().add(errorPage); mergeContext.setAttribute(createErrorPageKey(errorPage), new MergeItem(errorPage.getLocation(), mergeContext.getCurrentJarUrl(), ElementSource.WEB_FRAGMENT)); } } }