[overlord-commits] Overlord SVN: r846 - bpm-console/trunk/gui/war/src/main/java/jmaki/xhp.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Wed Oct 21 15:57:19 EDT 2009


Author: heiko.braun at jboss.com
Date: 2009-10-21 15:57:19 -0400 (Wed, 21 Oct 2009)
New Revision: 846

Modified:
   bpm-console/trunk/gui/war/src/main/java/jmaki/xhp/HttpClient.java
   bpm-console/trunk/gui/war/src/main/java/jmaki/xhp/XmlHttpProxy.java
Log:
Fix BPMC-25: XmlProxy chokes on cookies

Modified: bpm-console/trunk/gui/war/src/main/java/jmaki/xhp/HttpClient.java
===================================================================
--- bpm-console/trunk/gui/war/src/main/java/jmaki/xhp/HttpClient.java	2009-10-21 13:29:22 UTC (rev 845)
+++ bpm-console/trunk/gui/war/src/main/java/jmaki/xhp/HttpClient.java	2009-10-21 19:57:19 UTC (rev 846)
@@ -82,8 +82,11 @@
   {
     if(this.callback!=null)
     {
-      for(XmlHttpProxy.Cookie c : callback.getCookies())
+      Map<String, XmlHttpProxy.Cookie> cookies = callback.getCookies();
+      Iterator it = cookies.keySet().iterator();
+      while(it.hasNext())
       {
+        XmlHttpProxy.Cookie c = cookies.get(it.next());
         if(headers==null) headers = new HashMap();
         headers.put(
             "Cookie", c.name + "=" + c.value // + "; Path=" + c.path

Modified: bpm-console/trunk/gui/war/src/main/java/jmaki/xhp/XmlHttpProxy.java
===================================================================
--- bpm-console/trunk/gui/war/src/main/java/jmaki/xhp/XmlHttpProxy.java	2009-10-21 13:29:22 UTC (rev 845)
+++ bpm-console/trunk/gui/war/src/main/java/jmaki/xhp/XmlHttpProxy.java	2009-10-21 19:57:19 UTC (rev 846)
@@ -39,11 +39,11 @@
 
   public XmlHttpProxy() {}
 
-  private Set<Cookie> cookies = new HashSet<Cookie>();
+  private Map<String, Cookie> cookies = new HashMap<String, Cookie>();
 
   public interface CookieCallback
   {
-    Set<Cookie> getCookies();  
+    Map<String, Cookie> getCookies();
   }
 
   public XmlHttpProxy(String proxyHost, int proxyPort) {
@@ -142,7 +142,7 @@
     CookieCallback callback = new CookieCallback()
     {
 
-      public Set<Cookie> getCookies()
+      public Map<String, Cookie> getCookies()
       {
         return accessCookies();
       }
@@ -184,8 +184,12 @@
         }
       }
 
-      for(Cookie exists : cookies)
+
+      List<String> toBeRemoved = new ArrayList<String>();
+      Iterator it = cookies.keySet().iterator();
+      while(it.hasNext())
       {
+        Cookie exists = cookies.get(it.next());
         if(exists.name.equals(c.name))
         {
           String msg = exists.value.equals(c.value) ?
@@ -194,11 +198,17 @@
 
           System.out.println("Cookie '"+exists.name+"' exists: " + msg);
           // avoid doubles
-          cookies.remove(exists);
+          toBeRemoved.add(exists.name);
         }
       }
-      
-      cookies.add(c);
+
+      // clean up
+      for(String s : toBeRemoved)
+      {
+        cookies.remove(s);
+      }
+
+      cookies.put(c.name, c);
     }
     
     if(null==in)
@@ -260,7 +270,7 @@
     }
   }
 
-  private Set<Cookie> accessCookies()
+  private Map<String,Cookie> accessCookies()
   {
     return cookies;
   }



More information about the overlord-commits mailing list