コードのレビュー - リリース情報


1.0 既知の問題
   1.1 一部のパッケージのソースがレビューされない
   1.2 行番号が必ずしも表示されない
   1.3 JSDK または J2EE クラスからの内部データ変数がデータ・フロー・パスに表示されるべきでない
   1.4 「設計原則/複合度」規則で深さを負の値に設定できる
   1.5 US ASCII 以外の文字をパラメーターに使用して規則を作成したときエンコードの問題が発生する
   1.6 構造分析規則の進行状況が正しく報告されない
   1.7 メイン・ビューの開始/停止ボタンが混合アイコンになる
   1.8 規則「ロケール依存ストリングを比較する java.lang.String.compareTo () の使用を避ける」のクイック・フィックスが誤った解決策を提案する
   1.9 J2EE 規則テンプレート「[method B] の後に必ず [method A] を呼び出す」の一部のインスタンス生成に問題
   1.10 J2EE テンプレート規則「[methodB] の後に必ず [methodA] を呼び出す」に潜在的な問題
   1.11 ユーザー定義の「メソッドの定義を避ける」の規則で偽の肯定
   1.12 メソッドを指定するテンプレートがメソッド名を入力すると機能しない
   1.13 サーバー・データを構成しようとするとエラー注意ウィンドウが表示される
   1.14 Linux OS 下での設定ページの問題

1.0 既知の問題

1.1 一部のパッケージのソースがレビューされない

一部の J2EE ベスト・プラクティス規則では、次のパッケージに含まれているソースがレビューされません。
1. com.ibm
2. COM.ibm
3. sun
4. sunw
5. java
6. javax
7. org.apache
8. com.sun
9. org.omg
10. org.ietf
11. org.w3c
12. org.xml

1.2 行番号が必ずしも表示されない

「コード・レビュー」ビューでは、J2EE のベスト・プラクティス規則で検出された検出結果について、行番号が必ずしも表示されません。 検出結果をダブルクリックすると、正しい行番号が表示されます。

1.3 JSDK または J2EE クラスからの内部データ変数がデータ・フロー・パスに表示されるべきでない

データ・フロー・パスは、規則検索により強調表示される問題を起こす依存関係ヒストリーを示します。 データ・フロー・パスは「パス」タブに表示されます。 JSDK クラスまたは J2EE クラスに存在する内部データ構造がデータ・フロー・パスに表示されることがあります。 例えば、java.lang.Vector 型の変数が変更された場合に、java.lang.Object[]variable 変数が変更されたという表示が出ることがあります。 これは java.lang.Vector 実装の内部フィールドであり、この private 情報がタブに表示されるため紛らわしくなります。

1.4 「設計原則/複合度」規則で深さを負の値に設定できる

「設計原則」規則カテゴリーでは、複合度規則の深さを設定することができます。 例えば、「1 クラスを超えるネストを回避する」という規則を「3 クラスを超えるネストを回避する」に設定することができます。 規則が正しく機能するためには、深さに正数を使用する必要があります。 しかし、現行の複合度規則では、深さが正数に設定される保証がありません。 この問題を回避するには、ゼロや負の数値のような無効な入力をしないでください。

1.5 US ASCII 以外の文字をパラメーターに使用して規則を作成したときエンコードの問題が発生する

パラメーターに US ASCII 以外の文字を使用してテンプレートから規則を作成すると、エンコードの問題が発生します。 これは、例えば、ローカル文字を含む型またはメソッドを選択した場合に起こります。このエンコードの問題のため、US ASCII 以外の文字を使用してこのような特性で作成された規則を実行すると、例外が生成されます。

1.6 構造分析規則の進行状況が正しく報告されない

構造分析規則のコード・レビュー進行状況が正しく報告されません (進行状況ダイアログは、常時 100% と表示されます)。コード・レビューが完了するのを待つ必要があります。

1.7 メイン・ビューの開始/停止ボタンが混合アイコンになる

コード・レビューを開始するとき、開始/停止ボタンに開始と停止を組み合わせたアイコンが表示されることがあります。

1.8 規則「ロケール依存ストリングを比較する java.lang.String.compareTo () の使用を避ける」のクイック・フィックスが誤った解決策を提案する

規則「ロケール依存ストリングを比較する java.langString.compareTo () の使用を避ける」のクイック・フィックスで、規則がターゲットとしている問題のフィックスとして 2 つの解決策が提案されています。 <com.ibm.icu.text.Collator の使用> を提案する解決策は誤りです。 解決策は <java.text.Collator の使用> でなければなりません。

1.9 J2EE 規則テンプレート「[method B] の後に必ず [method A] を呼び出す」の一部のインスタンス生成に問題

J2EE 規則テンプレート「[methodB] の後に必ず [methodA] を呼び出す」を使用して規則を新規作成した場合、ご使用のワークスペースで [methodB] がデフォルトでコンストラクターになっていると、コード・レビューで規則を実行したときに規則検索結果が出されません。

1.10 J2EE テンプレート規則「[methodB] の後に必ず [methodA] を呼び出す」に潜在的な問題

J2EE ベスト・プラクティス・テンプレート規則「[methodB] の後に必ず [methodA] を呼び出す」から特定オブジェクト・インスタンスの規則を新規作成すると、次回の特定ケースに規則を定義したときに誤った規則検出が検出されることがあります。 パターン「[methodB] の後に必ず [methodA] を呼び出す」の場合、J2EE コードで、メソッドのオブジェクト・インスタンスのライフ・サイクルが分析されるサーブレットのライフ・サイクルより大きくなっていると、誤った規則検出が行われることがあります。 例えば、次のコードを考えてください。

public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {

// Some code here.... final ServletOutputStream outStream = response.getOutputStream(); //... No call to response.flushBuffer after. }

このコードに「ServletResponse.getOutputStream() の後 ServletResponse.flushBuffer() を常時呼び出し」という規則を作成したとします。応答オブジェクトはサーブレット自体より大きいライフ・サイクルを持つインスタンスであるため、コード・レビュー分析の際に問題が発生する可能性があります。 現行サーブレットの問題をターゲットとする他のサーブレットに検出が表示されることがあります。 このような特定オブジェクト・インスタンスのための規則を作成することには疑問があることに注意してください。

1.11 ユーザー定義の「メソッドの定義を避ける」の規則で偽の肯定

規則テンプレート「メソッドの定義を避ける」を使用して規則を新規作成して、完全修飾名を持つメソッドを選択した場合、コード・レビューではメソッドの名前とパラメーターだけが使用されます。 規則テンプレートのフォーカスはメソッド・シグニチャーにあるので、パッケージおよびクラス名の情報は無意味です。

1.12 メソッドを指定するテンプレートがメソッド名を入力すると機能しない

提供されたされた規則テンプレートから規則を新規作成した場合、メソッドの名前は入力しないでください。 ブラウザーを使用してメソッドを選択してください。

1.13 サーバー・データを構成しようとするとエラー注意ウィンドウが表示される

サーバー・データを構成しようとしてエラー注意ウィンドウが表示された場合は、.java ファイルの対応ページ (ページ・コード) を閉じてから、データの構成を再試行してください。

1.14 Linux OS 下での設定ページの問題

Linux の「設定」ページで、選択したコード・レビューに大量のルー ルが含まれている場合、規則カテゴリーおよび規則詳細のすべてが表示でき ないことがあります。次善策として、「設定」ページで高速コード・レビューを選択し、「設定」ページを閉じてから、再び開いてください。 これで、どのコード・レビューも選択できるようになり、正しく表示されるようになります。

メインの README ファイルに戻る