Author: michiel
Date: 2009-05-12 21:34:19 +0200 (Tue, 12 May 2009)
New Revision: 35117
Modified:
mmbase/trunk/applications/taglib/src/org/mmbase/bridge/jsp/taglib/AbstractNodeListTag.java
mmbase/trunk/applications/taglib/src/org/mmbase/bridge/jsp/taglib/ListRelationsTag.java
Log:
MMB-1819
Modified:
mmbase/trunk/applications/taglib/src/org/mmbase/bridge/jsp/taglib/AbstractNodeListTag.java
===================================================================
---
mmbase/trunk/applications/taglib/src/org/mmbase/bridge/jsp/taglib/AbstractNodeListTag.java
2009-05-12 19:33:52 UTC (rev 35116)
+++
mmbase/trunk/applications/taglib/src/org/mmbase/bridge/jsp/taglib/AbstractNodeListTag.java
2009-05-12 19:34:19 UTC (rev 35117)
@@ -220,8 +220,17 @@
listHelper.doStartTagHelper();
if (getReferid() != null) {
- Object o = getObject(getReferid());
- if (o instanceof Collection) {
+ Object o =
org.mmbase.util.Casting.unWrap(getObject(getReferid()));
+ if (o instanceof NodeList) {
+ // ok
+ } else if (o instanceof BridgeList) {
+ BridgeList<?> bl = (BridgeList<?>) o;
+ NodeList nl = new CollectionNodeList(bl, getCloudVar());
+ for (Map.Entry<Object, Object> entry :
bl.getProperties().entrySet()) {
+ nl.setProperty(entry.getKey(), entry.getValue());
+ }
+ o = nl;
+ } else if (o instanceof Collection) {
o = new CollectionNodeList((Collection) o, getCloudVar());
} else {
throw new JspTagException("Context variable " + getReferid() +
" is not a NodeList (or some other Collection of Nodes), but " + (o == null ?
"NULL" : "a " + o.getClass()));
Modified:
mmbase/trunk/applications/taglib/src/org/mmbase/bridge/jsp/taglib/ListRelationsTag.java
===================================================================
---
mmbase/trunk/applications/taglib/src/org/mmbase/bridge/jsp/taglib/ListRelationsTag.java
2009-05-12 19:33:52 UTC (rev 35116)
+++
mmbase/trunk/applications/taglib/src/org/mmbase/bridge/jsp/taglib/ListRelationsTag.java
2009-05-12 19:34:19 UTC (rev 35117)
@@ -33,11 +33,12 @@
private NodeManager nm;
private Node relatedFromNode;
+ private static final String RELATED_FROM = "relatedFromNode";
Node getRelatedfromNode() {
BridgeList<Node> returnList = getReturnList();
- return returnList == null ? null : (Node)
returnList.getProperty("relatedFromNode");
+ return returnList == null ? null : (Node)
returnList.getProperty(RELATED_FROM);
}
@@ -78,7 +79,10 @@
public int doStartTag() throws JspTagException{
int superresult = doStartTagHelper(); // the super-tag handles the
use of referid...
if (superresult != NOT_HANDLED) {
- relatedFromNode = (Node)
listHelper.getReturnList().getProperty("relatedFromNode");
+ relatedFromNode = (Node)
listHelper.getReturnList().getProperty(RELATED_FROM);
+ if (relatedFromNode == null) {
+ throw new IllegalStateException("No 'relatedFromProperty'
found in list " + listHelper.getReturnList().getClass() + " " +
listHelper.getReturnList());
+ }
return superresult;
}
@@ -111,8 +115,11 @@
Queries.sortUniquely(query);
NodesAndTrim result = getNodesAndTrim(query);
- result.nodeList.setProperty("relatedFromNode", relatedFromNode); //
used to be used by mm:relatednode but not any more.
+ assert relatedFromNode != null;
+ result.nodeList.setProperty(RELATED_FROM, relatedFromNode); // used to
be used by mm:relatednode but not any more.
+ assert result.nodeList.getProperty(RELATED_FROM) != null;
+
return setReturnValues(result.nodeList, result.needsTrim);
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs