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