requestのgetHeaderNames()

SAStruts なポートレットでは、HttpServletRequest の getHeaderNames() で null を返していたのだけど、これだと、externalbinding するときに S2 の ServletRequestHeaderMap でヌルポになってしまう。getHeaderNames() って null を返しちゃいけないのかなっと思って javadoc を見たら、このメソッドにアクセスできないときは null を返してもいいみたい。まぁ、たぶん、ほとんどすべてのサーブレットコンテナはnullを返すことはないのだろうね。というわけで、SAStrutsなポートレットしては、空のEnumerationを返すことにしよう。

マルチスレッドレンダリングなど

PALポータルでポートレットをマルチスレッドでレンダリングするとこで、デッドロックしていたのを修正。これで、指定した時間以上かかるポートレットの表示はタイムアウトとして表示されます(ポートレットのデバッグ時にはこれだと普通にタイムアウトするので同期モードで実行する必要があるかと)。ひとまず、ポータル側の修正はこれくらいにして、こっからはグループウェア系のポートレットたちの修正に移ろうかな。とりあえず、ユーザー情報テーブルにアカウントの状態情報がなかったので、状態カラムを追加してみた。そのついでに、DBFlute も 0.8.2 を使っていたので、0.8.7 にアップグレード(全部のポートレットでテストできていないけど、たぶん大丈夫そう)。ポートレットたちの修正もたまっているので、処理していこ。