Author: vvalchev
Date: Wed Mar 28 09:39:05 2012
New Revision: 1306227

URL: http://svn.apache.org/viewvc?rev=1306227&view=rev
Log:
Fixed FELIX-3408 Web Console date chooser shows garbage text
https://issues.apache.org/jira/browse/FELIX-3408

Modified:
    
felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java

Modified: 
felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java?rev=1306227&r1=1306226&r2=1306227&view=diff
==============================================================================
--- 
felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
 (original)
+++ 
felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
 Wed Mar 28 09:39:05 2012
@@ -421,6 +421,23 @@ public class OsgiManager extends Generic
         // (we are authorative for our URL space and no other servlet should 
interfere)
         res.flushBuffer();
     }
+    
+    private void ensureLocaleCookieSet(HttpServletRequest request, 
HttpServletResponse response, Locale locale) {
+        Cookie[] cookies = request.getCookies();
+        boolean hasCookie = false;
+        for(int i=0; cookies != null && i<cookies.length;i++) {
+            if (COOKIE_LOCALE.equals(cookies[i].getName()) ) {
+                hasCookie = true;
+                break;
+            }
+        }
+        if (!hasCookie) {
+            Cookie cookie = new Cookie(COOKIE_LOCALE, locale.toString());
+            
cookie.setPath((String)request.getAttribute(WebConsoleConstants.ATTR_APP_ROOT));
+            cookie.setMaxAge(20 * 365 * 24 * 60 * 60); // 20 years
+            response.addCookie(cookie);
+        }
+    }
 
     private void service(HttpServletRequest request, HttpServletResponse 
response)
         throws ServletException, IOException
@@ -466,6 +483,9 @@ public class OsgiManager extends Generic
             request.setAttribute(ATTR_APP_ROOT_OLD,
                 request.getContextPath() + request.getServletPath());
 
+            // fix for https://issues.apache.org/jira/browse/FELIX-3408
+            ensureLocaleCookieSet(request, response, locale);
+
             // wrap the response for localization and template variable 
replacement
             request = wrapRequest(request, locale);
             response = wrapResponse(request, response, plugin);


Reply via email to