Update of /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/util
In directory james.mmbase.org:/tmp/cvs-serv11645
Modified Files:
Tag: MMBase-1_8
BasicBacking.java ContextContainer.java
PageContextBacking.java StandaloneContextContainer.java
Log Message:
more fixes related to MMB-1730
See also:
http://cvs.mmbase.org/viewcvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/util
See also: http://www.mmbase.org/jira/browse/MMB-1730
Index: BasicBacking.java
===================================================================
RCS file:
/var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/util/BasicBacking.java,v
retrieving revision 1.7.2.3
retrieving revision 1.7.2.4
diff -u -b -r1.7.2.3 -r1.7.2.4
--- BasicBacking.java 16 May 2007 23:22:56 -0000 1.7.2.3
+++ BasicBacking.java 7 Oct 2008 17:22:41 -0000 1.7.2.4
@@ -28,7 +28,7 @@
* @author Michiel Meeuwissen
* @since MMBase-1.8
- * @version $Id: BasicBacking.java,v 1.7.2.3 2007/05/16 23:22:56 michiel Exp $
+ * @version $Id: BasicBacking.java,v 1.7.2.4 2008/10/07 17:22:41 michiel Exp $
*/
public class BasicBacking extends AbstractMap implements Backing {
@@ -45,14 +45,14 @@
private final Map b = new HashMap(); // the actual backing.
private final boolean isELIgnored;
- private PageContext pageContext;
+ private transient PageContext pageContext;
/**
* @param pc The page-context to which variables must be reflected or
<code>null</code> if this must not happen.
*/
public BasicBacking(PageContext pc, boolean ignoreEL) {
pageContext = pc;
- isELIgnored = ignoreEL ||
"true".equals(pageContext.getServletContext().getInitParameter(ContextTag.ISELIGNORED_PARAM));
+ isELIgnored = ignoreEL || pageContext == null ||
"true".equals(pageContext.getServletContext().getInitParameter(ContextTag.ISELIGNORED_PARAM));
if (! isELIgnored) {
originalPageContextValues = new HashMap();
pageContext.setAttribute(PAGECONTEXT_KEY + uniqueNumber,
originalPageContextValues);
@@ -145,12 +145,14 @@
originalPageContextValues.put((String) key,
pageContext.getAttribute((String) key, SCOPE));
}
+ if (pageContext != null) {
if (value != null) {
pageContext.setAttribute((String) key, Casting.wrap(value,
(CharTransformer) pageContext.findAttribute(ContentTag.ESCAPER_KEY)), SCOPE);
} else {
pageContext.removeAttribute((String) key, SCOPE);
}
}
+ }
public Object put(Object key, Object value) {
mirrorPut(key, value);
return b.put(key, value);
@@ -170,7 +172,7 @@
void release() {
- if (originalPageContextValues != null) {
+ if (originalPageContextValues != null && pageContext != null) {
//log.debug("Restoring pageContext with " +
originalPageContextValues);
// restore the pageContext
Iterator i = originalPageContextValues.entrySet().iterator();
Index: ContextContainer.java
===================================================================
RCS file:
/var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/util/ContextContainer.java,v
retrieving revision 1.53.2.2
retrieving revision 1.53.2.3
diff -u -b -r1.53.2.2 -r1.53.2.3
--- ContextContainer.java 21 Nov 2006 20:39:56 -0000 1.53.2.2
+++ ContextContainer.java 7 Oct 2008 17:22:41 -0000 1.53.2.3
@@ -25,7 +25,7 @@
* there is searched for HashMaps in the HashMap.
*
* @author Michiel Meeuwissen
- * @version $Id: ContextContainer.java,v 1.53.2.2 2006/11/21 20:39:56 michiel
Exp $
+ * @version $Id: ContextContainer.java,v 1.53.2.3 2008/10/07 17:22:41 michiel
Exp $
**/
public abstract class ContextContainer extends AbstractMap implements Map {
@@ -112,7 +112,7 @@
*
* @since MMBase-1.8
*/
- protected abstract Backing getBacking();
+ public abstract Backing getBacking();
public void release(PageContext pc, ContextContainer p) {
Index: PageContextBacking.java
===================================================================
RCS file:
/var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/util/PageContextBacking.java,v
retrieving revision 1.11.2.1
retrieving revision 1.11.2.2
diff -u -b -r1.11.2.1 -r1.11.2.2
--- PageContextBacking.java 21 Nov 2006 20:39:56 -0000 1.11.2.1
+++ PageContextBacking.java 7 Oct 2008 17:22:41 -0000 1.11.2.2
@@ -26,7 +26,7 @@
* @author Michiel Meeuwissen
* @since MMBase-1.8
- * @version $Id: PageContextBacking.java,v 1.11.2.1 2006/11/21 20:39:56
michiel Exp $
+ * @version $Id: PageContextBacking.java,v 1.11.2.2 2008/10/07 17:22:41
michiel Exp $
*/
public class PageContextBacking extends AbstractMap implements Backing {
@@ -35,7 +35,7 @@
private static final int SCOPE = PageContext.PAGE_SCOPE;
- private final PageContext pageContext;
+ private final transient PageContext pageContext;
// We also want to store null, pageContext cannot contain those.
private final Set nulls = new HashSet();
@@ -146,9 +146,15 @@
return pageContext.findAttribute((String) key);
}
public Object getOriginal(Object key) {
+ if (key == null) return null; // pageContext cannot accept null keys
Object value = unwrapped.get(key);
if (value != null) return value;
+ if (pageContext.getRequest() == null) throw new
IllegalArgumentException("PageContext " + pageContext + " has no request");
+ try {
return pageContext.findAttribute((String) key);
+ } catch (Exception e) {
+ throw new RuntimeException(" for " + (key == null ? "NULL" :
(key.getClass() + ":" + key)) + " " + e.getMessage() , e);
+ }
}
public boolean containsKey(Object key) {
return pageContext.findAttribute((String) key) != null ||
nulls.contains(key);
@@ -165,7 +171,7 @@
}
public String toString() {
- return "PAGECONTEXT BACKING " + super.toString();
+ return "PAGECONTEXT BACKING " + pageContext + " " + super.toString();
}
}
Index: StandaloneContextContainer.java
===================================================================
RCS file:
/var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/util/StandaloneContextContainer.java,v
retrieving revision 1.11.2.1
retrieving revision 1.11.2.2
diff -u -b -r1.11.2.1 -r1.11.2.2
--- StandaloneContextContainer.java 22 Nov 2006 14:52:10 -0000 1.11.2.1
+++ StandaloneContextContainer.java 7 Oct 2008 17:22:41 -0000 1.11.2.2
@@ -16,7 +16,7 @@
* This ContextContainer provides its own 'backing', it is used as
'subcontext' in other contextes.
*
* @author Michiel Meeuwissen
- * @version $Id: StandaloneContextContainer.java,v 1.11.2.1 2006/11/22
14:52:10 michiel Exp $
+ * @version $Id: StandaloneContextContainer.java,v 1.11.2.2 2008/10/07
17:22:41 michiel Exp $
* @since MMBase-1.8
**/
@@ -40,7 +40,7 @@
}
- protected Backing getBacking() {
+ public Backing getBacking() {
return backing;
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs