1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

FindBugs 実施ルール

Last updated at Posted at 2019-06-26

FindBugs Rule v3.0.1 の自分用まとめ
http://findbugs.sourceforge.net/bugDescriptions.html
お見せできるものではないです。
その内に整理します…

Summary

Description Category
BC: equals メソッドは引数の型を仮定するべきではない Bad practice
BIT: ビット演算の符号をチェックする Bad practice
CN: Cloneable を実装したクラスが clone メソッドを定義していないか、使用していない Bad practice
CN: clone メソッドが super.clone() を呼び出していない Bad practice
CN: Cloneable を実装していないクラスが clone メソッドを定義している Bad practice
CNT: 既知の定数の雑な値を見つける Bad practice
Co: 抽象クラスは共変な compareTo メソッドを定義している Bad practice
Co: compareTo()/compare() は間違って float または double 値を処理する Bad practice
Co: compareTo()/compare() は Integer.MIN_VALUE を返す Bad practice
Co: 共変な compareTo メソッドの定義 Bad practice
DE: 例外を捨てているかもしれないメソッド Bad practice
DE: 例外を無視しているかもしれないメソッド Bad practice
DMI: エントリセットの要素を加えることは、Entry オブジェクトの再利用のために失敗するかもしれない Bad practice
DMI: Random オブジェクトが作成され1度しか使われない Bad practice
DMI: コレクションを消去するために removeAll メソッドを使用しない Bad practice
Dm: System.exit(...) を呼び出しているメソッド Bad practice
Dm: 危険なメソッド runFinalizersOnExit を呼び出しているメソッド Bad practice
ES: String パラメータを == や != を使用して比較している Bad practice
ES: String オブジェクトを == や != を使用して比較している Bad practice
Eq: 抽象クラスは共変な equals メソッドを宣言している Bad practice
Eq: equals メソッドは互換性のないオペランドをチェックしている Bad practice
Eq: compareTo(...) メソッドを定義して Object.equals() を使用しているクラス Bad practice
Eq: equals メソッドはサブタイプのために失敗する Bad practice
Eq: 共変な equals メソッドの定義 Bad practice
FI: 空のファイナライザは削除するべき Bad practice
FI: ファイナライザの明示的な呼び出し Bad practice
FI: ファイナライザはフィールドを null にする Bad practice
FI: ファイナライザはフィールドを null にするだけ Bad practice
FI: ファイナライザはスーパークラスのファイナライザを呼び出していない Bad practice
FI: ファイナライザはスーパークラスのファイナライザを無効にしている Bad practice
FI: ファイナライザはスーパークラスのファイナライザを呼び出しているだけ Bad practice
FS: 書式文字列は \n よりも %n を使用するべき Bad practice
GC: 検査されない型への総称呼び出し Bad practice
HE: equals メソッドは定義していますが hashCode メソッドは定義していないクラス Bad practice
HE: equals メソッドを定義して Object.hashCode() を使用しているクラス Bad practice
HE: hashCode メソッドを定義していますが equals メソッドは定義していないクラス Bad practice
HE: hashCode メソッドを定義して Object.equals() を使用しているクラス Bad practice
HE: equals メソッドを継承して Object.hashCode() を使用しているクラス Bad practice
IC: スーパークラスは初期化中にサブクラスを使用している Bad practice
IMSE: 疑わしい IllegalMonitorStateException のキャッチ Bad practice
ISC: static メソッドだけを提供するクラスの不必要なインスタンス化 Bad practice
It: Iterator.next() が NoSuchElementException をスローできない Bad practice
J2EE: HttpSession への非直列化可能オブジェクトの格納 Bad practice
JCIP: 不変クラスのフィールドは final にすべき Bad practice
ME: public 列挙型メソッドが無条件にフィールドを設定するPublic enum method unconditionally sets its field Bad practice
ME: 列挙型フィールドは public で可変である Bad practice
NP: 戻り型が Boolean のメソッドが明示的に null を返している Bad practice
NP: null を返すかもしれない clone メソッド Bad practice
NP: equals メソッドは null の引数をチェックしていない Bad practice
NP: null を返すかもしれない toString メソッド Bad practice
Nm: クラス名は大文字から始めるべき Bad practice
Nm: 例外クラスのように命名されているが、クラスは Exception から派生されていない Bad practice
Nm: 紛らわしい名前のメソッド Bad practice
Nm: フィールド名は小文字から始めるべき Bad practice
Nm: Java の後のバージョンのキーワードである識別子を使用している Bad practice
Nm: Java の後のバージョンのキーワードである識別子を使用している Bad practice
Nm: メソッド名は小文字から始めるべきです Bad practice
Nm: クラス名は実装されたインタフェースの単純名を遮るべきではない Bad practice
Nm: クラス名はスーパークラスの単純名を遮るべきではない Bad practice
Nm: 非常に紛らわしい名前のメソッド (多分意図的) Bad practice
Nm: パラメータの間違ったパッケージのためにスーパークラスのメソッドをオーバーライドしていないメソッド Bad practice
ODR: データベースリソースのクローズに失敗するかもしれないメソッド Bad practice
ODR: 例外経路でデータベースリソースのクローズに失敗するかもしれないメソッド Bad practice
OS: ストリームのクローズに失敗するかもしれないメソッド Bad practice
OS: 例外経路でストリームのクローズに失敗するかもしれないメソッド Bad practice
PZ: 繰り返しでエントリオブジェクトを再利用しない Bad practice
RC: 定数への疑わしい参照比較 Bad practice
RC: Boolean 値の疑わしい参照比較 Bad practice
RR: InputStream.read() の戻り値を無視しているメソッド Bad practice
RR: InputStream.skip() の戻り値を無視しているメソッド Bad practice
RV: compareTo()/compare() の結果を無効にする Bad practice
RV: 例外的戻り値を無視しているメソッド Bad practice
SI: スタティックイニシャライザは、すべての static final フィールドが代入される前にインスタンスを作成する Bad practice
SW: Swing メソッドは AWT イベントディスパッチスレッドから呼び出す必要がある Bad practice
Se: 直列化可能クラスの非 transient で非直列化可能なインスタンスフィールド Bad practice
Se: 非直列化可能クラスに直列化可能な内部クラスがある Bad practice
Se: 非直列化可能な値を直列化可能クラスのインスタンスフィールドに格納している Bad practice
Se: Comparator は Serializable を実装していない Bad practice
Se: 直列化可能な内部クラス Bad practice
Se: serialVersionUID が final ではない Bad practice
Se: serialVersionUID が long ではない Bad practice
Se: serialVersionUID が static ではない Bad practice
Se: Serializable なクラスのスーパークラスで、引数なしコンストラクタを定義していない Bad practice
Se: Externalizable なクラスが引数なしコンストラクタを定義していない Bad practice
Se: readResolve メソッドの戻り値の型が Object で宣言されていない Bad practice
Se: 直列化復元によって設定されない transient フィールド Bad practice
SnVI: Serializable なクラスが serialVersionUID を定義していない Bad practice
UI: クラスが拡張されるなら getResource の使い方は安全ではないかもしれない Bad practice
BC: 不可能なキャスト Correctness
BC: 不可能なダウンキャスト Correctness
BC: toArray メソッドの結果の不可能なダウンキャスト Correctness
BC: 常に false を返す instanceof Correctness
BIT: 符号付きバイト値のビット加算 Correctness
BIT: 互換性のないビットマスク Correctness
BIT: ((...) & 0) == 0 なのか確かめている Correctness
BIT: 互換性のないビットマスク Correctness
BIT: 符号付きバイト値のビット論理和 Correctness
BIT: ビット演算の符号をチェックする Correctness
BOA: スーパークラスの Adapter で実装されるメソッドを誤ってオーバーライドしているクラス Correctness
BSHIFT: シフト演算の正しくない構文解析の可能性がある Correctness
BSHIFT: 32ビット int の-31から31の範囲を超えた量によるシフト Correctness
DLS: return 文に無駄なインクリメントがある Correctness
DLS: クラスリテラルの無効な代入 Correctness
DLS: 上書きされたインクリメント Correctness
DMI: 逆にされた引数 Correctness
DMI: 月のための間違った定数値 Correctness
DMI: 正確に表されない double から構築された BigDecimal Correctness
DMI: hasNext メソッドで next メソッドを呼び出している Correctness
DMI: コレクションは自分自身を含めるべきではない Correctness
DMI: D'oh! 無意味なメソッド呼び出し Correctness
DMI: 配列で hashCode メソッドを呼び出している Correctness
DMI: int に対して Double.longBitsToDouble() を呼び出している Correctness
DMI: コレクションへの無意味な呼び出し Correctness
Dm: ランタイムリテンションなしで、アノテーションの存在を調べるためにリフレクションを使用することはできない Correctness
Dm: ScheduledThreadPoolExecutor の最大プールサイズを変えようとする無駄な試み Correctness
Dm: コアプールサイズが0の ScheduledThreadPoolExecutor の作成 Correctness
Dm: EasyMock メソッドへの役に立たない/無意味な呼び出し Correctness
Dm: Math.max と Math.min の間違った組み合わせ Correctness
EC: equals メソッドを使用して配列と非配列を比較している Correctness
EC: 配列の equals メソッド呼び出しは == と等価である Correctness
EC: equals(...) メソッドを使用して互換性のない配列を比較している Correctness
EC: equals(null) の呼び出し Correctness
EC: equals メソッドを呼び出して無関係のクラスとインタフェースを比較している Correctness
EC: equals メソッドを呼び出して異なる型のインタフェースを比較している Correctness
EC: equals メソッドを呼び出して異なる型を比較している Correctness
EC: 参照等価性を使用して異なる型を比較している Correctness
Eq: equals メソッドは常に false を戻す Correctness
Eq: equals メソッドは常に true を返す Correctness
Eq: equals メソッドはクラスオブジェクトではなくクラス名を比較している Correctness
Eq: 列挙型は共変な equals メソッドを定義している Correctness
Eq: equals(Object) メソッドをオーバーライドしていない equals メソッドの定義 Correctness
Eq: Object.equals(Object) をオーバーライドしていない equals メソッドの定義 Correctness
Eq: equals メソッドはスーパークラスの equals メソッドをオーバーライドしているが、対称的ではないかもしれない Correctness
Eq: 共変な equals メソッドを定義して、Object.equals(Object) を継承している Correctness
FE: NaN への等価性のための絶望的なテスト Correctness
FS: 書式指示子へ渡している引数に互換性がない Correctness
FS: 与えられた引数の型は書式指示子に合致しません Correctness
FS: printf スタイルの書式が期待されているところで MessageFormat が与えられている Correctness
FS: 書式文字列で実際に使われるより、多くの引数が渡されている Correctness
FS: 無効な書式文字列 Correctness
FS: 書式文字列は足りない引数を参照している Correctness
FS: 書式文字列ための前の引数がない Correctness
GC: 型パラメータとメソッド引数に関係がない Correctness
HE: ハッシュ化された文脈でハッシュ化できないクラスの使用がシグネチャで宣言されている Correctness
HE: ハッシュデータ構造で hashCode メソッドのないクラスを使用している Correctness
ICAST: int 値を long に変換して絶対時間として使用している Correctness
ICAST: 整数値を double にキャストして Math.ceil() に渡している Correctness
ICAST: 整数値を float にキャストして Math.round() に渡している Correctness
IJU: run メソッドでの JUnit アサーションは JUnit によって通知されない Correctness
IJU: TestCase は suite メソッドの間違った宣言をしている Correctness
IJU: TestCase はテストがない Correctness
IJU: TestCase は super.setup() を呼び出さない setUp メソッドを実装している Correctness
IJU: TestCase は 非 static な suite メソッドを実装している Correctness
IJU: TestCase は super.tearDown() を呼び出さない tearDown メソッドを実装している Correctness
IL: コレクションは自分自身を追加している Correctness
IL: 明らかな無限ループ Correctness
IL: 明らかな無限再帰ループ Correctness
IM: 整数剰余の結果の整数乗算 Correctness
INT: int 値と long 定数との間違った比較 Correctness
INT: 負でない値と負の定数またはゼロとの間違った比較 Correctness
INT: 符号付きバイトの間違った比較 Correctness
IO: オブジェクト出力ストリームへの追加は失敗に終わる Correctness
IP: メソッドで読み取られずに上書きされているパラメータ Correctness
MF: スーパークラスのフィールドを隠すフィールドを定義しているクラス Correctness
MF: フィールドを隠す変数を定義しているメソッド Correctness
NP: null 値を利用している Correctness
NP: null 値を例外経路で利用している Correctness
NP: null の引数をチェックしていないメソッド Correctness
NP: 常に null 値のオブジェクトで close メソッドを呼び出している Correctness
NP: null 値を利用することが保証されている Correctness
NP: null 値を例外経路で利用することが保証されている Correctness
NP: 非 null フィールドは初期化されていない Correctness
NP: メソッド呼び出しは非 null パラメータに対して null を渡している Correctness
NP: null を返すかもしれないメソッドが @Nonnull 宣言されている Correctness
NP: null とわかっている値をその型のインスタンスなのか確かめている Correctness
NP: null 値を利用している可能性がある Correctness
NP: null 値を例外経路で利用している可能性がある Correctness
NP: メソッド呼び出しは非 null パラメータに対して null を渡している Correctness
NP: メソッド呼び出しは非 null パラメータに対して null を渡している Correctness
NP: 非 null パラメータに null を渡している非仮想メソッドの呼び出し Correctness
NP: Optional の戻り型を持つメソッドが明示的に null を返す Correctness
NP: @Nonnull でアノテートされたフィールドに null を格納している Correctness
NP: 書き込まれていないフィールドの読み出し Correctness
Nm: クラスは equal(Object) を定義しています。equals(Object) にすべきですか? Correctness
Nm: クラスは hashcode() を定義しています。hashCode() にすべきですか? Correctness
Nm: クラスは tostring() を定義しています。toString() にすべきですか? Correctness
Nm: 明らかなメソッドとコンストラクタの混乱 Correctness
Nm: 非常に紛らわしい名前のメソッド Correctness
Nm: パラメータの間違ったパッケージのためにスーパークラスのメソッドをオーバーライドしていないメソッド Correctness
QBA: 論理式で boolean リテラル値を代入しているメソッド Correctness
RANGE: 配列インデックスは範囲外 Correctness
RANGE: 配列の長さは範囲外 Correctness
RANGE: 配列オフセットは範囲外 Correctness
RANGE: 文字列インデックスは範囲外 Correctness
RC: 疑わしい参照比較 Correctness
RCN: 既に利用していた値の null チェック Correctness
RE: 正規表現のための無効な構文 Correctness
RE: 正規表現のために使われている File.separator Correctness
RE: 正規表現のために使われている "." または " "
RV: 0から1の乱数値は整数値0に丸められる Correctness
RV: 符号付き32ビットハッシュコードの絶対値を計算する間違った試み Correctness
RV: 符号付き整数の乱数の絶対値を計算する間違った試み Correctness
RV: compareTo によって返された特定の値のコードチェック Correctness
RV: 作成した例外をスローするのではなく捨てている Correctness
RV: 戻り値を無視しているメソッド Correctness
RpC: 条件テストの繰り返し Correctness
SA: フィールドの自己代入 Correctness
SA: フィールドとそれ自身との自己比較 Correctness
SA: フィールドの無意味な自己演算 (たとえば、 x & x) Correctness
SA: フィールドへの代入ではなくローカル変数への自己代入 Correctness
SA: ローカル変数とそれ自身との自己比較 Correctness
SA: 変数の無意味な自己演算 (たとえば、x & x) Correctness
SF: switch 文のフォールスルーのために格納が無効になっている Correctness
SF: スローする switch 文のフォールスルーのために格納が無効になっている Correctness
SIC: 非 static 内部クラスとスレッドローカルのデッドロック Correctness
SIO: instanceof 演算子を使用した不必要な型チェック Correctness
SQL: インデックスが0で PreparedStatement にアクセスしようとしているメソッド Correctness
SQL: インデックスが0で ResultSet にアクセスしようとしているメソッド Correctness
STI: interrupted メソッドを呼び出すために不要な currentThread メソッドを呼び出している Correctness
STI: スレッドインスタンスで static Thread.interrupted() を呼び出している Correctness
Se: 直列化機構のために private にしなければならないメソッド Correctness
Se: readResolve メソッドが static メソッドとして宣言されている Correctness
TQ: 型修飾子でアノテーションされた値がその修飾子を付けてはならない値を必要とする場所で使われている Correctness
TQ: 互換性のない型修飾子による比較値 Correctness
TQ: 型修飾子を付けていないかもしれない値がその型修飾子を必要とする方法で常に使われている Correctness
TQ: 型修飾子を付けているかもしれない値がその型修飾子を禁止する方法で常に使われている Correctness
TQ: 型修飾子でアノテートされていない値がその修飾子が付けられた値を必要とする場所で使われている Correctness
TQ: 型修飾子がない値が修飾子を必要とする場所で使われている Correctness
UMAC: 呼び出し不可能なメソッドが無名クラスで定義されている Correctness
UR: コンストラクタで初期化されていないフィールドを読み出している Correctness
UR: スーパークラスのコンストラクタから呼び出されるメソッドで初期化されていないフィールドを読み出している Correctness
USELESS_STRING: 名前のない配列で toString メソッドを呼び出している Correctness
USELESS_STRING: 配列で toString メソッドを呼び出している Correctness
USELESS_STRING: 書式文字列を使用して役に立たない方法で配列をフォーマットしている Correctness
UwF: null に設定されるだけのフィールド Correctness
UwF: 書き込まれていないフィールド Correctness
VA: 可変長引数を期待しているメソッドにプリミティブ型の配列を渡している Correctness
LG: ロガーの変更は OpenJDK の弱参照が原因で潜在的に失われる Experimental
OBL: ストリームやリソースのクリーンアップに失敗するかもしれないメソッド Experimental
OBL: チェック例外でストリームやリソースのクリーンアップに失敗するかもしれないメソッド Experimental
Dm: 呼び出したメソッドの Locale パラメータの使用を検討する Internationalization
Dm: デフォルトエンコーディングへの依存 Internationalization
DP: doPrivileged ブロック内で作成されるべきクラスローダ Malicious code vulnerability
DP: doPrivileged ブロック内で呼び出すべきメソッド Malicious code vulnerability
EI: 可変オブジェクトへの参照を返すことによって内部表現を暴露するかもしれないメソッド Malicious code vulnerability
EI2: 可変オブジェクトへの参照を取り込むことによって内部表現を暴露するかもしれないメソッド Malicious code vulnerability
FI: ファイナライザは public ではなく protected にすべき Malicious code vulnerability
MS: static フィールドに可変オブジェクトを格納することによって、内部の静的状態を暴露するかもしれないメソッド Malicious code vulnerability
MS: final でないフィールドは悪意のあるコードから保護できない Malicious code vulnerability
MS: 配列を返すことによって内部表現を暴露するかもしれない public static メソッド Malicious code vulnerability
MS: final かつパッケージプロテクテッドにすべきフィールド Malicious code vulnerability
MS: 可変配列のフィールド Malicious code vulnerability
MS: 可変コレクションのフィールド Malicious code vulnerability
MS: パッケージプロテクテッドにすべき可変コレクションのフィールド Malicious code vulnerability
MS: 可変 Hashtable のフィールド Malicious code vulnerability
MS: インタフェースから移動してパッケージプロテクテッドにすべきフィールド Malicious code vulnerability
MS: パッケージプロテクテッドにすべきフィールド Malicious code vulnerability
MS: final にすべきフィールド Malicious code vulnerability
MS: final でないフィールドはリファクタリングするべき Malicious code vulnerability
AT: 並行抽象の呼び出しシーケンスはアトミックではないかもしれない Multithreaded correctness
DC: フィールドのダブルチェックの可能性 Multithreaded correctness
DC: 部分的に初期化されたオブジェクトを暴露する可能性がある Multithreaded correctness
DL: Boolean の同期化 Multithreaded correctness
DL: デッドロックの原因になる可能性があるボクシングされたプリミティブ型の同期化 Multithreaded correctness
DL: 正準化した文字列の同期化 Multithreaded correctness
DL: ボクシングされたプリミティブ値の同期化 Multithreaded correctness
Dm: Condition で wait メソッドを呼び出している Multithreaded correctness
Dm: デフォルトの空の run メソッドを使用して作成されたスレッド Multithreaded correctness
ESync: 空の synchronized ブロック Multithreaded correctness
IS: 一貫性のない同期化 Multithreaded correctness
IS: 並行アクセスに対してガードされていないフィールド Multithreaded correctness
JLM: Lock で同期化している Multithreaded correctness
JLM: java.util.concurrent のインスタンスで同期化している Multithreaded correctness
JLM: util.concurrent 抽象でモニタスタイルの wait メソッドを使用している Multithreaded correctness
LI: static フィールドの間違った遅延初期化 Multithreaded correctness
LI: 更新される static フィールドの間違った遅延初期化 Multithreaded correctness
ML: フィールドを同期化でガードしようとする無駄な試み Multithreaded correctness
ML: 更新されるフィールドで同期化しているメソッド Multithreaded correctness
MSF: 可変サーブレットフィールド Multithreaded correctness
MWN: 不整合な notify メソッド Multithreaded correctness
MWN: 不整合な wait メソッド Multithreaded correctness
NN: 裸の notify メソッド Multithreaded correctness
NP: 同じフィールドでの同期化と null チェック Multithreaded correctness
No: notifyAll メソッドではなく notify メソッドを使用している Multithreaded correctness
RS: readObject メソッドを同期化しているクラス Multithreaded correctness
RV: putIfAbsent の戻り値は無視されて putIfAbsent に渡した値は再利用された Multithreaded correctness
Ru: スレッドで run メソッドを呼び出している Multithreaded correctness
SC: Thread.start() を呼び出しているコンストラクタ Multithreaded correctness
SP: スピンロックをしているメソッド Multithreaded correctness
STCAL: static Calendar の呼び出し Multithreaded correctness
STCAL: static DateFormat の呼び出し Multithreaded correctness
STCAL: static Calendar フィールド Multithreaded correctness
STCAL: static DateFormat Multithreaded correctness
SWL: ロックを保持して Thread.sleep() を呼び出しているメソッド Multithreaded correctness
TLW: 2つ以上のロックを保持して wait メソッドを呼び出している Multithreaded correctness
UG: 同期化していない get メソッド、同期化している set メソッド Multithreaded correctness
UL: すべての経路でロックが解除されないメソッド Multithreaded correctness
UL: すべての例外経路でロックが解除されないメソッド Multithreaded correctness
UW: wait メソッドの無条件呼び出し Multithreaded correctness
VO: volatile フィールドへのインクリメントはアトミックではない Multithreaded correctness
VO: 配列への volatile 参照は、配列要素を volatile として扱わない Multithreaded correctness
WL: クラスリテラルではなく getClass で同期化している Multithreaded correctness
WS: writeObject メソッドは同期化しているがその他のメソッドは同期化していないクラス Multithreaded correctness
Wa: Condition.await() がループの中にない Multithreaded correctness
Wa: wait メソッドがループの中にない Multithreaded correctness
Bx: プリミティブ値がボクシングされて、すぐにアンボクシングされる Performance
Bx: プリミティブ値がプリミティブ型の型変換をするためにボクシングされて、アンボクシングされる Performance
Bx: プリミティブ値が3項演算子のためにアンボクシングされて、型変換される Performance
Bx: ボクシングされた値がアンボクシングされて、すぐに再ボクシングされる Performance
Bx: プリミティブが比較でボクシングされている Performance
Bx: ボクシング/アンボクシングはプリミティブを解析する Performance
Bx: toString メソッドを呼び出すためにプリミティブ型のラッパクラスのインスタンスを作成している Performance
Bx: 効率が悪い浮動小数点 Number コンストラクタを呼び出しているメソッド Performance
Bx: 効率が悪い Number コンストラクタを呼び出しているメソッド Performance
Dm: URL の equals メソッドと hashCode メソッドはブロックする Performance
Dm: URL の Map や Set はひどい性能になる Performance
Dm: 効率が悪い Boolean コンストラクタを呼び出しているメソッド Performance
Dm: 明示的なガベージコレクション Performance
Dm: クラスオブジェクトを得るためだけにインスタンスを作成しているメソッド Performance
Dm: 整数の乱数を生成するためには nextDouble メソッド ではなく nextInt メソッドを使用する Performance
Dm: 効率が悪い new String(String) コンストラクタを呼び出しているメソッド Performance
Dm: String の toString メソッドを呼び出しているメソッド Performance
Dm: 効率が悪い new String() コンストラクタを呼び出しているメソッド Performance
HSC: 複数のクラスファイルにわたって複製されている巨大な文字列定数 Performance
SBSC: ループの中で + を使用して文字列を連結しているメソッド Performance
SIC: static 内部クラスにすべき Performance
SIC: 名前付き static 内部クラスにリファクタリングできるかもしれない Performance
SIC: static 内部クラスにリファクタリングできるかもしれない Performance
SS: 読み出されないフィールド Performance
UM: 定数値で Math クラスの static メソッドを呼び出しているメソッド Performance
UPM: private メソッドは決して呼び出されない Performance
UrF: 読み出されないフィールド Performance
UuF: 未使用のフィールド Performance
WMI: entrySet イテレータではなく効率が悪い keySet イテレータを使用している Performance
Dm: ハードコードされた定数データベースパスワード Security
Dm: 空のデータベースパスワード Security
HRS: 信頼できない入力から形成された HTTP cookie Security
HRS: HTTP レスポンススプリッティング脆弱性 Security
PT: サーブレットの絶対パストラバーサル Security
PT: サーブレットの相対パストラバーサル Security
SQL: SQL の Statement の execute または addBatch メソッドに定数でない文字列を渡している Security
SQL: PreparedStatement が定数でない文字列から生成されている Security
XSS: 反射型クロスサイトスクリプティング脆弱性がある JSP Security
XSS: 反射型クロスサイトスクリプティング脆弱性がエラーページにあるサーブレット Security
XSS: 反射型クロスサイトスクリプティング脆弱性があるサーブレット Security
BC: 抽象コレクションへの疑わしいキャスト Dodgy code
BC: 具象コレクションへの疑わしいキャスト Dodgy code
BC: 未チェック/未確認のキャスト Dodgy code
BC: メソッドからの戻り値の未チェック/未確認のキャスト Dodgy code
BC: 常に true を返す instanceof Dodgy code
BSHIFT: 符号なし右シフトを short/byte にキャストしている Dodgy code
CI: final なクラスが protected フィールドを宣言している Dodgy code
DB: 2つの分岐のために同じコードを使用しているメソッド Dodgy code
DB: switch 文の2つの case のために同じコードを使用しているメソッド Dodgy code
DLS: ローカル変数への無効な代入 Dodgy code
DLS: return 文に役に立たない代入がある Dodgy code
DLS: ローカル変数への無効な null 代入 Dodgy code
DLS: フィールドを遮るローカル変数への無効な代入 Dodgy code
DMI: ハードコードされた絶対パス名への参照がある Dodgy code
DMI: ObjectOutput に書き込まれる非直列化可能オブジェクト Dodgy code
DMI: substring(0) の呼び出しは元の値を返す Dodgy code
Dm: Thread オブジェクトが Runnable が期待されているところに渡されている Dodgy code
Eq: スーパークラスの equals メソッドをオーバーライドしていないクラス Dodgy code
Eq: 異常な equals メソッド Dodgy code
FE: 浮動小数点の等価性のためのテスト Dodgy code
FS: Boolean 型でない引数を %b 書式指示子を使用してフォーマットしている Dodgy code
IA: 潜在的な継承されたメソッドなのか外部のメソッドなのかあいまいなメソッドの呼び出し Dodgy code
IC: 初期化が循環している Dodgy code
ICAST: 整数の除算の結果を double または float にキャストしている Dodgy code
ICAST: 整数乗算の結果を long にキャストしている Dodgy code
IM: 平均の計算はオーバーフローする可能性がある Dodgy code
IM: 負数で機能しない奇数チェック Dodgy code
INT: 1を法とする整数の剰余 Dodgy code
INT: 整数値の無意味なビットマスク演算 Dodgy code
INT: 整数値の無意味な比較 Dodgy code
MTIA: Servlet クラスを拡張したクラスでのインスタンス変数の使用 Dodgy code
MTIA: Struts Action を拡張したクラスでのインスタンス変数の使用 Dodgy code
NP: readLine メソッドの結果が null なのか確かめないで値を利用している Dodgy code
NP: readLine メソッドの結果をすぐに利用している Dodgy code
NP: null とわかっている値のロード Dodgy code
NP: メソッドはパラメータに nullness アノテーションを強化している Dodgy code
NP: メソッドは戻り値の nullness アノテーションを緩和している Dodgy code
NP: null になっている可能性があるメソッドの戻り値を利用している Dodgy code
NP: null 値を実行不可能かもしれない分岐で利用している可能性がある Dodgy code
NP: パラメータは 非 null でなければならないが null 可能としてアノテートされている Dodgy code
NP: 書き込まれていない public または protected フィールドの読み出し Dodgy code
NS: 潜在的な非短絡論理の危険な使用 Dodgy code
NS: 非短絡論理の疑わしい使用 Dodgy code
PZLA: null ではなく長さが0の配列を返すことを検討する Dodgy code
QF: 複雑か巧妙か間違ったインクリメントの for ループ Dodgy code
RCN: 非 null 値と null 値との冗長な比較 Dodgy code
RCN: 2つの null 値の冗長な比較 Dodgy code
RCN: null でないことがわかっている値の冗長な null チェック Dodgy code
RCN: null とわかっている値の冗長な null チェック Dodgy code
REC: 例外がスローされないのに例外をキャッチしている Dodgy code
RI: スーパークラスと同じインタフェースを実装しているクラス Dodgy code
RV: String.indexOf の結果が正かどうか確かめている Dodgy code
RV: readLine メソッドの結果を null でないのか確かめた後で捨てている Dodgy code
RV: ハッシュコードの剰余は負かもしれない Dodgy code
RV: 符号付き32ビット整数の乱数の剰余 Dodgy code
RV: メソッドは戻り値を無視しています、これは間違いではないですか? Dodgy code
RV: 副作用がないメソッドの戻り値は無視される Dodgy code
SA: フィールドの二重代入 Dodgy code
SA: ローカル変数の二重代入 Dodgy code
SA: ローカル変数の自己代入 Dodgy code
SF: 1つの case が次の case へと通り抜ける switch 文を発見した Dodgy code
SF: default がない switch 文を発見した Dodgy code
ST: インスタンスメソッドから static フィールドへの書き込み Dodgy code
Se: サブクラスで継承できない private な readResolve メソッド Dodgy code
Se: Serializable でないクラスの transient フィールド Dodgy code
TQ: 値は型修飾子を必要としているが、不明としてマークされている Dodgy code
TQ: 値は型修飾子を必要としないが、不明としてマークされている Dodgy code
UC: 条件は効果がない Dodgy code
UC: 条件は変数型のために効果がない Dodgy code
UC: 役に立たないオブジェクトを作成した Dodgy code
UC: 役に立たないオブジェクトをスタックで作成した Dodgy code
UC: 役に立たない空ではない void メソッド Dodgy code
UCF: 役に立たない制御フロー Dodgy code
UCF: 次の行へ続くだけの役に立たない制御フロー Dodgy code
UrF: 読み出されない public または protected フィールド Dodgy code
UuF: 未使用の public または protected フィールド Dodgy code
UwF: コンストラクタで初期化されていないフィールドを null チェックなしで null 値を利用している Dodgy code
UwF: 書き込まてれいない public または protected フィールド Dodgy code
XFB: XMLインタフェースの特定の実装のインスタンスを作成しているメソッド Dodgy code
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?