You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Jeremy Quinn <je...@media.demon.co.uk> on 2004/08/19 18:48:28 UTC
flowscript execution order going wrong
Hi All
I am wracking my brains over a strange problem in FlowScript.
I have a form, where you can add items to a Repeater. As there are
24,000 possible items that may be added, I have a separate (non-cforms)
screen to allow you to search and browse for items to add. When this
function returns, my code somehow gets back into that function and I
get a stack overflow. I wrote code similar to this on a project that
used 2.1.4, without this problem.
Here is a cutdown version of the code:
function doUploadImage(form) {
<snip/>
while (true) {
cocoon.log.info("started while loop in doUploadImage");
form.load(image);
<snip/>
cocoon.log.info("showing IMAGE form");
form.showForm(cocoon.parameters["screen"], selections);
cocoon.log.info("IMAGE form submitted with: " + form.submitId);
if ("choosemesh".equals(form.submitId)) {
cocoon.log.info("chooseMesh about to be called");
chooseMesh(factory, form, image);
cocoon.log.info("doUploadImage continue from chooseMesh");
continue;
} else if ("submit".equals(form.submitId)) {
<snip/>
}
<snip/>
} // end while
<snip/>
}
function chooseMesh (factory, form, image) {
<snip/>
try {
while (true) {
cocoon.log.info ("started while loop in chooseMesh");
cocoon.sendPageAndWait ("screen/choosemesh", {record: record, term:
term, page: page, results: results});
var command = cocoon.request.get ("COMMAND_PARAM");
if ("CANCEL_ACTION".equals (command)) { // user cancelling
cocoon.log.info ("chooseMesh, break from CANCEL_ACTION");
break;
} else if ("NAV_ACTION".equals (command)) {
<snip/>
} else if ("SEARCH_ACTION".equals (command)) {
<snip/>
} else if ("PAGE_ACTION".equals (command)) { <snip/>
} else if ("CHOOSE_ACTION".equals (command)) { <snip/>
}
} // end while
<snip/>
} catch (e) {
<snip/>
} finally {
<snip/>
cocoon.log.info ("exiting chooseMesh");
}
}
so, if I run the code, this is the trace in flow.log, when I activate
the 'chooser' then hit the 'cancel' button :
INFO started while loop in doUploadImage
INFO showing IMAGE form
INFO IMAGE form submitted with: choosemesh
INFO chooseMesh about to be called
INFO started while loop in chooseMesh
INFO chooseMesh, break from CANCEL_ACTION
INFO exiting chooseMesh
INFO doUploadImage continue from chooseMesh
INFO started while loop in doUploadImage
INFO showing IMAGE form
up until here, everything behaves as you would expect
but then, the code dives back into the middle of the chooseMesh function
INFO chooseMesh, break from CANCEL_ACTION
INFO exiting chooseMesh
INFO doUploadImage continue from chooseMesh
INFO started while loop in doUploadImage
INFO showing IMAGE form
INFO chooseMesh, break from CANCEL_ACTION
INFO exiting chooseMesh
. . . repeats . . .
What am I doing wrong ????
Thanks for any sugestions
regards Jeremy
--------------------------------------------------------
If email from this address is not signed
IT IS NOT FROM ME
Always check the label, folks !!!!!
--------------------------------------------------------