actionChainですが

こんなことはあまりないとは思うんですが。


ビューでアクションのリダイレクトができます。

[View]
success = "action:action_name"

リダイレクトしまくった結果、一度実行したアクションにリダイレクトした場合うまく動きません。

Action_A
[View]
success = "action:action_B"

Action_B
[View]
success = "action:action_A"

この場合永久ループするかもしれませんが、それは置いておきます。
ActionChain::add()で既にactionChainに登録されているアクションを再追加した場合に
実行するアクションのリストに追加されないのが原因です。
こんな感じにするとよいかもしれません。


actionChain内でリストを管理しているのは、_position プロパティなので getSize() は_position を見た方がいいと思う。

ActionChain::add() の途中

if (isset($this->_list[$name]) && is_object($this->_list[$name])) {
    $log->info("このActionは既に登録されています(${name})", "ActionChain#add");
    $this->_position[] = $name; // 追加
    return true;
}

ActionChain::getSize()
function getSize()
{
    //return count($this->_list);
    return count($this->_position);
}

いかがでしょう?