%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true" session="true"
import="java.io.*"
import="java.net.*"
import="java.util.*"
import="org.opencms.main.OpenCms"
import="org.opencms.file.CmsObject"
import="org.opencms.file.CmsResource"
import="org.opencms.flex.*"
import="org.opencms.i18n.CmsLocaleManager"
import="org.opencms.jsp.*"
import="org.opencms.jsp.util.CmsJspStatusBean"
import="org.opencms.main.CmsException"
import="org.opencms.site.CmsSite"
import="org.opencms.util.*"
import="org.apache.commons.logging.*"
%><%!
private final Log log = LogFactory.getLog(getClass());
private static final void processPage(CmsJspStatusBean cms, HttpServletRequest request, HttpServletResponse response, Integer errorCode, Log log) throws CmsException, IOException {
String siteRoot = cms.getSiteRoot();//.getRequestContext().getSiteRoot();
CmsSite site;
if (siteRoot != null && !"".equals(siteRoot)) {
site = OpenCms.getSiteManager().matchRequest(request);
} else {
site = OpenCms.getSiteManager().getSiteForSiteRoot(siteRoot);
}
if (site == null || "".equals(site.getSiteRoot())) {
site = OpenCms.getSiteManager().getDefaultSite();
}
String errorPage = "/sv/errors/" + errorCode.intValue() + ".html";
log.info(String.format("Processing error %d page [%s]", errorCode, cms.link(errorPage)));
InputStream in = null;
OutputStream out = null;
byte[] buf = new byte[10240];
try {
out = response.getOutputStream();
// out.write((site.getServerPrefix(cms.getCmsObject(), siteRoot) + cms.link(errorPage.replace(site.getSiteRoot(), ""))).getBytes());
in = new URL("http://localhost:8180/DEV/opencms" + errorPage ).openStream();
for (int i = 0; (i = in.read(buf)) != -1;) {
out.write(buf, 0, i);
}
} catch (Exception e) {
e.toString();
}finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}
%><%
CmsJspStatusBean cms = new CmsJspStatusBean(pageContext, request, response, exception);
Integer errorCode = (Integer)request.getAttribute(CmsJspStatusBean.ERROR_STATUS_CODE);
if (errorCode == null) {
errorCode = 404;
}
cms.setStatus(errorCode);
response.setStatus(errorCode);
switch (errorCode.intValue()) {
case 500:
processPage(cms, request, response, errorCode, log);
break;
case 404:
processPage(cms, request, response, errorCode, log);
break;
case 403:
processPage(cms, request, response, 404, log);
break;
case 401:
processPage(cms, request, response, 404, log);
break;
default:
break;
}
%>