[ http://issues.apache.org/jira/browse/COCOON-1655?page=all ]

Simone Gianni updated COCOON-1655:
----------------------------------

    Attachment: javaflow-continuationstack.diff

Unfied diff of the given patch applied to latest Continuation.java. 

Tested that it works correctly with samples (that means, at least samples keep 
working) but not on the specified case of a flow calling another flow ..  
anyway theorically it should work.

P.S. in doubt i marked the attachment as "not intended for inclusion", since 
IANAL and dunno if the original author granted the licence for incusion.

> JavaFlow/CForm/select-list crash
> --------------------------------
>
>          Key: COCOON-1655
>          URL: http://issues.apache.org/jira/browse/COCOON-1655
>      Project: Cocoon
>         Type: Bug

>   Components: Blocks: Java Flow
>     Versions: 2.1.7
>  Environment: Operating System: other
> Platform: Other
>     Reporter: Benoit Deshaies
>     Assignee: Cocoon Developers Team
>  Attachments: javaflow-continuationstack.diff
>
> I get an error whenever I include an <fd:selection-list src="cocoon:/XYZ"> 
> where
> both the form and the XYZ pipeline use JavaFlow. The error is:
> No continuation is running 
> cause: java.lang.IllegalStateException: No continuation is running
> java.lang.IllegalStateException: No continuation is running
>       at
> org.apache.cocoon.components.flow.java.Continuation.suspend(Continuation.java:79)
>       at
> org.apache.cocoon.components.flow.java.AbstractContinuable.sendPageAndWait(AbstractContinuable.java:75)
>       at 
> org.apache.cocoon.forms.flow.java.FormInstance.show(FormInstance.java:181)
> The reason is that when cocoon:/XYZ runs, a continuation is created for the 
> same
> thread as the form continuation. The continuationsmap in Continuation class 
> gets
> overwritten. When cocoon:/XYZ returns, the map is cleared for the thread,
> leaving no continuation for the form.
> Here's a bit of code from the app to help explain.
> The form contains a selection list defined as:
> <fd:field id="user">
>    <fd:datatype base="string"/>
>    <fd:selection-list src="cocoon:/UserSelectList" dynamic="true"/>
> </fd:field>
> The sitemap contains:
> <map:match pattern="UserSelectList">
>    <map:call function="generateUserList"/>
> </map:match>
> Then I have the following JavaFlow
> public void doGenerateUserList() throws Exception {
>    Collection userList = databaseManager.getUserList();
>    sendPage("user_list", new VarMap().add("list", userList) );
> }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira