変更 要求 番号
|
説明
|
修正されたリリース
|
CR084785
|
ラップされた応答を GenericProxyServlet で処理できるようになりました。
|
6.1 SP4
8.1 SP2
|
CR088525
|
これまでの WebLogic Server 8.1 サービス パックでは、値が「///// 」の JSP パラメータは、getParameter() によって値「/ 」と解釈されました。
この問題は、コードを修正することで解決しました。
|
7.0 SP3
8.1 SP2
|
CR090465
|
Web アプリケーションをユーザ定義のエラー ページでホストすると、WebLogic Server からの応答として次のような 400 エラーが返され、接続が Connection: close ヘッダなしで即座に閉じられました。
HTTP/1.1 400 Bad Request Date: Thu, 01 Jan 1970 00:00:00 GMT Content-Length: 463 Content-Type: text/html Last-Modified: Thu, 07 Nov 2002 21:56:52 GMT <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html>
この問題は、コードを修正することで解決しました。
|
6.1 SP5
8.1 SP2
|
CR091472
|
サーバによって weblogic.Deployer に伝播された JSP コンパイル例外には、スタック トレースだけで、正確なエラー メッセージがありませんでした。
JSP エラーの含まれる正確なコンパイル エラーが、weblogic.Deployer に伝播されるようになりました。 したがって、例外にはより詳しい情報とコンテキスト情報が含まれています。
|
8.1 SP2
|
CR091831
|
POST メソッドを使用したときにキープアライブ接続がサーバサイドでタイムアウトしたかどうかが、HttpURLConnection の WebLogic Server 実装でチェックされませんでした。そのため、フラッシュ時に Connection aborted by peer: socket write error が発生しました。
この問題は、サーバでキープアライブを無効にすることで解消できました。ただし、キープアライブ期間を長くすると、長さが異なるスリープで問題が発生しました。
タイムスタンプを更新する前に HttpClient が null でないことを確認するためのチェックを追加しました。
|
7.0 SP3
8.1 SP2
|
CR092039
|
JSP タグの charset に余分な引用符の付いた値を指定すると、JspParser によって UnsupportedEncodingException が送出されました。
<%@ page contentType="text/html; charset=\"Shift_JIS\"" %>
その結果、次のエラーが発生しました。
java.lang.RuntimeException: Unknown/unsupported charset: "Shift_JIS" - java.io.UnsupportedEncodingException: Charset: '"Shift_JIS"' not recognized, and there is no alias for it in the WebServerMBean
WebLogic Server で、HTTP 仕様が正しくサポートされていませんでした。
この問題は、Content-Type ヘッダの charset 属性値に、引用符で囲まれた文字列およびコメントのサポートを追加することで解決しました。
|
6.1 SP5
8.1 SP2
|
CR092625
|
HTTP ロギングが無効な状態で起動されたためにログ ファイルが存在しない管理対象サーバで HTTP ロギングを有効にすると、WebLogic Server によって NullPointerException が送出されました。管理対象サーバへの HTTP アクセスのたびに、次の例外が送出されました。
java.lang.NullPointerException at weblogic.servlet.logging.LogManagerHttp.log(LogManagerHttp.java:292) at weblogic.servlet.internal.HttpServer.log(HttpServer.java:865) at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1044) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2265) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
この問題は、コードを修正することで解決しました。
|
6.1 SP6
8.1 SP2
|
CR093014
|
1 つのスクリプトレットで始まり、その次の 1 つの句で終わる Java コメントはエラーになりました。
<22.07.2002 14:12:24 CEST> <Error> <HTTP>
<[WebAppServletContext(7422744,DefaultWebApp,/DefaultWebApp)] Servlet failed with Exception weblogic.servlet.jsp.JspException: (line 12): scriptlet close brace '}' unbalanced at line 12 which breaks scope '_base_service_scope_' at ....
この問題は、WebLogic Server 7.0 の文法をバックポートし、ScriptletScopeLexer が Java コメント全体をスキップするようにすることで解決しました。
|
6.1 SP5
8.1 SP2
|
CR093520
|
特定のタイムゾーン内のマシンで JSP をあらかじめコンパイルし、それらの JSP を別のタイムゾーンのサーバにデプロイすると、JSP が再コンパイルされることがありました。この問題が発生したのは、WebLogic Server が JSP のローカル タイムスタンプ (JAR ユーティリティによって組み込まれたもの) と生成されたクラス ファイル内のタイムスタンプを比較して JSP をチェックしていたことが原因です。
この問題は、コンパイル時のタイムゾーンを記録し、デプロイ時にこのタイムゾーンを使用して再コンパイルが必要かどうかを識別することで解決しました。
|
6.1 SP6
8.1 SP2
|
CR093625
|
WebLogic Server が、JSP ページの JSP include の出力を間違った方向へ導いていました。この問題は、include、forward、wrapped-response、および JSP BodyTag の処理を統一するようにサーブレット エンジンを修正して解決しました。
|
6.1 SP5
8.1 SP2
|
CR093649
|
ejb2jsp ユーティリティが、String 以外のパラメータ型を含むメソッドで、誤ったタグ クラスを生成していました。
この問題は、タグ ライブラリ ジェネレータが getAttributeString ではなく getAttribute を使用するように修正することで解決しました。
|
7.0 SP3
8.1 SP2
|
CR094190
|
JVM の仕様によれば、メソッドのサイズ制限は 64KB です。WebLogic Server では、JSP で本体付きタグを多数使用すると、生成された Java コードが __jspService メソッドの 64KB 制限を超えてしまうことがありました。
この問題は、コードを修正することで解決しました。現在は、<my:tag ... /> 形式の空の BodyTag に遭遇した場合、通常その本体のスコープを設定する生成コードが、StandardTagLib.java の静的メソッドに対する 1 回の呼び出しに置き換えられます。その結果、BodyTag ではそれが JSP ソースから通常どおりに呼び出されているものと判断されるようになります。
|
6.1 SP5
8.1 SP2
|
CR094252
|
エラー メッセージや警告メッセージをステージングされた WAR ファイルを使用して表示すると、デプロイされている実際の WAR/Web アプリケーションの解読が難しくなりました。
すべての記述子検証メッセージで、常にアプリケーション名がモジュール名に付加されるようになりました。この修正の結果、エラー メッセージのレイアウトが変更されています。これ以外の影響は想定されていません。
|
8.1 SP2
|
CR094997
|
相互に対話する 2 つの Web アプリケーションで異なるセッション クッキー名を使用すると、セッション ID が消失しました。
分析の結果、Web アプリケーションが cookieName を指定する際に、セッション属性が正しく更新されていなかったことが判明しました。別の Web アプリケーションのリソースが含まれ、外部リソースを追加する前のリクエストに RemoteUser が存在していました。
この問題は、コードを修正することで解決しました。
|
6.1 SP5
8.1 SP2
|
CR096041
|
WebLogic Server では、ウェルカム ファイルを返す際にリダイレクト (HTTP ステータス コード 302) が使用されなくなりました。
WebLogic Server の 8.1 SP2 および 7.0 SP4 より前のバージョンではステータス コード 302 (一時的移動) とウェルカム ファイルの場所が返されていました。
WebLogic Server の 8.1 SP2、7.0 SP4 およびそれ以降のバージョンでは、ウェルカム ファイルの内容の表示と共にステータス コード 200 (OK) が返されます。
この変更によって WebLogic Server のパフォーマンスは向上しましたが、ウェルカム ファイルの相対 URL が別の場所を指している場合に 404-Not Found エラーになることがあります。
|
7.0 SP4
8.1 SP2
|
CR096399
|
JSP コンパイル エラーが正しく処理されませんでした。フィルタが HttpServletResponseWrapper getWriter ではなく OutputStream と通信していました。その結果、次のエラーが発生していました。
java.lang.IllegalStateException: strict servlet API: cannot call getWriter() after getOutputStream() at weblogic.servlet.internal.ServletResponseImpl.getWriter(ServletResponseImpl.java:171) at weblogic.servlet.internal.ServletRequestImpl.reportJSPFailure(ServletRequestImpl.java:227) at weblogic.servlet.internal.ServletRequestImpl.reportJSPCompilationFailure(ServletRequestImpl.java:239) at weblogic.servlet.jsp.JspStub.reportCompilationFailure(JspStub.java:523) at weblogic.servlet.jsp.JspStub.compilePage(JspStub.java:430) at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:210) at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:164) at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:517) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:351) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:445) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:20) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at WebLogic ServerBugFilter.doFilter(WebLogic ServerBugFilter.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5418) at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:744) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3086) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2544) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)...
WebLogic ServerBugFilter.doFilter after
この問題は、ラッパー対応の RequestCallback を実装することで解決しました。
|
7.0 SP3
8.1 SP2
|
CR096459
|
HTTP 1.0 でサーブレットまたは JSP 内のフラッシュを呼び出すとソケットがうまく閉じない場合があり、ソケットがタイムアウトになるまでクライアントが待機する原因となっていました。
この問題は、コードを修正することで解決しました。
|
6.1 SP6
8.1 SP2
|
CR098388
|
リスン スレッドが要求の受信を開始する前に MBean によるサーバ状態の更新が行われていなかったために、サーバの起動直後に一部のサーバ要求が拒否されていました。
この問題は、Web コンテナ内でブール値のフラグを使用し、リスン スレッドのサーバ状態を更新することで解決しました。
|
7.0 SP3
8.1 SP2
|
CR098518
|
EJB/Web アプリケーションを次のように設定すると、クラス キャスト例外が発生していました。
Servlet Filter1 --> WebApp1 -- forward to WebApp2 ctx --> Servlet
Filter2(WebApp2) --> Ejb Lookup (fails)
この問題は、2 つの Web アプリケーション間で転送を実行するときに、サーブレット フィルタの代わりにサーブレット内の EJB ルックアップを使用することで解決しました。
|
7.0 SP3
8.1 SP2
|
CR101838
|
CGIServlet の動作が変更されていたため、ファイル名に拡張子がない CGI スクリプトの実行に影響するおそれがありました。たとえば、ファイル web.xml で CGI ディレクトリを定義し、サーブレット マッピングを次のようにしたとします。
<param-name>cgiDir</param-name> <param-value>/home/user/cgi-bin</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>CGIServlet</servlet-name> <url-pattern>/cgi-bin/*</url-pattern> </servlet-mapping>
この場合、myscript というスクリプトを /home/user/cgi-bin ディレクトリに格納すると、http://localhost/mywebapp/cgi-bin/myscript のような URL は、スクリプト名を指定しないと /home/user/cgi-bin にマップされました (この問題は、myscript.ksh のように拡張子を付けたスクリプトでは発生しませんでした)。
CGIServlet の動作が以前のリリースと一致するようにコードを修正しました。上記の例であれば、URL http://localhost/mywebapp/cgi-bin/myscript は /home/user/cgi-bin/myscript にマップされるようになりました。
|
6.1 SP6
8.1 SP2
|
CR102036
|
削除後の JSP ページに初めてアクセスすると、404 File Not Found エラーではなく、JspFileNotFoundException 例外が発生していました。2 回目以降のアクセスでは、問題なく 404 が返されました。
この問題が解決され、削除された JSP にアクセスすると常に 404 が返されるようになりました。
|
7.0 SP3
8.1 SP2
|
CR102628
|
次のような JSP コードを実行すると、
<jsp:plugin type="applet" code="examples.applets.PhoneBook1.class" codebase="/bea_WebLogic Server_internal/classes/DefaultWebApp@DefaultWebApp/" height="800" width="500" type="applet" jreversion="1.3.1_06" nspluginurl="http://java.sun.com/products/plugin/1.1.3/plugin-install.html"; iepluginurl="http://java.sun.com/products/plugin/1.1.3/jinstall-113-win32.cab#Version=1,1,3,0" >
次の HTML が生成されていました。
<embed type="application/x-java-applet;version=1.3.1_06" pluginspage="http://java.sun.com/products/plugin/1.1.3/plugin-install.html"; height="800" width="500" code="examples.applets.PhoneBook1.class" codebase="/bea_WebLogicServer_internal/classes/DefaultWebApp@DefaultWebApp/">
生成された HTML コードは、Netscape では SUN のサイトではなく WebLogic Server からプラグインをダウンロードしようとするためうまく表示されませんでした。
プラグイン ページの行を codebase 行の前に移動すると、Netscape でも正常にコードを実行できました。
この問題は、アプレット属性の順序が正しくなるようにコードを修正したことで解決しました。
|
6.1 SP6
8.1 SP2
|
CR102675
|
2 番目のページを含むページで taglib ディレクティブを使用して taglib をインポートし、2 番目のページでも同じ taglib をインポートすると、XML が無効なために browser output: が次のようになっていました。
Error 500--Internal Server Error From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
10.5.1 500 Internal Server Error The server encountered an unexpected condition which prevented it from fulfilling the request.
また、ログ ファイルには次のように出力されていました。
<[ServletContext(id=287644,name=jspVal.war,context-path=/jspVal)] Servlet
failed withIOException java.io.IOException: javax.servlet.jsp.JspException: The taglib validator
rejected the page: "Exception TestValidator XML parsing: org.xml.sax.SAXParseException:
Attribute "xmlns:valtest" was already specified for element "jsp:root". -- stack trace written to stderr., "...
コードを weblogic.servlet.jsp.jsp2xml.Jsp2XmlOutputter のように修正したことで、JSP の XML ビューの生成において重複するタグ プレフィックスが無視されるようになりました。
|
7.0 SP3
8.1 SP2
|
CR102769
|
サーブレットまたは JSP からのリクエストを別の JSP ページに転送しても、access.log に queryString のログが記録されませんでした。また、転送されたリクエストのログは access.log に記録されましたが、元のリクエストのログは記録されませんでした。
この問題は、コードを RequestDispatcherImpl のように修正することで解決しました。
|
7.0 SP3
8.1 SP2
|
CR103256
|
コードを変更したことで、JDBC の JDBCSessionContext および JDBCSessionData 内のバブル キャッシュに関係したパフォーマンスが向上しました。
|
6.1 SP6
8.1 SP2
|
CR103304
|
jsp_precompile が、拡張されたカスタム クラスを含むすべての JSP で機能するようになりました。
|
7.0 SP4
8.1 SP2
|
CR103214
|
JSP パラメータ compilerclass を設定すると、起動ログに次のような compilerclass=null メッセージが記録されていました。
JSPServlet with initArgs '[JspConfig: verbose=true,packagePrefix=jsp_servlet,-compiler= C:\61sp4\jdk131/bin/javac,compileFlags=,workingDir=C:\61sp4 wlserver6.1\config\examples\applications\examplesWebApp\WEB-INF\_tmp_war_examples_examplesWebApp, pageCheckSeconds=1,superclass=weblogic.servlet.jsp.JspBase, keepgenerated=false,precompileContinue=false, compilerSupportsEncoding=true,encoding=null,defaultfilename index.jsp,compilerclass= null,noTryBlocks=false]'>
この問題は、起動時に compilerclass の設定が使用されていたために発生していました。JSP のコンパイルでは正しい設定が使用されていました。サーバの起動時に正しいパラメータ値が取得されるようにコードを修正しました。
|
6.1 SP6
8.1 SP2
|
CR103339
|
サーブレットの出力において、Transfer-Encode の値が「Chunked」と大文字になっていました。HTTP/1.1 仕様では小文字で「chunked」とする必要があります。コードを修正したことで、Transfer-Encode タイプが小文字で「chunked 」と出力されるようになりました。
|
6.1 SP6
8.1 SP2
|
CR103719
|
ユーザが HTTPS を使用して保護されたページにログインすると、クライアントは JSESSION および _wl_authcookie_ という 2 つのクッキーを受信します。サーバが _wl_authcookie_ なしで 2 つめのリクエスト (HTTPS) を保護されていないページに送信すると、401 エラーが返されていました。
ブラウザ クライアントが _wl_authcookie_ を返信しないと保護されていない (つまり、セキュリティ制限のない) HTTPS ページへのアクセスが拒否される問題は修正されました。保護されていないページでクッキーが要求されることはなくなりました。
|
8.1 SP2
|
CR103861
|
WebLogic Server では親ディレクトリが解決されなかったため、相対パスでデプロイされたアプリケーションで UnsafeFilenameExceptions が発生していました。
コードを修正したことで、WebLogic Server が安全なファイル名を取得しようとすると、最初に親ディレクトリがチェックされて必要に応じて解決されるようになりました。
|
8.1 SP2
|
CR106072
|
JSP ファイルが変更されたために再コンパイルする必要があるかどうかをチェックする間隔を秒単位で設定する pageCheckSeconds 属性が、JSP を初めて変更したときには機能していませんでした。
この問題は、JSP が初めて呼び出されたときに WebLogic Server が lastStaleCheck の時刻を設定していなかったために発生していました。
コードを修正したことで、lastStaleCheck が設定されていなくても、現在の時刻が設定されるようになりました。これにより、JSP が無駄に再コンパイルされることがなくなりました。
|
8.1 SP2
|
CR106226
|
応答ラッパーを使用し、JSP に渡された元の応答で getOutputStream を呼び出すコードを実行すると、NestedBodyResponse で常に IllegalStateException が送出されていました。
NestedBodyResponse から getWriter() と getOutputStream() を一緒に使用できないようしました。これにより、例外が誤って送出されることがなくなりました。
|
8.1 SP2
|
CR106577
|
WebLogic Server の以前のリリースでは、URI に余分なスペースを含む要求も、末尾のスペースを削除して処理していました。WebLogic Server 8.1 SP2 では、URI に余分なスペースが含まれていると 404 エラー (Resouce Not Found) が発生するようになりました。
次に例を示します。
http://server:port/mywebapp/foo%20%20
これを使用して、Web アプリケーション mywebapp 内のリソース foo を解決します。この URI は 404 エラーになります。
下位互換性の問題は予期されていません。
|
8.1 SP2
|
CR106856
|
アプリケーションでサーブレットのフィルタ処理を使用している場合、リクエスト ディスパッチャを使用して転送またはインクルードを実行すると、要求がフィルタを通じて再実行され、無限ループが発生していました。この動作は 2.3 サーブレット仕様では未定義です。2.4 サーブレット仕様では、要求ディスパッチャを使用する場合は転送またはインクルードに対する要求をフィルタ処理し直さないのがデフォルトの動作とされています。
filter-dispatched-requests-enabled コンフィグレーション パラメータを weblogic.xml に追加して、サーブレットのフィルタ処理を制御できるようにしました。
|
8.1 SP2
|
CR107419
|
JSP コードでパラメータの値として 2 バイト文字を設定すると問題が発生していました。たとえば、次のようなコードでは、
<jsp:include page="included.jsp"> <jsp:param name="title" value="<%= java.net.URLEncoder.encode(\"[double byte characters]\") %>"/> </jsp:include>
2 バイト文字が URL エンコーディングされたコードに変換されていました。
この問題は解決されています。
|
6.1 SP6
8.1 SP2
|
CR108046
|
JDK 1.4 に存在する getHeaderFields() メソッドが、weblogic.net.http.HttpURLConnection に実装されていませんでした。このため、weblogic.net.http.HttpURLConnection.getHeaderFields() が空のマップを返していました。
getHeaderFields() の実装が weblogic.net.http.HttpURLConnection に追加されました。この修正の結果、weblogic.net.http.HttpURLConnection.getHeaderFields() がヘッダ フィールドのマップを正しく返すようになりました。
|
8.1 SP2
|
CR108607
|
アプリケーションが XSL で FOP 出力メソッドを使用してアーカイブ ファイルから画像を取得すると、WebLogic Server がエラーを生成していました。この問題は、展開形式でデプロイされたアプリケーションでは発生していませんでした。
この問題は、コードを修正することで解決しました。
|
6.1 SP6
8.1 SP2
|
CR109479
|
JnlpDownloadServlet は、WAR ファイルのタイムスタンプを利用して、クライアントのリソースが Web サーバ上のものより古いかどうかを判断します。タイムスタンプを取得するため、JnlpDownloadServlet は URLConnection.getLastModified() メソッドを呼び出します。しかし、getLastModified() メソッドからは 0 が返されていました。
ZipURLConnection.getLastModified() メソッドが zip ファイルの (したがって WAR ファイルの) 更新時刻を返すようにコードが修正されました。
|
7.0 SP5
8.1 SP2
|
CR109586
|
起動時にロードされるサーブレットが、カーネル ユーザとして構築 (静的なイニシャライザーおよびコンストラクタ) されていました。
静的なイニシャライザー、コンストラクタ、および init メソッドは、以下として呼び出されるようになりました。
|
8.1 SP2
|
CR109821
|
負荷の大きな IO 処理を必要とする IndexFile の解決が、ディスパッチ前のフェーズ (マルチプレクサ キュー) で発生していました。
コードを修正したことで、この解決がディスパッチ フェーズの後に延期されるようになりました。
|
8.1 SP2
|
CR109958
|
プロキシ サーブレットを使用してリクエストを処理する場合に、WebLogic Server は HTTPS を使用する受信リクエストでのみ SecureProxy 設定を尊重していました。受信リクエストが HTTP を使用する場合、プロキシ サーブレットで SecureProxy が有効になっていても WebLogic Server は HTTPS 接続を使用しませんでした。この問題は、コードを修正することで解決しました。
|
6.1 SP6
8.1 SP2
|
CR110293
|
セッション数のカウントは概算ですが、サーバの再起動時に 0 に初期化されていませんでした。また、インクリメントとデクリメントが同期していませんでした。このため、競合状態が発生して正確にカウントされませんでした。さらに、レプリケートされたセッションは、becomePrimary 、becomeSecondary 、および becomeUnregistered コールバックではインクリメントおよびデクリメントされていませんでした。
コードを修正したことで、メモリおよびレプリケートされたセッションのカウントがマップから直接取得されるようになりました。ファイルベースのセッションの場合はファイル システムから、JDBC の場合はデータベース クエリ経由でカウントが取得されます。この修正の結果、セッション数が正確にカウントされるようになりました。ただし、実行時 MBean が返すカウントが 2 つ増えたことに注意してください。
1. これまでにサーバが開いたセッションの総数
2. メモリ内のオープン セッションの最大数
この変更は、これら 2 つのカウントには影響しません。インクリメントとデクリメントの方法はこれまでどおりです。これらのカウントは概算で、サーバの再起動以降の数を表します。これらは、サーバの再起動後に 0 にリセットされます。
|
8.1 SP2
|
CR110914
|
TrackingEnabled が false に設定されていると要求ごとに新しいセッションが作成されますが、それらのセッションが無効にされていませんでした。
コードを修正したことで、TrackingEnabled が false に設定されているとセッションが即座に無効になるようになりました。これが正しい動作です。
|
8.1 SP2
|
CR111406
|
セッション データが再デプロイメントの後にアクセスされる場合は、save-sessions-enabled プロパティが true に設定されていても、java.lang.NoClassDefFoundError が発生していました。
この問題は、コードを修正することで解決しました。
|
8.1 SP2
|
CR111600
|
ユーザが誰もログインしていないと、request.isUserInRole メソッドが WebLogic Security フレームワークのロール マネージャのセキュリティ ロールをクエリしていませんでした。
ユーザが誰もログインしていなくても、request.isUserInRole メソッドがロール マネージャのセキュリティ ロールをクエリするようになりました。
|
8.1 SP2
|
CR112413
|
Web アプリケーション コンテナは、修正されたサーブレット クラスを動的に再ロードするときに、古いインスタンスで destroy() メソッドを呼び出します。しかし、Web アプリケーション クラスローダでは、destroy がスレッドの ContextClassLoader として呼び出されていませんでした。
コードを修正したことで、Web アプリケーション クラスローダでは destroy() メソッドが常にスレッドの ContextClassLoader として呼び出されるようになりました。
|
8.1 SP2
|
CR112547
|
クラスタ内のサーバの数が多いと、すべてのサーバに同じプロパティをコンフィグレーションするのが困難でした。
これを容易にするため、ClusterMBean のプロパティ FrontendHost 、FrontendHTTPPort 、および FrontendHTTPSPort がエクスポーズされました。ClusterMBean の値は、クラスタ内のサーバのデフォルト Web サーバに対してのみ有効です。仮想ホスト プロパティは別途設定する必要があります。この修正でこれまでの動作が変更されることはありません。
|
8.1 SP2
|
CR112799
|
IOException が発生した後にも、WebLogic Server が出力ストリームに書き込みをしようとしていました。このため、IOException を処理しない Web アプリケーションで予期せぬソケットの切断が発生すると、CPU 使用率が 100% になるおそれがありました。
org.apache.xml.serialize.XMLSerializer は、そのプロセスが終了するまで IOException を無視します。このため、HTTP 応答の一部として XML ドキュメントを返している最中に IOException が送出されると、この問題が発生していました。
コードを修正したことで、IOException が発生した後は出力ストリームへの書き込みが停止するようになりました。
|
6.1 SP6
8.1 SP2
|
CR112803
|
appc の実行時、参照先となる EJB の JNDI 名へのマッピングが ejb-ref にないことを示す例外が誤って送出されていました。
この問題は、Web アプリケーション準拠チェッカーのロジック エラーが原因で発生していました。
ロジックを訂正したことで、weblogic.xml 内の対応する JNDI 名のマッピングが web.xml で宣言された ejb-ref にある場合は正しく認識されるようになりました。この結果、appc を実行しても、誤ってこの例外が送出されることはなくなりました。
|
8.1 SP2
|
CR112992
|
XML スキーマ キャッシングが有効になっている状態で JSP が更新されると、次のような例外が送出されていました。
weblogic.servlet.jsp.JspException: (line -1): cannot load TLD: weblogic.xml.dom.ChildCountException: missing child tagclass in tag ...
この問題は、キャッシングでエンティティが解決されないため、TLD が 1.2 であっても TLDDescriptor では 1.1 と認識されることが原因で発生していました。
TLDDescriptor コンストラクタがブール値 flag _12 と org.w3c.dom.Element をとるようにすることで、Document.getDoctype() を呼び出してドキュメントのタイプを調べるようにしました。
|
8.1 SP2
|
CR114936
|
クライアントが処理中の要求をキャンセルしても、WebLogic Server が入力ストリームを排出していました。このために CPU リソースが消費されていました。
コードを修正したことで、接続が破棄されて入力ストリームが排出されないようになりました。この修正の結果、クライアントへの書き込み中に IOException が発生しても、GenericProxyServer はこの接続を再利用せず、後続のリクエスト用に新しい接続を作成するようになりました。
|
7.0 SP5
8.1 SP2
|
CR116209
|
シリアライズ可能な ServletContext 属性を追加し、これをシリアライズできない値で上書きすると、元の値が新しい値をマスクしていました。この問題は、属性ハッシュテーブルから古い値が削除されないことが原因で発生していました。
コードを修正したことで、シリアライズ可能な値をシリアライズできない値で上書きすると、必要に応じて属性ハッシュテーブルから古い値が削除されるようになりました。
|
8.1 SP2
|
CR111752
|
特定の状況では、useByteStream パラメータが true に設定されている状態で CGIServlet を使用するときに WebLogic Server は NullPointerException を送出していました。この問題は、1 つのフレームに静的 URL リンクが含まれ、別のフレームで CGIServlet が使用されているフレームセットの使用時に発生していました。もう一方のフレームがページのダウンロードを完了する前に静的リンクの含まれているフレームをユーザが選択すると、IO 例外が捕捉され、次のように表示されていました。
java.lang.NullPointerException at weblogic.utils.Executable$Drainer.run(Executable.java:366)
この問題は、コードを修正することで解決しました。
|
6.1 SP6
8.1 SP2
|
CR120630
|
Weblogic Portal 8.1 では、ServletRequestWrapper を拡張する ServletRequest を使用して RequestDispatcher.include() メソッドを何度も呼び出します。WebLogic Server で ServletRequestWrapper オブジェクトを処理するにはキャストを実行する必要があります。RequestDispatcherImpl.include() メソッドでは、参照された ServletRequest オブジェクトが ServletRequestImpl クラスのインスタンスでない場合は、このキャスト処理が試行されて ClassCastException が捕捉されていました。このため、許可されていないキャストによって生成される例外の負荷が大きく、WebLogic Portal 8.1 のパフォーマンスが低下していました。
コードを修正したことで、ClassCastException の代わりに instanceof 演算子を使用して、特定のキャスト処理が許可されているかどうかが識別されるようになりました。
この修正の結果、weblogic.servlet.internal.RequestDispatcherImpl.forward() メソッドおよび include() メソッドでのフロー制御に instanceof 演算子が使用されるようになりました。
|
8.1 SP2
|
CR121748
|
補足ポリシーのサポートに問題があったため、アプリケーションをアンデプロイすると一時ディレクトリ (通常は JSP クラス ファイルを格納) が必ず削除されていました。一時ディレクトリは、アプリケーションが明示的に削除されない限り削除されるべきではありません。
この問題はコードの修正によって解決されました。
|
8.1 SP2
|
CR125108
|
WebLogic Server 6.x では、URL パタ-ン /foo* が /foo と一致していました。これは、サーブレット 2.3 仕様では無効でした。
WebLogic Server 7.x では URLResource が追加されましたが、誤ってそのサポートが停止されていました。また、サーブレット コンテナの動作不良により、URL パターン /foo* は fullyDelegateAuthorization フラグが無効になっていると機能し、有効になっていると機能しませんでした。これにより、WebLogic Server 6.x から 7.x または 8.x へのアップグレードでセキュリティが低下するおそれがありました。
この問題を修正したことで、パス マッピングには / で始まり /* で終わる文字列のみが使用されるようになりました。古いマッピングを使用している場合に備えて、<security-constraints> の <url-pattern> が /foo* に設定されている Web アプリケーションはデプロイされないようにすることでセキュリティの脆弱性を回避しています。
この修正の結果、/foo* のような URL パターンは完全な一致として処理され、<security-constraints> の <url-pattern> が /foo* に設定されている Web アプリケーションはデプロイされなくなりました。
|
8.1 SP2
|
CR126319
|
クラスタ内のサーバが (強制的に) 終了させられると、そのサーバはプライマリ セッションとセカンダリ セッションを無効化し、セッションのフェイルオーバが失敗に終わっていました。
サーバの停止でセッションが破棄されるときにクラスタのサイズをチェックするコードが用意されていました。つまり、サーバがクラスタ内の最後のサーバでない場合には、セッションは無効化されていませんでした。しかし、WebLogic Server は serverShutdown フラグを適切に渡さなかったので、チェック ロジックは無視されていました。
サーバの状態がチェックされ、セッションの破棄時にチェック ロジックが起動されるようにコードが修正されました。
|
8.1 SP2
|