You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@velocity.apache.org by cb...@apache.org on 2019/07/18 17:02:16 UTC
svn commit: r1863325 -
/velocity/tools/trunk/velocity-tools-view/src/main/java/org/apache/velocity/tools/view/BreadcrumbTool.java
Author: cbrisson
Date: Thu Jul 18 17:02:15 2019
New Revision: 1863325
URL: http://svn.apache.org/viewvc?rev=1863325&view=rev
Log:
[tools/view] Have the BreadcrumbTool decode URIs
Modified:
velocity/tools/trunk/velocity-tools-view/src/main/java/org/apache/velocity/tools/view/BreadcrumbTool.java
Modified: velocity/tools/trunk/velocity-tools-view/src/main/java/org/apache/velocity/tools/view/BreadcrumbTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/trunk/velocity-tools-view/src/main/java/org/apache/velocity/tools/view/BreadcrumbTool.java?rev=1863325&r1=1863324&r2=1863325&view=diff
==============================================================================
--- velocity/tools/trunk/velocity-tools-view/src/main/java/org/apache/velocity/tools/view/BreadcrumbTool.java (original)
+++ velocity/tools/trunk/velocity-tools-view/src/main/java/org/apache/velocity/tools/view/BreadcrumbTool.java Thu Jul 18 17:02:15 2019
@@ -26,9 +26,12 @@ import org.apache.velocity.tools.generic
import org.apache.velocity.tools.generic.ValueParser;
import javax.servlet.http.HttpServletRequest;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import java.util.Optional;
/**
* <p>Helper tool to display a navigation breadcrumb to the end user.</p>
@@ -164,7 +167,17 @@ public class BreadcrumbTool extends Loca
public void setRequest(HttpServletRequest request)
{
this.request = request;
+ String encoding = Optional.ofNullable(request.getCharacterEncoding()).orElse("UTF-8");
String uri = request.getRequestURI();
+ try
+ {
+ uri = URLDecoder.decode(uri, encoding);
+ }
+ catch (UnsupportedEncodingException uee)
+ {
+ getLog().error("Cannot decode URI using encoding {}", encoding);
+ return;
+ }
// infer extension
String ext = getExtension(uri);
// deduce default index page