Author: nbubna
Date: Tue Mar  3 20:19:15 2009
New Revision: 749726

URL: http://svn.apache.org/viewvc?rev=749726&view=rev
Log:
view LinkTool should run thru encodeURL to get session id when needed

Modified:
    
velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/LinkTool.java
    
velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java

Modified: 
velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/LinkTool.java
URL: 
http://svn.apache.org/viewvc/velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/LinkTool.java?rev=749726&r1=749725&r2=749726&view=diff
==============================================================================
--- 
velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/LinkTool.java 
(original)
+++ 
velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/LinkTool.java 
Tue Mar  3 20:19:15 2009
@@ -69,6 +69,7 @@
     public static final String INCLUDE_REQUEST_PARAMS_KEY = 
"includeRequestParams";
 
     protected HttpServletRequest request;
+    protected HttpServletResponse response;
     protected boolean includeRequestParams;
 
     public LinkTool()
@@ -96,7 +97,7 @@
         }
         
         // set default/start values from request & response
-        HttpServletResponse response =
+        this.response =
             (HttpServletResponse)props.getValue(ViewContext.RESPONSE);
         setCharacterEncoding(response.getCharacterEncoding());
         setFromRequest(this.request);
@@ -303,4 +304,25 @@
         return copy.toString();
     }
 
+    /**
+     * Overrides to use response.encodeURL to get session id into URL
+     * if sessions are used but cookies are not supported.
+     */
+    @Override
+    public String toString()
+    {
+        String str = super.toString();
+        if (str.length() == 0)
+        {
+            // avoid a potential NPE from Tomcat's response.encodeURL impl
+            return str;
+        }
+        else
+        {
+            // encode session ID into URL if sessions are used but cookies are
+            // not supported
+            return response.encodeURL(str);
+        }
+    }
+
 }

Modified: 
velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java
URL: 
http://svn.apache.org/viewvc/velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java?rev=749726&r1=749725&r2=749726&view=diff
==============================================================================
--- 
velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java
 (original)
+++ 
velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java
 Tue Mar  3 20:19:15 2009
@@ -41,8 +41,6 @@
     public static final String AUTO_IGNORE_PARAMETERS_KEY = 
"auto-ignore-parameters";
 
     @Deprecated
-    protected HttpServletResponse response;
-    @Deprecated
     protected ServletContext application;
 
     private HashSet<String> parametersToIgnore;


Reply via email to