Neil Griffin created PLUTO-723:
----------------------------------
Summary: PortletV3Demo DependencyPortlet does not encode the
exception message
Key: PLUTO-723
URL: https://issues.apache.org/jira/browse/PLUTO-723
Project: Pluto
Issue Type: Bug
Components: demo portlets
Affects Versions: 3.0.1
Reporter: Neil Griffin
Assignee: Neil Griffin
Fix For: 3.0.2
The PortletV3Demo has the following try/catch block:
{code:java|title=DependencyPortlet.java}
try {
resp.addDependency("Invalid", "attempt", "1.1.1", dep);
xmap.put(disp, "No exception");
} catch (Exception e) {
xmap.put(disp, e.toString());
}
{code}
The call to {{e.toString}} will put the textual message of the exception into
the map, which eventually gets rendered inside the portlet:
{code:html|title=dependencyDialog.jsp}
<h3>Tests for Bad Dependency Strings:</h3>
<c:forEach items="${xmap}" var="entry">
<p>
String: ${entry.key }<br>
Exception: ${entry.value }
</p>
</c:forEach>
{code}
The problem is that the {{e.toString}} textual message might contain special
HTML characters such as the less-than (<) character (as is the case with
Liferay Portal) which needs to be encoded. Otherwise the {{<script>}} that
follows will not become part of the DOM:
{code:html|dependencyDialog.jsp}
<script>
$(document).ready(function(){
$("#<portlet:namespace/>button").click(function(){
var txt = "jQuery version: " + $().jquery;
$("#<portlet:namespace/>fadeText").text(txt);
$("#<portlet:namespace/>fadeBox").fadeIn(3000);
});
});
</script>
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)