Teeda for Portlet

MyFaces で作っていたブログポートレットを Teeda に置き換えたら、ClassCastException を食らった・・・。はて、誰が悪いのだろうか。仕様を確認しないとわからん。うーん、今日は寝て、明日考えよ。

java.lang.ClassCastException: javax.faces.component.UIOutput
at org.seasar.teeda.core.render.html.HtmlOutputTextRenderer.encodeEnd(HtmlOutputTextRenderer.java:40)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:345)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:54)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:336)
at org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChild(RendererUtils.java:436)
at org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChildren(RendererUtils.java:419)

Teeda for Portlet

id をExternalContext#encodeNamespace(String)で変換される修正を入れておきました。MyFacesの問題があるような修正ではないので、ユーザーが与えた id も変換されると思います(MyFacesの方はStanをプッシュしないと直らんと思う・・・一応、バグをリオープンしたおいた方がいいのかな・・・)。これにより、ポータルサーバー上に複数のポートレットをおいたとしても、各ポートレットで id が重複することはないと思います。