ひよっこ。

I want to…

Posts Tagged ‘bug’

RemoteDesktopのバグでキーボード情報がクリアされない?

Posted by hikaruworld : 2009 5月 14

たぶんRemoteDesktop側のバグみたいなので、一応書いておく。

■現象
windowsキーを押していないにも関わらず、winキーが押したままの状態になる。

■環境
Windows XP SP3
リモートデスクトップ接続 6.0.6001

■発生方法
1. リモートデスクトップを起動し、適当に接続
2. リモートデスクトップを最大化
3. リモートデスクトップを最小化
5. winを押したままの状態でリモートデスクトップをタスクバーから選択して起動。
6. リモートデスクトップが最大化された状態になる。
7. winキーを離す。
8. リモートデスクトップを最小化する。
9. eとかを押して見るとwin+e(マイコンピュータ表示)の動きをする。

■回避方法
1. winボタンを一回押してスタートメニューを表示させる。

へんなことにはまってしまった。

Posted in OS | タグ: , , | Leave a Comment »

PopUpウィンドウを閉じた後に、セッションCookieが喪失してしまう件

Posted by hikaruworld : 2008 11月 12

この辺りが詳しい

原因

この問題は、セッションカウントが正しく維持されないため、子ウィンドウを閉じた時にセッションカウントが 0 になり、
Internet Explorer 内部で保持しているセッション情報が削除されるために発生します。

※ セッション cookie は本来、Internet Explorer のプロセスごとに値が引き継がれます。セッション cookie を受け取ったInternet Explorer のプロセスを終了すると、セッション cookie は失われ、ハードディスクからも削除されます。

補足説明

IE5.5、IE6、IE7で、この現象が発生しているようだ。
IE5.5及びIE6におけるこの障害に関しては、IE6 SPで修正が行われている。
が、IE7では再び再発しており、WindowsのOSバージョンによって対応が異なるらしい。

※ Vistaに関してはSP1でfixされていますがXPではSP3でも修正されておらず、この障害はHotfix扱いのため完全に回避するためには自力でパッチをあてる必要がある。

Microsoftサポートからアナウンスされている回避策

以下の条件をすべて満たす場合、Internet Explorer で保持するべきはずのセッション cookie が失われます。
・Internet Explorer 5.5 以降を使用している
・セッション cookie を使用している(cookie に有効期限が設定されていない)
・ローカルファイルを使用している
(ホームページを c:\homepage.html や \\server\share\homepage.html にしている、file:// で始まる URL を使用している、など)
・新しいウィンドウを開く(ウィンドウの数を増やす)ような操作を行っている
(window.open や window.showModalDialog で子ウィンドウを開く、リンクを [新しいウィンドウで開く] など)
・ウィンドウを閉じる(ウィンドウの数を減らす)操作を行った後、残りウィンドウの数が 1 つ(または 0)になった

対象の業務システムではローカルファイルへの参照を使用していないように見えるが、実際はキャッシュ使用時にローカルファイルへの参照が行われているらしい。

というわけで再現確認。

発生しないケース

  1. IEを起動
  2. セッションCookieを確立
  3. 該当画面へ遷移。
  4. PopUpせずに次の画面に遷移(この際にセッション情報を確認している)

発生するケース

  1. IEを起動
  2. セッションCookieを確立
  3. 該当画面へ遷移。
  4. PopUp画面を表示。
  5. PopUp画面を閉じる。
  6. 次の画面へ遷移(この際にセッション情報を確認している)←★発生する。

回避方法

WindowsVistaを使用している場合は、SP1を適用することで回避可能。

XPの場合は、Microsoftサポートからは以下のようにアナウンスされている。

・cookie に有効期限を設定する
・HTML ファイルをローカルに置かせずに HTTP サーバー上に置く
・ウィンドウを閉じないで残しておくか、ダミーのウィンドウを開けておくようにする

現状対応しうる、回避方法としては以下の方法が適切か。

ウィンドウを閉じないで残しておくか、ダミーのウィンドウを開けておくようにする

関連リンク

このIEのバグ、昔一度引っかかっていたんだけど、IE5.5、IE6だと既に修正されていたこと、IE7だったことで、
すぐに気がつかずにはまってしまった。
まさかIE7でも再発してるとは。。。

Posted in program | タグ: , , , | Leave a Comment »

Tomcat5.5.27のServletContext

Posted by hikaruworld : 2008 11月 11

Tomcat5.5.25までは、javax.servlet.ServletContextクラスの次のメソッドに関しては、
サーブレット仕様に完全に準拠していないらしい。

ServletContext.getResource()
ServletContext.getResourceAsStream()

上記のjavadocでは以下のように記述されている。

指定されたパスにマップされたリソースへの URL を返します。パスは “/” で始まる必要があり、現在のコンテキストルートへの相対パスとして解釈されます。

つまり、web.xmlに以下のような記述をした場合はNGになるはずである。
※velocity-propertiesの設定をしているのは、業務でこの部分ではまったためで特別な意味はない。

<web-app>
    <!-- 省略 -->
    <context-param>
        <param-name>velocity-properties</param-name>
        <param-value>WEB-INF/classes/velocity.properties</param-value>
    </context-param>
    <!-- 省略 -->
</web-app>

しかしながら、Tomcat5.5.25であれば起動時に警告すら出ずに問題なく起動してしまう。

2008/11/04 14:11:57 org.apache.catalina.storeconfig.StoreLoader load
情報: Find registry server-registry.xml at classpath resource
2008/11/04 14:11:57 org.apache.catalina.startup.Catalina start
情報: Server startup in 11479 ms

この問題は、Tomcatでも5.5.23の時点で、bugとしてBugzillaに報告されている。
ただ、たいしたバグじゃなかったためか(そりゃ、基本的にみんな仕様にのっとって実装しているはずだからさ(-)、
5.5.24、5.5.25では修正されなかったようだが、5.5.26でfixされているのだ。

これではまる。

新規環境をTomcat5.5.27で環境構築して起動したところ、こんなエラーでアプリケーションが起動しない。

致命的: Error listenerStart
2008/11/10 19:47:37 org.apache.catalina.core.StandardContext start
致命的: 以前のエラーのためにコンテキストの起動が失敗しました [/trunk]
2008/11/10 19:47:37 org.springframework.context.support.AbstractApplicationContext close
情報: Closing application context [Root WebApplicationContext]

それで設定ファイル周りを見ていると、/がもれていることに気がつき、
以下のように修正を行う。

<web-app>
    <!-- 省略 -->
    <context-param>
        <param-name>velocity-properties</param-name>
        <param-value>/WEB-INF/classes/velocity.properties</param-value>
    </context-param>
    <!-- 省略 -->
</web-app>

結局は、これで無事起動した。
単純なミスだったんだけど、めちゃくちゃ長いweb.xmlからこの設定漏れに気がつくのは苦労した。

Tomcatのこのバグははじめて知ったんだけど、もしかして周知のネタなんだろうか。。。

以下、余談。
「誰が犯人だ、くそぅ!!」と思って履歴をたどってみると、昔の自分だった。涙目。
今日の2時間を使うことになった昔の自分が恨めしい。

Posted in program | タグ: , , | Leave a Comment »