// validate and update session profile locators if modified
if (updateSessionProfileLocators(requestProfileLocators))
{
// extract page request path from the locators
String requestPath = Folder.PATH_SEPARATOR;
ProfileLocator locator = (ProfileLocator)requestProfileLocators.get(ProfileLocator.PAGE_LOCATOR);
if (locator != null)
{
// use 'page' locator to determine request page by executing
// profile locator to determine path
requestPath = getRequestPathFromLocator(locator);
}
else
{
// 'page' locator unavailable, use first locator since
// all locators should have identical request paths, (do
// not execute profile locator though to determine path:
// simply use the request path)
locator = (ProfileLocator)requestProfileLocators.values().iterator().next();
requestPath = locator.getRequestPath();
}
// attempt to select request page or folder using
// profile locators and site view; if fallback
// enabled, fallback on missing node or access