tree2の仕様なのかバグなのか

ユーザごとにメニュー用ツリーの内容が変わるようなアプリケーションを作っていたら、以下のようなエラーがでた(MyFaces1.0.9)。

java.lang.IllegalArgumentException: Node with id 0:2. Failed to parse 0:2
 at org.apache.myfaces.custom.tree2.TreeModel.getNodeById(TreeModel.java:153)
 at org.apache.myfaces.custom.tree2.TreeModel.setNodeId(TreeModel.java:71)
 at org.apache.myfaces.custom.tree2.UITreeData.setNodeId(UITreeData.java:290)
 at org.apache.myfaces.custom.tree2.HtmlTree.setNodeId(HtmlTree.java:80)
 at org.apache.myfaces.custom.tree2.HtmlTreeRenderer.decode(HtmlTreeRenderer.java:104)

tree2のソースを見てみたら、どうやらツリーノードの展開箇所をCookieに覚えさせてるため、ログアウト時にinvalidate()なんかでセッションを無効化しても昔の展開情報を覚えっぱなしらしい(ちなみにルート下の2番目と3番目が展開されていたら"0:2=x;0:3=x"という値が保持される。階層が深くなると「:」が増えて、一回展開したものを閉じた場合は「c」になる)。
で、今回のケースでは長いツリーの下の方を展開してから短いツリーを表示したため、ツリーの長さを超えたノードの展開情報が存在していて怒られたらしい。
……って、勝手にコンポーネントごときで自前のCookie作るなよ。client側で展開するタイプのツリー用なんだろうけど、もう少しどうにかならんかね。
仕方が無いので今回はLogin画面のbodyタグのonLoadで以下のJavaScriptを呼ぶ形で対応。

function deleteCookie(dataName) { document.cookie = dataName + "=;expires=Thu, 01-Jan-1970 09:00:00 GMT;"; }

Cookieの名前にはtree2コンポーネントのidが設定されるらしいので上記関数の引数にはコンポーネントのidをいれることになる。
……って、いうことは「異なるページでうっかり同じコンポーネントidのtree2を複数個作っちゃうとみんな同じところが展開されたり展開されなかったり」という仕様になるのか?

MyFaces1.1.0以降のバージョンでは既に何か対応が入ってるかも。