7. 本リリースの変更内容

7.1. バグ修正

アプリケーションクライアント

999465 - appclient.xml のネーミングバージョンが違う

appclient.xml ファイルのバージョン番号が間違っていたため、ネーミングサブシステムが起動せず、依存関係の問題が発生する原因となりました。このバージョンは修正されたため、appclient が正常に起動されるようになりました。
1003104 - .ear 外部で .jar ファイルを実行すると appclient がハングする

appclient コードに問題が存在し、.jar ファイルを直接実行できませんでした。appclient にコードが追加され、問題が修正されたため、jar ファイルが直接実行されるようになりました。

クラスローディング

959478 - sun.nio.cs & sun.nio.ext パスを sun.jdk モジュールへ追加

sun.jdk モジュールに不足してるパッケージがあったため、sun.jdk の使用中にカスタム文字セットをロードしようとすると、ServiceConfigurationError 例外がスローされました。本リリースの JBoss EAP 6 には不足していた sun.nio.cs および sun.nio.cs.ext パッケージが追加されたため、sun.jdk モジュールでカスタム文字セットを使用できるようになりました。

CLI

977407 - タブ補完を使用すると、jboss-cli.sh が IllegalArgumentException をスローする

ユーザーがタブ補完機能を実行すると、場合によっては jboss-cli ツールが終了することがありました。この問題は修正され、タブ補完が想定どおり動作するようになりました。
990227 - jboss-cli.sh を無人 (スクリプトなど) で実行するとフリーズする

以前のバージョンの Red Hat JBoss Enterprise Application Platform では、STDIN を閉じるスクリプトまたは STDIN を null に設定するスクリプトを用いてサーバーが自動化されていると、ユーザー入力が必要になる時点でサーバーが終了しました。しかし、最近のリリースでは、同じ状況でサーバーがハングしました。本リリースには、以前のバージョンどおりに動作する、更新されたバージョンの Aesh (Another Extendable Shell) が含まれています。自動化スクリプトで起動したサーバーは想定どおり終了するようになり、ユーザー入力が必要な時点でハングしなくなりました。
977426 - 未接続でバッチモードであると jboss-cli.sh が NullPointerException をスローする

サーバーに未接続の状態で、jboss-cli ツールでコマンドをバッチに追加しようとすると、jboss-cli が終了します。この問題は修正され、サーバーに未接続の状態でコマンドをバッチに追加しようとすると、以下のエラーメッセージが表示されるようになりました。
Command is not supported or unavailable in the current context: Failed to load operation description: not connected

クラスタリング

974967 - standalone.xml の jvmRoute によって org.infinispan.marshall.NotSerializableException を生成可能

ロードバランサーを持つ mod_jk とスティッキーセッションを使用してファーミングアーキテクチャーを作成すると、クラスタリングが有効になっていないため分散アプリケーションをデプロイできませんでした。これは、クラスタリングの設定がないと RegistryServiceLOCAL_ADDRESS が、シリアライズ不可能なデフォルト値に初期化されたためです。LOCAL_ADDRESS がシリアライズ不可能であったため、正常にデプロイされませんでした。LOCAL_ADDRESS がシリアライズ可能な値に初期化されるようになったため、分散アプリケーションが想定どおりデプロイされるようになりました。
918791 - サーバーを複数の Web アプリケーションで起動すると、デプロイメントに失敗する

場合によって、複数のアプリケーションをデプロイしようとすると、クラスター化されたサーバー上の web アプリケーションをデプロイできないことがありました。この場合、キャッシュを作成するために各アプリケーションがキャッシュマネージャーをロックしようとし、ロックを最初に取得したアプリケーションは正常にデプロイされました。しかし、デプロイメントの所要時間によっては、キャッシュマネージャーへのアクセスを待機していた他のデプロイメントがタイムアウトし、デプロイされないことがありました。この状況に対処する GlobalComponentRegistryService が JBoss EAP 6 に含まれるようになったため、このような場合でもアプリケーションが正常にデプロイされるようになりました。

ドメイン管理

983980 - EAP6 CLI コマンドは別のデプロイメントで同じランタイム名の使用を許可すべきでない

同じランタイム名を持つ 2 つのデプロイメントを同じ JBoss 6 インスタンスへデプロイすることが可能でした。

この結果、誤ったデプロイメントのランタイム名が使用され、インスタンスが不整合な状態に陥ることがありました。

この問題は本リリースの JBoss EAP 6 で修正され、ランタイム名は JBoss EAP 6 インスタンスごとには一度だけ使用できるようになりました。使用中のランタイム名を持つアプリケーションをデプロイしようとすると、次のエラーが表示されます。
There is already a deployment called ${name} with the same runtime name ${runtime-name} on server group ${server-group}
1021763 - 再デプロイの不整合なロールバックにより、ドメインコントローラーが再起動しない

full-replace-deployment のハンドラーには、ロールバックされた操作の一部分して追加されたデプロイメントコンテンツを削除するロジックが含まれています。このロジックによって、追加されたコンテンツと既存のコンテンツが同じあるかどうかチェックされなかったため、同じであった場合に既存のコンテンツが誤って削除されました。

この結果、deploy --force CLI コマンドを使用して同じコンテンツを管理対象ドメインに再デプロイし、何らかの理由で再デプロイに失敗すると (サーバー上にデータソースなどの依存サービスがない場合など)、デプロイメントも失敗し、ロールバックプロセスの一部としてコンテンツがすべてのホストから削除されました。しかし、デプロイメントの既存の設定アイテムは削除されず、ホストが再起動すると存在しないコンテンツをデプロイしようとして、ブートに失敗しました。

この問題は本リリースの JBoss EAP 6 で修正されました。コンテンツの変更がない場合は、ロールバックプロセスの一部としてコンテンツを削除しないことを、ロールバックロジックが認識するようになりました。

これにより、ロールバックしてもドメインは再デプロイ前の一貫した状態と同様になり、コンテンツもすべてのホストと、そのコンテンツを参照する設定で引き続き使用できるようになりました。
960820 - 再帰的な式の解決

他の式の出力に含まれる式が解決されませんでした。そのため、vault 式の参照など、他の式を参照するために設定に式を使用することができませんでした。これは、式解決の出力が、解決する他の式の存在を確認しなかったことが原因でした。

式解決が再帰的になり、式が解決されると、出力で解決する他の式がチェックされるようになりました。この処理は、他の式がなくなるまで継続されます。

式を使用して、設定で他の式を参照できるようになりました。

EJB

991444 - optimistic-locking=true の場合、EJB2 CMP が誤ってキャッシュにアクセスする

EJB2 エンティティー Bean に対して楽観的ロックが設定されると、Bean がキャッシュで見つかりませんでした。これは、誤った識別子を使用してキャッシュのルックアップが実行されたため発生しました。エンティティーのプライマリーキーは、トランザクション識別子ではなく適切なトランザクションキャッシュを見つけるために使用されました。この問題は修正され、楽観的ロックが有効な場合に、EJB2 エンティティー Bean が想定どおり挙動するようになりました。
1005110 - EJB 非同期呼び出しでの ClassLoader メモリーリーク

場合によっては、非同期の EJB 呼び出しによってデプロイメントのクラスローダーが「リーク」することがありました。

これは、実行メソッドによって新しいスレッドが作成されることがあったため発生しました。新しいスレッドが作成されると、新しいスレッド自体が、デプロイメントのクラスローダーとなる親スレッドのコンテキストクラスローダーへ割り当てられます。この発生を防ぐため、実行メソッドが呼び出される前に、スレッドコンテキストクラスローダー (TCCL) が null に設定され、その後復元されます。

非同期 EJB 呼び出しによって、デプロイメントクラスローダーのリークが発生しないようになりました。
1019894 - 依存関係がすべて起動するまで EJB はリモートアクセスできないようにする必要がある

完全に起動する前に、リモートで EJB を呼び出しできたことがあり、EJB クライアントが応答しませんでした。これは、EJB の依存関係が完全に解決される前にリモートインターフェースがバインドされたため発生しました。よって、完全に応答できる前に Bean が呼び出されることがありました。この問題は修正され、すべての依存関係が解決するまで EJB のリモートインターフェースは使用できないようになりました。
1005093 - EJB 非同期呼び出しに関連するセキュリティーコンテキストが、呼び出し側スレッドによって時間とともに破損する可能性がある

サーブレットから非同期で呼び出された EJB は、サーブレットの呼び出しが最初に完了すると、セキュリティーコンテキストを損失する可能性があります。サーブレットと EJB スレッドは同じ SecurityContext インスタンスを共有するため、サーブレットのセキュリティーコンテキストが消去されたときに発生しました。SecurityContext 属性が、サーブレットスレッドのインスタンスから EJB スレッドにある SecurityContext オブジェクトの新しいインスタンスへコピーされるようになりました。あるスレッド上で SecurityContext インスタンスが更新されても、他のスレッドのインスタンスには影響しないようになりました。

Hibernate

998841 - HHH-8447 の永久修正 (複数のサブクエリーを持つ HQL delete が失敗する (誤ったエイリアスが使用される))

HQL delete クエリーに複数のサブクエリーが含まれていると、最初のサブクエリーのみが適切なルートテーブルエイリアスを使用しました。他のクエリーの生成された SQL は誤ったエイリアスを使用しました。

この問題は、SQL クエリーの生成時に、複数のサブクエリーが適切に処理されなかったことが原因でした。

この問題は本リリースの JBoss EAP 6 で修正され、すべてのサブクエリーに SQL を生成するときに、複数のサブクエリーを持つ HQL delete クエリーが適切なルートテーブルエイリアスを使用するようになりました。
947946 - HSQL ダイアレクトの誤った「to_char」関数

to_char 関数の HSQL ダイアレクト実装にバグがあったため、オブジェクトから文字列への変換に誤りがありました。また、比較で使用すると、java.lang.IllegalArgumentException 例外が発生しました。

本リリースの JBoss EAP 6 では、適切にオブジェクトを文字列へ変換することで、HSQL ダイアレクトの to_char が修正されました。その結果、to_char を使用した比較は java.lang.IllegalArgumentException をスローしないようになりました。
990587 - [HHH-7959] transaction-mode=NONE に設定された Hibernate/Infinispan 2 次キャッシュが明示的なエビクションの後に機能停止する

transaction-mode=NONE に設定された Infinispan 2 次キャッシュは、プログラムによってエビクションを強制されると無効になりました。無効な状態によってパフォーマンスが劣化し、TRACE レベルのログメッセージ Could not invalidate region: null が発生しました。

これは、非トランザクション設定での TransactionManager の使用に関連する未処理の null 値が原因で、NullPointerExceptions が発生しました。

この問題は、JBoss EAP 6 の本リリースで修正され、適切に null 値がチェックされるようになったため、エビクションと有効な状態が発生するようになりました。その結果、transaction-mode=NONE に設定された Infinispan 2 次キャッシュでプログラムによってエビクションが強制されても、無効な状態や関連するパフォーマンスの劣化が発生しないようになりました。
1018146 - [HHH-8605] ManyToManyTest.testManyToManyWithFormula が mssql2008R2、mssql2012、sybase157 で失敗する

Sybase および Microsoft SQL Server では、サブクエリーにタプルがある HQL クエリーが例外をスローしました。Sybase および Microsoft SQL Server では、下例のようなサブクエリーのタプルはサポートされません。

delete from Table1 where (col1, col2) in (select col1, col2 from Table2)

この問題は、Sybase および Microsoft SQL Server の Hibernate ダイアレクトが supportsTuplesInSubqueries プロパティーを false に設定しなかったため発生しました。

本リリースの JBoss EAP 6 では、ybase および Microsoft SQL Server の Hibernate ダイアレクトが更新され、サブクエリーのタプルをサポートしないことを明確に反映するようになりました。その結果、例外の代わりに警告が生成されるようになりました。
1003468 - HHH-8464 JoinColumn に JPS2 固有の引用符 (二重引用符) を使用すると DuplicateMappingException が発生する

JoinColumn に JPS2 固有の引用符 (") を使用すると DuplicateMappingException が発生しました。これは、引用符が内部で正規化されなかったことが原因でした。

この問題は本リリースで修正され、JoinColumn に " を使用すると適切に正規化されるようになり、DuplicateMappingException が発生しないようになりました。
991578 - HHH-8390 固有の制約が存在する前に外部キーの参照が生成される

外部キーが固有またはプライマリーキーとして定義される前に外部キーが宣言されるスキーマを作成すると、Oracle で失敗します (他のダイアレクトでも失敗する可能性があります)。

スキーマエクスポートプロセスの一部として、外部キーの制約の前に固有キーの制約を作成するよう強制するようになったため、この問題は本リリースの JBoss EAP 6 で修正されました。

その結果、固有の制約が存在する前に外部キーが宣言されるようになったため、エクスポートされたスキーマが Oracle で失敗しないようになりました。
977520 - HHH-8318 「member of」が含まれる「delete」クエリが失敗する

member of 節が含まれる HQL delete クエリーの変換にバグが存在し、不適切な SQL が生成されました。これにより、不適切な SQL delete クエリーに失敗しました。この問題は、member of サブクエリーが誤ったエイリアスを使用したことが原因でした。

HQL delete クエリーの一部として使用されたときに member of サブクエリーが適切なエイリアスを使用するようになったため、この問題は本リリースの JBoss EAP 6 で修正されました。この結果、正しい SQL が生成されるようになりました。

HornetQ

1019378 - バッチトランザクションでページングおよび読み取りを行うと、メッセージの再配布によりメッセージが損失する可能性がある

まれな状況で、HornetQ サーバーの大きなチャンクによるメッセージの確認が速すぎると、ページシステム上でトランザクションがインスタンス化される前にメッセージの再配布によってレコードが読み取られることがありました。これにより、メッセージの損失しました。

ページングシステムが適切にページトランザクションをインスタンス化することを確認するようになり、ページトランザクションがインスタンス化された後にのみファイルが書き込まれるようになったため、この問題は本リリースの JBoss EAP 6 で修正されました。

この修正により、同じ状況でもメッセージが損失しないようになりました。
988321 - WARN - Replication Large MessageID 164 is not available on backup server. Ignoring replication message

一定のイベント発生後、大きなメッセージの削除が 2 回呼び出されることがあり、これによって以下のような誤った警告メッセージがバックアップの HornetQ サーバーに表示されることがありました。
11:33:23,825 WARN  [org.hornetq.core.server] (Old I/O client worker ([id: 0x2b37b4ea, /192.168.40.1:60844 => /192.168.40.1:5445])) HQ222090: Replication Large MessageID 164  is not available on backup server. Ignoring replication message

JBoss EAP 6 のログに誤った警告が表示されないようになったため、この問題は修正されました。この結果、大型のメッセージに関する誤った警告メッセージがバックアップの HornetQ サーバーに表示されないようになりました。

インストーラー

977736 - appclient 起動スクリプトおよび設定ファイルは appclient のオプションが未選択でインストールされるべきでない

JBoss EAP 6 のインストーラーを使用すると、Pack Installation 画面の AppClient+ チェックボックスをクリアしても AppClient ファイルがインストールされました。

このインストーラーの問題は、本リリースの JBoss EAP 6 で修正され、AppClient+ チェックボックスが選択された場合のみ AppClinent ファイルがインストールされるようになりました。
1013973 - インストーラー: Ctrl+c を使用してインストールを終了できない (Windows)

JLine 依存関係の指定に問題があり、Microsoft Windows Server 上で JBoss EAP 6 のコンソールインストーラーで Ctrl-C キーボードコマンドが機能しませんでした。

本リリースの JBoss EAP 6 では、JLine が更新されたため、Microsoft Windows Server でコンソールのインストール中に Ctrl-C が入力されると、インストーラーが想定どおり終了するようになりました。また、Insert キーも Ctrl-C と同じように読み取られるため、Insert キーを押してもコンソールインストーラーが終了します。
1013972 - タブを使用するホームディレクトリーパスの自動補完が適切に機能しない

JBoss EAP 6 のコンソールインストーラーでは、Tab キーを使用したホームディレクトリーパスの自動補完が想定どおり機能しませんでした。ホームディレクトリーパスを自動補完する代わりに、Microsoft Windows Server では何も表示されず、Linux では /home が誤って挿入されました。

この問題は本リリースの JBoss EAP 6 で修正され、~ を入力して Tab を押すと、想定どおりホームディレクトリーのパスが自動補完されるようになりました。Microsoft Windows Server ではパスが C:\Users\USERNAME になり、Linux では /home/USER になります。
963304 - jar インストーラーより EAP 6.0.0 をインストールすると、ネイティブコンポーネントのチェックボックスが非表示になる

/etc/ ディレクトリーに複数の *-release ファイルが存在すると、Unix の派生オペレーティングシステムでは、インストーラーが system-release ファイルを適切にチェックしませんでした。これにより、インストーラーがサーバーのオペレーティングシステムを認識しなかったため、Pack Installation 画面に Native Components チェックボックスが表示されませんでした。この問題は本リリースの JBoss EAP 6 で修正され、Unix の派生オペレーティングシステム上でインストーラーが system-release ファイルを適切にチェックするようになりました。その結果、Pack Installation 画面に Native Components チェックボックスが表示されるようになりました。

JCA

952277 - xa-data-source を無効にすると、enabled が false に設定されている data-source の属性を損失し、再ロード後に有効になる

XA データソースが disabled に設定され、データソースがすでに disabled であると、次の再起動時にデータソースが有効になりました。この問題の原因は解決され、同じ状況下でもデータソースが disabled のままになるようになりました。
1007608 - トランザクションの hashCode が安定しないとメモリーリークが発生する

トランザクション hashCode が安定しないと、JCA TransactionSynchronizer によるメモリーリークが発生することが判明しました。このメモリーリークは、一定時間後に OutOfMemoryErrors が発生する原因となります。

JCA コンポーネントが更新されたため、リークの可能性が修正され、これに関連する OutOfMemoryErrors が発生しないようになりました。

JSF

991276 - WAR_BUNDLE_JSF_IMPL が EAR 内部で動作しない

JSF 実装が WAR にパッケージ化されると、動作を可能にするためにコンテナの実装ではなく WAR_BUNDLE_JSF_IMPL が使用されました。WAR ではなく EAR にパッケージ化されていた場合は、このオプションは動作しませんでした。これは、JSF メーカーに対してデプロイメント (サブデプロイメント) のみがチェックされたためで、異なるトップレベルデプロイメント (EAR) にある場合は見つかりませんでした。この問題を修正するため、JSF メーカーのトップレベルデプロイメントをチェックする、追加チェックが実装されました。

Maven リポジトリ

1011918 - jbossws-cxf-client の依存関係を取得できない -- org.apache.ws.security:wss4j:jar:1.6.11-redhat-1 が見つからない

コミュニティーの Maven POM とより一貫性のある従来の Maven POM ファイルを提供するため、本リリースの JBoss EAP ではビルドプロセスが変更になりました。EAP Maven リポジトリーの POM ファイルには、一部のコミュニティーアーティファクトバージョンとの依存関係が加えられました。

適切な Maven BOM ファイルの設定方法は、『JBoss Enterprise Application Platform 開発ガイド』を参照してください。適切な Maven BOM ファイルを設定すると、ユーザービルドに正しい推移的な依存関係バージョンが確実に含まれるようになります (JBoss EAP バージョンはサポートされるアーティファクトに使用され、コミュニティーバージョンはサポートされないアーティファクトに使用されます)。

その他

985204 - Web エグゼキューターがタスクをドロップするとソケットを閉じられない

本リリースの JBoss EAP では、タスクがエクゼキューターによってドロップされると、Web コネクターソケットを適切に閉じられなかったバグが修正されました。これは、設定された handoffExecutor がない場合に (QueuelessExecutor のように)、QueueExecutor クラスが RejectedExecutionException をスローしなかったことが原因でした。このような場合、タスクがドロップされましたが、これは想定外の挙動でした。タスクをキューに追加できない場合に必要な例外をスローするよう、QueueExecutor クラスが更新されたため、ソケットが適切に閉じられるようになりました。
901210 - デプロイディレクトリのクリーンアップ- AS7-6031

本リリースの JBoss EAP 6.2 には、新たに起動または再起動された EAP インスタンスに干渉する前に、JBOSS_HOME/tmp フォルダーと JBOSS_HOME/tmp/vfs フォルダーに作成されたファイルおよびディレクトリーを削除する修正が含まれています。

以前のバージョンの JBoss EAP では、サーバーが予期せずシャットダウンした後に古いファイルが取り残される可能性がありました (シャットダウンプロセスの一部として、JBOSS_HOME/tmp および JBOSS_HOME/tmp/vfs のファイルが削除されるため)。

本リリースの修正により、問題を緩和するフェールセーフな機能を提供します。JBoss EAP 6.2 サーバーが正常にシャットダウンしなかった場合、サーバーは一時ファイルをクリーンアップできません。しかし、再起動時にサーバーは一時ファイルの場所をクエリするようになり、以前のインスタンスのファイルが存在する場合は、新しいインスタンスに対して新しいファイルを作成するため、名前変更または削除プロセスを開始します (新規作成されたファイルと干渉しないよう、古いディレクトリーの名前が変更されます)。これらのプロセスは平行して行われます。

JBoss EAP が再起動されると、再起動が正常であるかどうかに関わらず、古い一時ファイルが削除されるようになり、(シャットダウン時または再起動時)、無駄なディスクスペースが使用されないようになりました。

注記: -Xrs JAVA_OPT は使用しないでください。信号の処理が制限され、tmp/vfs ディレクトリーのサイズが大きくなり続ける可能性があります。

PicketLink

977761 - PLINK2-25 characterEncoding パラメーターが ServiceProviderAuthenticator の Post リクエスト に使用されない

Picketlink にタイミングの問題が見つかり、希望のエンコーディングではなく、デフォルトのエンコーディングを使用してパラメーターが ServiceProviderAuthenticator の post リクエストから読み取られました。この問題は、Tomcat の値によってエンコーディングが設定される前に PicketLink によってパラメーターが読み取られることが原因でした。この問題を修正するため、エンコーディングが authenticate メソッドの一番最初に実行されるよう、エンコーティングの順番が変更になりました。

Remoting

1025319 - SSL を用いた/用いないサーバーからの EJB 呼び出しの問題

リモートのアウトバウンド接続を作成するとき、接続を作成するサービスが、ユーザー定義の設定を適用した後にデフォルトの設定を適用しました。これにより、同じキーを持つユーザー定義の設定がデフォルトの設定によって誤って上書きされました。

これにより、サーバーからのリモート EJB 接続上で SSL を無効にできませんでした。

この問題は本リリースの JBoss EAP 6 で修正されました。ユーザー定義の設定はデフォルト設定の後に適用されるようになり、ユーザー定義の設定が優先されるようになりました。

その結果、リモートのアウトバウンド接続で SSL を無効にできるようになりました。
1025185 - リモーティングサブシステム: サーバーシャットダウン中の同時変更例外

リモーティングサブシステムのサービスが、スレッドセーフでない状態でコレクション上で反復しました。

これが原因で、サーバーシャットダウン中に ConcurrentModificationException 例外が度々スローされました。この例外を除き、シャットダウンは正常に終了しました。
WARN  [org.jboss.msc.service.fail] (MSC service thread 1-55) MSC000004: Failure during stop of service jboss.remoting.endpoint.management.channel.management: java.util.ConcurrentModificationException
	at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793) [rt.jar:1.6.0_45]
	at java.util.HashMap$KeyIterator.next(HashMap.java:828) [rt.jar:1.6.0_45]
	at java.util.AbstractCollection.addAll(AbstractCollection.java:305) [rt.jar:1.6.0_45]
	at java.util.HashSet.<init>(HashSet.java:100) [rt.jar:1.6.0_45]
	at org.jboss.as.remoting.AbstractChannelOpenListenerService.stop(AbstractChannelOpenListenerService.java:123)
...

この問題は、本リリースの JBoss EAP 6 で修正されました。コレクションオブジェクトのモニターが、反復するスレッドによって保持され、コレクションでの反復がスレッドセーフな状態で実行されるようになりました。

その結果、 ConcurrentModificationException 例外がスローされないようになりました。

RPM

998319 - RPM によって重要なデータが /var/tmp に置かれる

RPM によって、/domain/data などの重要なデータが /var/tmp に置かれました。/var/tmp は、常に削除可能な一時データが格納される場所です。/domain/data には、トランザクションリカバリージャーナルや Hornet Q 大型メッセージストアおよびジャーナルなどの損失してはならない重要なデータが含まれるため、/var/tmp/ へはリダイレクトしてはなりません。

本リリースの JBoss EAP 6 ではこのエラーが修正されました。新しいインストールでは、/usr/share/jbossas/domain/data はリンクではなくディレクトリーとなります。

既存のインストールでは、以下の方法 1 つを実行する必要があります。
  • 設定およびデータファイル (一時ディレクトリーを含む) を新しいインストールディレクトリーへ再インストールおよび移行します。
  • tmpwatch をアンインストールし、 /var/tmp/jbossas のクリーンアップを無効にします。
  • jbossas によって /var/tmp/jbossas に置かれるファイルが削除されないように、tmpwatch を設定します。

スクリプトおよびコマンド

998913 - standalone.bat が -XX:+TieredCompilation JVM オプションを設定する

Microsoft Windows Server 上で使用された standalone.bat バッチファイルの問題が修正されました。以前、このバッチファイルには、階層型コンパイル -XX:+TieredCompilation を設定する JVM オプションが含まれていました。状況によっては、この設定が原因でパフォーマンスの問題が発生することが判明したため、この設定は削除されました。
916960 - 括弧が EAP へのパス上にあると Standalone.bat が動作しない

以前のリリースの JBoss EAP では、standalone.batadd-user.bat などの提供されたバッチファイルが保存されているパスに括弧や空白文字が含まれていると、これらのバッチファイルが Microsoft Windows Server 上で想定どおりに動作しませんでした。フルパスが確認されるよう、引用符を使用してバッチファイルが改良されました。その結果、パスに括弧や空白文字が含まれていても、バッチファイルが想定どおり動作するようになりました。

セキュリティー

920160 - カスタム承認モジュールによって保護される Web アプリケーションへの不正アクセスが HTTP 403 (Forbidden) でなく HTTP 200 (OK) になる

JBoss EAP 6.1.0 では、カスタム承認モジュールによって保護される Web アプリケーションへの不正アクセスが HTTP 403 (Forbidden) でなく HTTP 200 (OK) になりました。この問題は修正され、正しい応答が提供されるようになりました。

サーバー

1022223 - デプロイメント記述子のオーバーレイが JSP を上書きしない

デプロイメント記述子のオーバーレイによって、管理者はデプロイメントの JSP を上書きできるはずですが、JBoss Web がコンテンツの対応に VFS を使用しなかったため、JSP ファイルが表示されず、オーバーレイが機能しませんでした。デプロイメントメソッドのテストが追加され、想定どおりデプロイメント記述子を上書きできるようになりました。

トランザクションマネージャー

1016120 - Transaction JDBC オブジェクトストアが PostgreSQL Plus 9.2 で起動しない

JBoss トランザクションマネージャーには、PostgreSQL Plus 9.2 に対して適切に設定されたドライバークラスがありませんでした。そのため、PostgreSQL Plus 9.2 上で JDBC トランザクションオブジェクトストアを使用しようとすると、ClassNotFoundException 例外が発生しました。

本リリースの JBoss EAP 6 では、JBoss トランザクションマネージャーが更新され、PostgreSQL Plus 9.2 ドライバークラス (jdbc.drivers.postgres_driver) も更新されたため、JDBC オブジェクトストアを PostgreSQL Plus 9.2 サーバーで使用できるようになりました。

Web

997009 - AJP コネクターの requiredSecret 属性

JBoss EAP 5.x の前でロードバランシング Apache サーバーを使用すると、AJP コネクターの requiredSecret 属性を設定できます。これは、同じ秘密のキーワードを持つロードバランサーワーカーからのリクエストのみを許可するために使用されます。

JBoss EAP 6.0.x および 6.1.x では、この値を設定できませんでした。この問題は修正され、以下のように、システムプロパティーを requiredSecret 属性に必要な値に設定できるようになりました。
org.apache.coyote.ajp.DEFAULT_REQUIRED_SECRET=yoursecretvalue
996558 - https コネクターの追加後に https 接続がハングする

管理 CLI を介して HTTPS コネクターを追加すると、各コマンドは正常に完了しても試行した接続がすべてハングしました。これは、設定が不完全でもコネクターは作成直後に起動されたため、コネクターが想定どおりに動作しなかったことが原因でした。この問題の回避方法は、すべての設定ステートメントが同時に完了するよう、設定コマンドを batchend-batch のシーケンスでラップすることでした。この問題の原因が解決され、設定ステートメントがシーケンスまたは管理 CLI バッチとして完了したかどうかに関係なく、HTTP コネクターへ正常にアクセスできるようになりました。

Web コンソール

947913 - 管理コンソール: 設定したリソースアダプターでクリックすると、リソースアダプタープロパティーが編集可能になる

Web 管理コンソールでリソースアダプター (RA) のプロパティーを表示すると、アダプターのプロパティーが編集可能フィールドになる可能性があり、既存フィールドを変更または削除でき、新規フィールドを追加することも可能でした。これらのフィールドは Web 管理コンソールで編集する機能がないため、読み取り専用フィールドとして表示されるべきでした。これらのフィールドが編集されると、編集された値が編集されたフォームに残りましたが、リソースアダプターの設定ファイルには格納されませんでした。この問題は修正され、すべてのリソースアダプターのプロパティーが読み取り専用フィールドとして表示されるようになりました。
900063 - カスタムハンドラーの作成に失敗した場合のエラーメッセージがない

以前の JBoss EAP 6 リリースでは、Web 管理コンソールでカスタムロギングハンドラーの作成に失敗しても、ユーザーにエラーメッセージが送られませんでした。そのため、カスタムロギングハンドラーが作成されたとユーザーが仮定する可能性がありました。この問題を修正するため、エラーメッセージが表示されるようになり、ユーザーに作成の失敗を明確に伝えるようになりました。
1012539 - メッセージングブリッジ設定の "Started?" フィールドが正しくない

ランタイム情報フィールド Started? が本リリースの Profile → Messaging → Connections → Bridges 画面より削除されました。

これは、このフィールドに正しくない情報が表示される場合があることが判明し、このフィールドは編集不可能であるため、ユーザーに機能を提供しなかったためです。
996889 - ドメインのサーバーに対してポートオフセットを変更できない

ドメインのサーバーに対してポートオフセットを変更する場合、「Internal server error」というメッセージが表示され、変更に失敗しました。server-config リソースにある socket-binding-group の値が未定義であったことが根本的な原因で、サーバー設定を変更しようとしても Socket binding 選択ボックスに事前選択された値がありませんでした。その結果、複合操作の最初の部分が失敗しました。原因が修正され、ドメインのサーバーに対するポートオフセットを Web 管理コンソールで設定できるようになりました。

Web サービス

1026992 - Picketlink STS が CXF の更新で動作しない

CVE-2013-2133 に対応するために JBoss EAP に適用された修正により、EJB3 ベースの WS エンドポイントにアタッチされた JAXWS ハンドラーが実行される前にコンテナによって承認チェックが暗示されます。この結果、PicketLink SAML2Handler は後で使用されるセキュリティープリンシパルを確立するため、PicketLink 使用シナリオの一部が影響を受ける可能性があります。

org.jboss.ws.cxf.disableHandlerAuthChecks システムプロパティーを true に設定するか、次のように jboss-webservices.xml 記述子に org.jboss.ws.cxf.disableHandlerAuthChecks プロパティーを指定すると、追加の承認チェックを無効にし、既存の PicketLink デプロイメントを継続して使用できます。
<?xml version="1.1" encoding="UTF-8"?>
<webservices xmlns="http://www.jboss.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  version="1.2" xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee">

  <property>
    <name>org.jboss.ws.cxf.disableHandlerAuthChecks</name>
    <value>true</value>
  </property>
</webservices>

記述子は、ハンドラー承認チェックを無効にするデプロイメント内の META-INF に置きます。

システムプロパティーの設定は、サーバー上のすべてのデプロイメントに影響するようになります。

org.jboss.ws.cxf.disableHandlerAuthChecks プロパティーを有効にすると、システムが CVE-2013-2133 に対して脆弱になります。EJB メソッド上に宣言されたセキュリティー制限が適用されることをアプリケーションが想定し、JAX-WS ハンドラーとは独立して制限を適用しない場合、プロパティーを有効にすべきではありません。このプロパティーは、アプリケーションの破損を防ぐために必要な場合に、後方互換性を維持する目的でのみ使用する必要があります。
988318 - CLI - Web サービスサブシステムの wsdl-host 属性で操作が未定義で、Web サービスで war をリロードするとデプロイできない

wsdl-host 属性が未定義であるとアプリケーションのデプロイメントに失敗する原因となっていたバグは、本リリースの JBoss EAP 6 で修正されました。
999223 - wsconsume.sh がデフォルトのターゲットバージョン - 2.2 で失敗する

以前のバージョンの JBoss EAP では、OpenJDK バージョン 1.6 が使用されると、WSConsume が JAXWS 2.2 レベルソースのコンパイルに失敗しました。

この問題は、本リリースで修正されました。

Weld

956631 - CLONE - 別の Web アプリケーションからのクロスコンテキスト forward/include 呼び出しによって HttpRequestContext のクリーンアップが中止する

転送されたリクエストでは、他のサーブレットに送信されても、処理を行っていたサーブレットが終了すると、WeldListener がバインドされたコンテキストリクエストをクリーンアップしました。

これにより、他のサーブレットがコンテキストにアクセスしようとすると、NullPointerException が発生しました。

サーブレットがリダイレクトされた場合は、バインドされたコンテキストをクリーンアップしないようになったため、この問題は本リリースの JBoss EAP 6 で修正されました。

その結果、getRequestDispatcher().include() を使用してサーブレット間でリクエストを転送しても、誤った WeldListener クリーンアップに関連する例外が発生しないようになりました。
910185 - Weld の TypeSafeObserverResolver キャッシュの境界がない

TransactionalObserverNotifier によって使用される Weld クラス TypeSafeObserverResolver には、エンティティーを制限または期限切れにする設定オプションがありません。通常、CDI 限定子の数は少ないですが、アプリケーションがアノテーションに任意データを用いて AnnotationLiteral 派生のクラスを使用する場合は、数が多くなる場合があります。

このため、TypeSafeObserverResolver キャッシュが大変大きくなることがあり、異なる限定子が多く使用されると OutOfMemoryError が発生することがありました。

本リリースの JBoss EAP 6 では、解決されたキャッシュの設定可能な上限境界が TypeSafeObserverResolver に実装され、この問題は修正されました。

ユーザーは org.jboss.weld.resolution.cacheSize プロパティーを設定して、解決されたキャッシュエントリーの最大数を制限できます。最大境界のデフォルト値は 1048576 キャッシュエントリーです。

Web サービス

969924 - Picketlink STS が CXF の更新で動作しない

CVE-2013-2133 に対応するために JBoss EAP に適用された修正により、EJB3 ベースの WS エンドポイントにアタッチされた JAXWS ハンドラーが実行される前にコンテナによって承認チェックが暗示されます。この結果、PicketLink SAML2Handler は後で使用されるセキュリティープリンシパルを確立するため、PicketLink 使用シナリオの一部が影響を受ける可能性があります。

org.jboss.ws.cxf.disableHandlerAuthChecks システムプロパティーを true に設定するか、次のように jboss-webservices.xml 記述子に org.jboss.ws.cxf.disableHandlerAuthChecks プロパティーを指定すると、追加の承認チェックを無効にし、既存の PicketLink デプロイメントを継続して使用できます。
  <?xml version="1.1" encoding="UTF-8"?>
  <webservices xmlns="http://www.jboss.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    version="1.2" xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee">

    <property>
      <name>org.jboss.ws.cxf.disableHandlerAuthChecks</name>
      <value>true</value>
    </property>

  </webservices>

記述子は、ハンドラー承認チェックを無効にするデプロイメント内の META-INF に置かれます。システムプロパティーの設定によって、サーバーのすべてのデプロイメントが影響を受けます。org.jboss.ws.cxf.disableHandlerAuthChecks プロパティーを有効にすると、システムが CVE-2013-2133 に対して脆弱になります。EJB メソッド上に宣言されたセキュリティー制限が適用されることをアプリケーションが想定し、JAX-WS ハンドラーとは独立して制限を適用しない場合、プロパティーを有効にすべきではありません。このプロパティーは、アプリケーションの破損を防ぐために必要な場合に、後方互換性を維持する目的でのみ使用する必要があります。

mod_cluster

958991 - ProxyPass / balancer://bal および CreateBalancers 1 を使用する時の mod_cluster コア

JBoss EAP のバージョン 6.1.0 および 6.1.1 に不具合があり、stickysession=JSESSIONID|jsessionid を設定せずに /conf.d/mod_cluster.conf に CreateBalancers 1 を設定すると、セグメンテーションに失敗しました。この問題は JBoss EAP 6.2 で修正され、stickysession 要素が CreateBalancers 設定へ追加されました。
960243 - ProxyPass 統合の回帰

以前のバージョンの mod_proxy_cluster.so に存在する不具合により (バグ 960246)、ディレクトリーへアクセスすると 503 エラーが返されました (例: <filename class="directory">/app/clusterbench/requestinfo/</filename>)。この問題は本リリースの JBoss EAP で修正され、ディレクトリーにアクセスすると mod_proxy_cluster.so が想定どおり動作するようになりました。
963720 - mod_cluster: Solaris 上で Ipv6 のプロキシ DNS ルックアップに失敗する

以前のバージョンの EAP 6 では、Solaris システム内で IPv6 アドレスを使用すると、DNS ルックアップに失敗することが確認されました。

この問題の原因は、IPv6 アドレスの zone-id 文字列にありました。

この情報は HTTPD には必要ないため、この文字列は使用されないようになり、mod_cluster が Solaris システムで想定どおり動作するようになりました。