StackTrace ( )
FacesManages.beforeRedirect( StackTrace)
beforeRedirect
if (isDifferentConversationId(currentPage, targetPage))
updateCurrentConversationId(targetPage.getConversationId());
...
updateCurrentConversationId Stack , . StackTrace
public void updateCurrentConversationId(String id) {
if (id != null && id.equals(currentConversationId)) {
return;
}
, , Stack . - ( ) Seam
(. timeout = "0" )
<page view-id="/pageA.xhtml" timeout="0">
<navigation>
<rule if-outcome="showPageB">
<redirect view-id="/pageB.xhtml" />
</rule>
</navigation>
</page>
, ! , , ,
UPDATE
< -/ > ( )
<page view-id="/pageA.xhtml">
<navigation>
<rule if-outcome="showPageB">
<end-conversation/>
<redirect view-id="/pageB.xhtml" />
</rule>
</navigation>
</page>
(. -)
<page view-id="/pageA.xhtml">
<navigation>
<rule if-outcome="showPageB">
<end-conversation before-redirect="true"/>
<redirect view-id="/pageB.xhtml" />
</rule>
</navigation>
</page>
, !
beforeRedirect
. .
1 ° , # { .longRunning} true, B. " ", , .
Seam URL.
" "
Seam Seam URL
, A, , , Seam , URL- -, -, .
, , ,
...
<core:manager conversation-timeout="5000"/>
., # {chat.timeout}. - 5 5000 . 5 ( 10 ) . , .