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