Update of
/var/cvs/contributions/CMSContainer/cmsc/portal/src/java/com/finalist/cmsc/portalImpl
In directory
james.mmbase.org:/tmp/cvs-serv24519/cmsc/portal/src/java/com/finalist/cmsc/portalImpl
Modified Files:
PortalErrorServlet.java
Log Message:
CMSC-341 Rewritten navigation optional items
See also:
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/portal/src/java/com/finalist/cmsc/portalImpl
See also: http://www.mmbase.org/jira/browse/CMSC-341
Index: PortalErrorServlet.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer/cmsc/portal/src/java/com/finalist/cmsc/portalImpl/PortalErrorServlet.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- PortalErrorServlet.java 7 Jan 2008 22:21:14 -0000 1.10
+++ PortalErrorServlet.java 1 Feb 2008 16:22:30 -0000 1.11
@@ -23,6 +23,7 @@
import org.apache.commons.logging.LogFactory;
import com.finalist.cmsc.beans.om.Site;
+import com.finalist.cmsc.navigation.ServerUtil;
import com.finalist.cmsc.portalImpl.registry.PortalRegistry;
import com.finalist.cmsc.services.sitemanagement.SiteManagement;
import com.finalist.pluto.portalImpl.aggregation.ScreenFragment;
@@ -72,7 +73,18 @@
}
if (PortletContainerFactory.getPortletContainer().isInitialized()) {
- PortalEnvironment env = new PortalEnvironment(request, response,
config);
+ String errorUri = (String) request.getAttribute(ERROR_REQUEST_URI);
+ if (errorUri != null) {
+ if (request.getContextPath() != null
+ && !request.getContextPath().equals("/")) {
+ errorUri =
errorUri.substring(request.getContextPath().length());
+ }
+ }
+ // The incoming request has a servletPath of /PortalError. The
mapped url to this servlet.
+ // Pretend it is the uri which has the error in itss
+ HttpServletRequest errorUriRequest = new
ErrorHttpServletRequest(request, errorUri);
+
+ PortalEnvironment env = new PortalEnvironment(errorUriRequest,
response, config);
PortalURL currentURL = env.getRequestedPortalURL();
try {
String path = extractPath(request, currentURL);
@@ -95,15 +107,17 @@
}
}
if (errorPageSite != null) {
- String errorPagePath = errorPageSite.getUrlfragment() + PATH_SP
+ statusCode;
-
logError(request);
- HttpServletRequest errorRequest = new
ErrorHttpServletRequest(request, errorPagePath);
+
+ HttpServletRequest errorRequest = new
ErrorHttpServletRequest(request, errorPageSite.getUrlfragment(),
String.valueOf(statusCode));
PortalEnvironment errorEnv = new
PortalEnvironment(errorRequest, response, config);
+
PortalRegistry registry =
PortalRegistry.getPortalRegistry(request);
- response.setContentType(CONTENT_TYPE);
ScreenFragment oldScreen = registry.getScreen();
+ response.setContentType(CONTENT_TYPE);
+
+ String errorPagePath = errorPageSite.getUrlfragment() +
PATH_SP + statusCode;
boolean renderSucceed = doRender(errorRequest, response,
errorPagePath);
if (!renderSucceed) {
defaultError(request, response, statusCode);
@@ -177,11 +191,23 @@
class ErrorHttpServletRequest extends HttpServletRequestWrapper {
private String errorPagePath;
+ private String serverName;
- public ErrorHttpServletRequest(HttpServletRequest request, String
errorPagePath) {
+ public ErrorHttpServletRequest(HttpServletRequest request, String
errorServletPath) {
super(request);
- this.errorPagePath = errorPagePath;
+ this.errorPagePath = errorServletPath;
+ }
+
+ public ErrorHttpServletRequest(HttpServletRequest request, String
errorSitePath, String errorServletPath) {
+ super(request);
+ if (ServerUtil.useServerName()) {
+ serverName = errorSitePath;
+ errorPagePath = errorServletPath;
+ }
+ else {
+ this.errorPagePath = errorSitePath + PATH_SP + errorServletPath;
+ }
}
@Override
@@ -189,5 +215,12 @@
return errorPagePath;
}
+ @Override
+ public String getServerName() {
+ if (serverName != null) {
+ return serverName;
+ }
+ return super.getServerName();
+ }
}
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs