色聴者判定テスト > Google Analytics Mobile JSP版のException修正方法

このページの中で何か分からないことがありましたら、 @ts_3156に何でも聞いてください。
「このコードのここの意味が分からない」とか、何でも大丈夫ですよ(^-^)

Google Analytics Mobile JSP版のException

Google Analytics MobileのJSP版には、2010年10月の時点でいまだにバグがあります。
NullPointerExceptionがでるために正常にアクセス解析できないという致命的なバグです。 どうやら、PHP版、Perl版でも同じバグがあるようなのですが、JSP版のバグについて解説しているページが少ないようです。 同じ過ちを繰り返す人が少しでも減るように、気付いた事や注意点をまとめておきます。

Google Analytics Mobile JSP版の具体的なExceptionの個所

NullPointerExceptionがでるのはga.jspの以下の個所です。

connection.addRequestProperty("User-Agent", request.getHeader("User-Agent"));
connection.addRequestProperty("Accepts-Language", request.getHeader("Accepts-Language"));

上記のコードで、request.getHeader("User-Agent")、request.getHeader("Accepts-Language")の値がnullだった場合に、

connection.getContent();

この個所でNullPointerExceptionが起きます。これを修正するには、

if(request.getHeader("User-Agent") != null)
	connection.addRequestProperty("User-Agent", request.getHeader("User-Agent"));
if(request.getHeader("Accepts-Language") != null)
	connection.addRequestProperty("Accepts-Language", request.getHeader("Accepts-Language"));

このようなnullチェックを行うだけです。たったこれだけなんですが、バグの原因となっている個所とNullPointerExceptionの起きる場所が違っていたため、 原因究明に多大な時間がかかってしまいました…。Googleのコードだからと言って無条件に信用してはだめですね。

すっきりわかるGoogle App Engine for Javaクラウドプログラミング
私がGoogle App Engineのことを調べる上で参考にした書籍です。
Google App Engineのほぼすべての要素(Googleアカウント認証、OAuth認証、メール送受信、URLFetch API、Datastore、Blobstore、memcached)についてむっちゃ分かりますくまとめられてます。とりあえず立ち読みだけでもしてみてください。笑

このページの中で何か分からないことがありましたら、 @ts_3156に何でも聞いてください。
「このコードのここの意味が分からない」とか、何でも大丈夫ですよ(^-^)

色聴判定テスト一覧
テストはどれも10分ほどで終わります
推奨環境
・Internet Explorer7以降
・Firefox3以降
判定テストについて
これまでに 1541人 がテストを受けました
09/12/28~12/02/02
更新情報
・12/10/14
twitterの埋め込み方法を更新しました
・12/01/11
共感覚面白ニュースを更新しました
・11/11/03
共感覚面白ニュースを更新しました
・11/04/03
筑波大学新入生向け情報を書きました
・11/03/04
Twitter4j逆引きリファレンス【使い方 やりたいことから見つける】を書きました
もっと見る
知りたい情報募集中
知りたい情報は見つかりましたか? 見つからなかったならご連絡ください。 詳しく調べて、ネットでは見つからないような良質で科学的な情報を掲載いたします。

研究協力者も募集中です!
お問い合わせはこちら