The current flow code has a problem when passing Java object from the flow to the view using the sendPage and sendPageAndWait functions: all the values in the map that is passed as the second argument to the function get converted to strings. This makes it impossible to access field values using JXPath, as described in the documentation.

I've come up with the following fix. It does not break any of the examples and I've tested that Java objects are correctly passed. However, it was more or less a wild guess and I'd like the fix to be reviewed by Ovidiu or someone more knowledgeable than me about the internals of Rhino and the flow.

Here's the diff,

Ugo


Index: JSCocoon.java
===================================================================
RCS file: /home/cvspublic/xml-cocoon2/src/java/org/apache/cocoon/components/flow/javascript/JSCocoon.java,v
retrieving revision 1.10
diff -u -r1.10 JSCocoon.java
--- JSCocoon.java 5 Dec 2002 09:37:20 -0000 1.10
+++ JSCocoon.java 8 Jan 2003 20:21:13 -0000
@@ -271,7 +271,8 @@
if (value == Undefined.instance)
value = null;
else
- value = ScriptRuntime.toPrimitive(value);
+ // value = ScriptRuntime.toPrimitive(value);
+ value = jsobjectToObject(value);
hash.put(key, value);
}
return hash;


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to