Peter Meyer created PLUTO-745:
---------------------------------
Summary: Context root with "/" in the middle leads to an error
Key: PLUTO-745
URL: https://issues.apache.org/jira/browse/PLUTO-745
Project: Pluto
Issue Type: Bug
Components: portal driver
Affects Versions: 3.0.1
Reporter: Peter Meyer
Assignee: Scott Nicklous
A portlet application with context root /online/ReferenzPortlets leads to an
error when submitting a form - the url of the form cannot be executed - HTTP
400.
This is due to the character which replaces the middle "/" in the portlet id
part of the URL.
To my analyses the problem arises in the class
org.apache.pluto.driver.url.impl.PortalURLParserImpl in the method "toString"
at line 454.
for (String pid : portalURL.getPortletIds()) {
pids.add(pid);
buffer.append(TOKEN_DELIM).append(PREFIX).append(PORTLET_ID);
try {
buffer.append(URLEncoder.encode(pid, "UTF-8"));
} catch(Exception e) {
LOG.warn("Could not encode pid=" + pid);
}
buffer.append(DELIM).append(String.valueOf(pids.indexOf(pid)));
}
I suggest to replace the expression URLEncoder.encode(pid, "UTF-8") with
urlEncode(pid). In the decode part there is already the use of the urlDecode
method on the pid part of the URL.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)