Author: simoneg
Date: Mon Jan 25 13:30:51 2010
New Revision: 902806

URL: http://svn.apache.org/viewvc?rev=902806&view=rev
Log:
Workaround web containers inconsistencies about "+" in urls

Modified:
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/Dispatch.java
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/LinkHelper.java

Modified: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/Dispatch.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/Dispatch.java?rev=902806&r1=902805&r2=902806&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/Dispatch.java
 (original)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/Dispatch.java
 Mon Jan 25 13:30:51 2010
@@ -76,18 +76,10 @@
        protected void handle(HttpServletRequest req, HttpServletResponse resp) 
{
                String pathInfo = req.getPathInfo();
                String enc = req.getCharacterEncoding();
-               if (enc == null) enc = "UTF-8";
-               try {
-                       pathInfo = URLDecoder.decode(pathInfo, enc);
-               } catch (UnsupportedEncodingException uee) {
-                       try {
-                               pathInfo = URLDecoder.decode(pathInfo, "UTF-8");
-                       } catch (UnsupportedEncodingException uee2) {}
-               }
                while (pathInfo.indexOf("//") != -1) {
                        pathInfo = pathInfo.replaceAll("//", "/");
                }
-               req.setAttribute("__magma_url", pathInfo);
+               req.setAttribute("magma_url", pathInfo);
                RootWebHandler.getInstance().beforeRequest();
                
                // Find the extension to determine the postprocessing
@@ -247,7 +239,7 @@
                Template t = producer.getTemplate();
                if (t == null) {
                        // If there is not, try using the previous template
-                       Class<Template> tplcl = (Class<Template>) 
session.getAttribute("__magma_lasttemplate");
+                       Class<Template> tplcl = (Class<Template>) 
session.getAttribute("magma_lasttemplate");
                        if (tplcl != null) {
                                try {
                                        t = tplcl.newInstance();
@@ -268,7 +260,7 @@
                t.setCurrent(producer);
                
                // Prepare a previous giver, in case the template needs the 
previous main page
-               final String last = (String) 
session.getAttribute("__magma_lastmain");
+               final String last = (String) 
session.getAttribute("magma_lastmain");
                PreviousGiver giver = new PreviousGiver() {
                        public HtmlProducer getPrevious() {
                                try {
@@ -308,8 +300,8 @@
                
                if (t.wasMain() && producer.isRepeatable()) {
                        System.out.println("Producer has a reproducible main 
path of " + producer.getCompletePath());
-                       session.setAttribute("__magma_lastmain", 
producer.getCompletePath());                   
-                       session.setAttribute("__magma_lasttemplate", 
t.getClass());
+                       session.setAttribute("magma_lastmain", 
producer.getCompletePath());                     
+                       session.setAttribute("magma_lasttemplate", 
t.getClass());
                } else {        
                        System.out.println("Producer has a not reproducible OR 
not main path of " + producer.getCompletePath());
                }

Modified: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/LinkHelper.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/LinkHelper.java?rev=902806&r1=902805&r2=902806&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/LinkHelper.java
 (original)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/LinkHelper.java
 Mon Jan 25 13:30:51 2010
@@ -98,6 +98,10 @@
                                        String converted = 
converters[i].to(param);
                                        try {
                                                converted = 
URLEncoder.encode(converted, "UTF-8");
+                                               // Jetty and Tomcat behaves 
differently in regard to "+" in path info.
+                                               // Jetty does not parse it 
while Tomcat converts it to space.
+                                               // Better not to have "+" at 
all.
+                                               converted = 
converted.replaceAll("\\+", "%20");
                                        } catch (UnsupportedEncodingException 
e) {
                                                // should never happen for UTF-8
                                        }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to