るいもの戯れ言HOME

11月
20
27

過去の記事
2005年12月
2005年11月
2005年10月
2005年9月
2005年8月
2005年7月
2005年6月
2005年5月
2005年4月
2005年3月
2005年2月
2005年1月
2004年12月
2004年11月
2004年10月
2004年9月
2004年8月
2004年7月
2004年6月
2004年5月
2004年4月

カテゴリー
Weblog

ブックマーク
はてなダイアリー - unoの日記
猫の手もかりたーい♪
L'eclat des jours
mia's eyes

Powerd by
News Handler


■ 今日のハマリ

今日というか、昨日からハマっていたのだが。
JSFでは、ExternalContext.getRequestCookieMap()を呼び出すことで、リクエストに送られたCookieを取り出すことが出来る。で、これを使ってみたのだが、何やらClassCastExceptionが出る。てっきりここで返されるMapが、Map<String, Cookie>だと思っていたので、実はMap<String, String>が返されている事になかなか気づかず、かなり悩んでしまった。まぁ、分かってみれば単純だ。JDK5.0だから、何かGenericsに罠があるかもとか勘ぐったのも良くなかった。

で、なんでまた、こんな勘違いをしたのか。もしかしてJSFのAPI仕様書が曖昧な書き方をしてるんだろうか。と思って調べてみる。

Return an immutable Map whose keys are the set of cookie names included in the current request, and whose values (of type javax.servlet.http.Cookie) are the first (or only) cookie for each cookie name returned by the underlying request. The returned Map must implement the entire contract for an unmodifiable map as described in the JavaDocs for java.util.Map.

ん〜。明確に値の方の型はCookieって書いてあるな〜。ってちょっと待て!悪いのはMyFacesじゃないか! また、CookieMapクラスのバグか。

というわけで、本日のバグ報告

なんで、こんなバグが残ってるんだろう。みんなExternalContext.getRequestCookieMap()なんて使ってないのか? getRequest()で、リクエストオブジェクトとって、ガリガリやってるの?
まぁ、そもそもCookieは仕様上同名のものが存在する事が許されているわけで、それをMapに入れようなんて時点でデザインが破綻しているとは思うが。

投稿時間 2004-11-24 22:11:35
コメント(数字をクリックするとコメントできます):0 Track back:0



このサイトの掲載内容は私自身の見解であり、必ずしもIBMの立場、戦略、意見を代表するものではありません。

日本アイ・ビー・エム 流通GB・コンピテンシー 第一テクニカルサービス
花井 志生