PALポータル

CMSポートレット関連のバグをいろいろと処理して、リリースにかなり近づいたと思う。あとは、IE で、無駄なスペースがあるのでCSSを修正するくらいだろうか。そんでもって、リリースビルドでテストして、リリースかな・・・。リリース後は、フィードバックを元に今後の方針を決めていこ。

ClassCastException

CMSポートレット、Tomahawk 1.1.3、Teeda 1.0.3 で、アップロードまわりで変な Exception を得た。というわけで、メモ。見た感じでは、Teedaでポートレット環境のチェック漏れがあるような気もするな。

Nested Exception is
java.lang.ClassCastException: jp.sf.pal.tomahawk.multipart.MultipartPortletRequestWrapper
at org.seasar.teeda.core.util.ServletExternalContextUtil.getRequest(ServletExternalContextUtil.java:187)
at org.seasar.teeda.core.util.ServletExternalContextUtil.isPost(ServletExternalContextUtil.java:204)
at org.seasar.teeda.core.lifecycle.impl.RestoreViewPhase.setUpRestoreViewPhase(RestoreViewPhase.java:90)
at org.seasar.teeda.core.lifecycle.impl.RestoreViewPhase.executePhase(RestoreViewPhase.java:63)
at org.seasar.teeda.core.lifecycle.AbstractPhase.execute(AbstractPhase.java:55)
at org.seasar.teeda.core.lifecycle.impl.RestoreViewPhase$$EnhancedByS2AOP$$399f5d89.$$execute$$invokeSuperMethod$$(RestoreViewPhase$$EnhancedByS2AOP$$399f5d89.java)
at org.seasar.teeda.core.lifecycle.impl.RestoreViewPhase$$EnhancedByS2AOP$$399f5d89$$MethodInvocation$$execute0.proceed(MethodInvocationClassGenerator.java)
at org.seasar.teeda.core.interceptor.MeasurementInterceptor.invoke(MeasurementInterceptor.java:46)
at org.seasar.teeda.core.lifecycle.impl.RestoreViewPhase$$EnhancedByS2AOP$$399f5d89$$MethodInvocation$$execute0.proceed(MethodInvocationClassGenerator.java)
at org.seasar.teeda.core.lifecycle.impl.RestoreViewPhase$$EnhancedByS2AOP$$399f5d89.execute(RestoreViewPhase$$EnhancedByS2AOP$$399f5d89.java)
at org.seasar.teeda.core.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:67)
at org.seasar.teeda.core.portlet.FacesPortlet.executeFaces(FacesPortlet.java:358)
at org.seasar.teeda.core.portlet.FacesPortlet.processAction(FacesPortlet.java:334)

追記:修正した。この問題は、Jetspeed2やPlutoでは、普通に使っていては、見つからんかったのね。もしかしたら、ほかにもこんな場所があるかも、っと思い、ServletExternalContextUtilのgetRequestがポートレットで呼ばれるかを見てみた。ほかには呼ばれるような形跡はないみたい。あとは、getResonseもチェックした方がいいな・・・。あとで、しよ。

PALポータルのナイトリー

ビルドが失敗している。commons-vfs の取得に失敗している模様。org.apache.commonsのcommons-parentがないからみたい。こいつも追加してみたものの、こいつはorg.apacheのapacheに依存する・・・。これって、どこにあるんだろう・・・。明日も失敗しているなら、commons-vfsのpom.xmlからparentを抜いて、ビルドしよう。