JRun 4: 日本語環境にてUpdater 3 を適用した後に発生する問題点
問題
Updater3 適用後、以下のようなエラーがイベントログに大量に書き出されるようになる場合があります。
05/28 9:56:39 error String index out of range: 8
java.lang.StringIndexOutOfBoundsException: String index out of range: 8
at java.lang.String.substring(String.java:1588)
at jrun.servlet.session.SessionIdGeneratorService.generateHash(SessionIdGeneratorService.java:129)
at jrun.servlet.session.SessionIdGeneratorService.generateSessionId(SessionIdGeneratorService.java:81)
at jrun.servlet.session.SessionService.createSession(SessionService.java:1195)
at jrun.servlet.ForwardRequest.getSession(ForwardRequest.java:372)
at jrun.jsp.runtime.JRunPageContext.initialize(JRunPageContext.java:83)
at jrun.jsp.runtime.JRunJspFactory.getPageContext(JRunJspFactory.java:67)
at jrun__index2ejspa._jspService(jrun__index2ejspa.java:40)
at jrun.jsp.runtime.HttpJSPServlet.service(HttpJSPServlet.java:43)
at jrun.jsp.JSPServlet.service(JSPServlet.java:119)
at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)
at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:249)
at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:527)
at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:192)
at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:348)
at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:451)
at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:294)
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
java.lang.StringIndexOutOfBoundsException: String index out of range: 8
at java.lang.String.substring(String.java:1588)
at jrun.servlet.session.SessionIdGeneratorService.generateHash(SessionIdGeneratorService.java:129)
at jrun.servlet.session.SessionIdGeneratorService.generateSessionId(SessionIdGeneratorService.java:81)
at jrun.servlet.session.SessionService.createSession(SessionService.java:1195)
at jrun.servlet.ForwardRequest.getSession(ForwardRequest.java:372)
at jrun.jsp.runtime.JRunPageContext.initialize(JRunPageContext.java:83)
at jrun.jsp.runtime.JRunJspFactory.getPageContext(JRunJspFactory.java:67)
at jrun__index2ejspa._jspService(jrun__index2ejspa.java:40)
at jrun.jsp.runtime.HttpJSPServlet.service(HttpJSPServlet.java:43)
at jrun.jsp.JSPServlet.service(JSPServlet.java:119)
at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)
at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:249)
at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:527)
at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:192)
at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:348)
at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:451)
at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:294)
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
これは Updater3 で変更された、セッションID生成処理の部分で異常が発生していることをあらわしています。この現象は特に日本語のOS環境で JRun を使用する場合に発生します。
回避策
この回避策は日本語環境で JRun 4.0 を使用しており、Updater3 を適用されたすべての方を対象に行うことを推奨します。
以下の手順でアップデート・ファイルを適用してください。適用後のビルド番号は 78007 になります。
なお、このファイルは、Updater3 を適用した JRun に対して適用ください。適用方法は Updater 2, Updater 3 の場合と同様です。
手順
- アップデート・ファイルをダウンロードします。
Windowsプラットフォーム向け
http://download.macromedia.com/pub/japanese/jrun4-win-ja-updater_78007.exe
UNIXプラットフォーム向け
http://download.macromedia.com/pub/japanese/jrun4-unix-ja-updater_78007.bin
- JRun サーバーをすべて停止します。
- アップデート・ファイルを実行します。
- 適用時エラーが出力されなかったことを確認の上、JRun インストールディレクトリの下の binディレクトリにて
コマンドを実行、ビルド番号が 78007 と表示されることを確認します。
jrun -info
追加情報
最終更新日: 2004年5月28日
作成日: 2004年5月28日
