Update of /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/util
In directory james.mmbase.org:/tmp/cvs-serv17343

Modified Files:
        PageContextBacking.java 
Log Message:
entryset did not reaturn all values also returned by get methods. entrySet now 
also return 'implicitely' registered var (already in the pageContext)


See also: 
http://cvs.mmbase.org/viewcvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/util


Index: PageContextBacking.java
===================================================================
RCS file: 
/var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/util/PageContextBacking.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- PageContextBacking.java     14 Jul 2007 09:25:16 -0000      1.16
+++ PageContextBacking.java     26 Jun 2008 10:30:13 -0000      1.17
@@ -26,7 +26,7 @@
 
  * @author Michiel Meeuwissen
  * @since MMBase-1.8
- * @version $Id: PageContextBacking.java,v 1.16 2007/07/14 09:25:16 michiel 
Exp $
+ * @version $Id: PageContextBacking.java,v 1.17 2008/06/26 10:30:13 michiel 
Exp $
  */
 
 public  class PageContextBacking extends AbstractMap<String, Object> 
implements Backing {
@@ -79,24 +79,30 @@
 
     public Set<Map.Entry<String, Object>> entrySet() {
         return new AbstractSet<Map.Entry<String, Object>>() {
-                Collection<String> names = unwrapped.keySet();
+            Set<String> names = new 
HashSet<String>(Collections.list(pageContext.getAttributeNamesInScope(PageContext.PAGE_SCOPE)));
+
+            {
+                
names.addAll(Collections.list(pageContext.getAttributeNamesInScope(PageContext.REQUEST_SCOPE)));
+                if (pageContext.getSession() != null) {
+                    
names.addAll(Collections.list(pageContext.getAttributeNamesInScope(PageContext.SESSION_SCOPE)));
+                }
+                
names.addAll(Collections.list(pageContext.getAttributeNamesInScope(PageContext.APPLICATION_SCOPE)));
+                names.addAll(nulls);
+            }
+
+            ///Collection<String> names = unwrapped.keySet();
                 public Iterator<Map.Entry<String, Object>> iterator() {
                     return new Iterator<Map.Entry<String, Object>>() {
-                            Iterator<String> back = names.iterator();
-                            Iterator<String> nul  = null;
+                    Iterator<String> i = names.iterator();
                             String name;
                             public Map.Entry<String, Object> next() {
-                                if (nul == null) {
-                                    name = back.next();
-                                } else {
-                                    name = nul.next();
-                                }
+                        name = i.next();
+
                                 return new Map.Entry<String, Object>() {
                                         public String  getKey() {
                                             return name;
                                         }
                                         public Object getValue() {
-                                            if (nul == null) {
                                                 try {
                                                     return 
pageContext.findAttribute(name);
                                                 } catch 
(java.lang.IllegalStateException ise) {
@@ -104,9 +110,6 @@
                                                     log.warn(ise);
                                                     return null;
                                                 }
-                                            } else {
-                                                return null;
-                                            }
                                         }
                                         public Object setValue(Object value) {
                                             Object was = 
pageContext.findAttribute(name);
@@ -121,9 +124,7 @@
                                     };
                             }
                             public boolean hasNext() {
-                                if (back.hasNext()) return true;
-                                if (nul == null) nul = nulls.iterator();
-                                return nul.hasNext();
+                        return i.hasNext();
                             }
                             public void remove() {
                                 pageContext.removeAttribute(name, SCOPE);
@@ -149,6 +150,7 @@
         }
         return unwrapped.put(key, value);
     }
+
     public Object get(Object key) {
         if (key instanceof String) {
             return pageContext.findAttribute((String) key);
@@ -180,7 +182,7 @@
     }
 
     public String toString() {
-        return "PAGECONTEXT BACKING " + super.toString() + " backed by " + 
pageContext;
+        return "PAGECONTEXT BACKING " + super.toString();
     }
 
 }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to