以下のルールは CQA モードで有効にできます。
BD.API.EQNULL - Object.equals(Object) の実装が null 値を適切に処理していることを確認する
BD.API.EQREFL - Object.equals(Object) の実装が再帰的であることを確認する
BD.CO.ITMOD - Collection を反復処理中に変更しない
BD.EXCEPT.NP - NullPointerException を避ける
BD.OPT.INEFCOL - Collection 要素の非効率な削除を防止する
BD.OPT.INEFMAPRM - Map エントリの非効率な削除を防止する
BD.OPT.INEFMAP - Map エントリの非効率な反復を防止する
BD.PB.ARRAYINP - 未検証の入力を配列インデックスとして使用しない
BD.PB.ARRAY - 配列の境界を超えてアクセスしてはならない
BD.PB.BADSHIFT - 誤ったシフト演算を避ける
BD.PB.CC - 常に同じ値に評価される条件式を避ける
BD.PB.DEREF - null チェックの前に間接参照しない
BD.PB.EXCEPT - 例外を常にキャッチする
BD.PB.GETPERM - ユーザー定義のクラス ローダーが適用される場合、getPermission() メソッドの呼び出しが想定される
BD.PB.INFREC - 無限の再帰を避ける
BD.PB.NOTEXPLINIT - 明示的に初期化する前の使用を避ける
BD.PB.NOTINITCTOR - コンストラクターおよび静的イニシャライザーで初期化する前にフィールドを使用しない
BD.PB.PBIOS - 外部プロセスが入力および出力ストリームをブロックするのを防ぐ
BD.PB.POVR - 使用前にメソッド パラメーターを上書きすることを避ける
BD.PB.RECFUN - メソッドは直接的にも間接的にも自分自身を呼び出してはならない
BD.PB.SBONE - StringBuilder/StringBuffer オブジェクトを適切に使用する
BD.PB.STRNULL - 文字列に null を付加しない
BD.PB.SWITCH - switch 文には到達できないブランチがあってはならない
BD.PB.VOVR - 未使用の値を避ける
BD.PB.ZERO - ゼロによる除算を避ける
BD.RES.FREE - 解放されたリソースを使用してはならない
BD.RES.LEAKS - リソースが割り当て解除されていることを確認する
BD.SECURITY.BUFEXP - バッファーによってラップされたデータを信頼されていないコードに公開しない
BD.SECURITY.CANPATH - パスを標準化してから検証するべきである
BD.SECURITY.CUSTOM - セキュリティ脆弱性を防止する (カスタム ルール)
BD.SECURITY.EACM - 危険なメソッドの引数を検証メソッドでカプセル化する
BD.SECURITY.PRIVIL - 特権付きのブロックで汚染されたデータを処理するのを避ける
BD.SECURITY.REMTMP - 終了の前に一時ファイルを削除する
BD.SECURITY.SENS - 機密情報が公開されるのを防ぐ
BD.SECURITY.SSSD - 機密データを安全にシリアライズする
BD.SECURITY.TDCMD - コマンド インジェクションから防御する
BD.SECURITY.TDDIG - Jakarta Digester インジェクションから防御する
BD.SECURITY.TDENV - 環境に対するインジェクションから防御する
BD.SECURITY.TDFILES - ファイルに対するインジェクションから防御する
BD.SECURITY.TDFNAMES - ファイル名に対するインジェクションから防御する
BD.SECURITY.TDINPUT - フォーマット文字列からサニタイズされていないユーザー入力を除外する
BD.SECURITY.TDJXPATH - JXPath インジェクションから防御する
BD.SECURITY.TDLDAP - LDAP インジェクションから防御する
BD.SECURITY.TDLIB - ライブラリ インジェクションから防御する
BD.SECURITY.TDLOG - ログ偽造から防御する
BD.SECURITY.TDNET - ネットワーク リソース インジェクションから防御する
BD.SECURITY.TDRESP - HTTP レスポンス分割から防御する
BD.SECURITY.TDRFL - Reflection インジェクションから防御する
BD.SECURITY.TDSQL - SQL インジェクションから防御する
BD.SECURITY.TDXML - XML データ インジェクションから防御する
BD.SECURITY.TDXPATH - XPath インジェクションから防御する
BD.SECURITY.TDXSS - XSS の脆弱性の可能性から防御する
BD.SECURITY.VPPD - すべての危険なデータを検証する
BD.SECURITY.XMLVAL - 信頼されていない XML を読み取る前にスキーマまたは DTD を使用して検証する
BD.TRS.DIFCS - 変数は単一の critical セクションのコンテキストで使用するべきである
BD.TRS.DLOCK - 二重ロックを避ける
BD.TRS.LOCK - 解放されていないロックを放棄してはならない
BD.TRS.ORDER - 異なる順序でロックを獲得しない
BD.TRS.TSHL - ロックを保持しているときにブロッキング メソッドを使用してはならない
BEAN.BLNC - JavaBean クラスでリスナー メソッド名のシグニチャを推進する
BEAN.EQUALS - JavaBean クラスは常に Object.equals () を常にオーバーライドする
BEAN.JDBC - JavaBean クラスで JDBC コードを使用することを避ける
BEAN.NFM - インスタンス フィールドは get および set メソッドを持たなければならない
BEAN.SERIALIZABLE - JavaBean クラスは Serializable を実装しなければならない
CDD.DFI - コンストラクタでの重複したフィールドの初期化を避ける
CDD.DUPC - コードの重複を避ける
CDD.DUPI - 重複した import ステートメントを避ける
CDD.DUPM - メソッドの重複を避ける
CDD.DUPS - 文字列リテラルの重複を避ける
CDD.DUPT - クラスの重複を避ける
CODSTA.BP.ABCL - ラベル付きの break または continue を避ける
CODSTA.BP.AMRO - Object を返すメソッドを宣言しない
CODSTA.BP.ARM - リフレクション メソッドを使用しない
CODSTA.BP.ARN - 配列および特定の型に対して null を返すのを避ける
CODSTA.BP.AULS - ラベルを使用してはいけない
CODSTA.BP.AUML - 複数のロガーの使用を避ける。代わりにロギング レベルを使用する
CODSTA.BP.AWRT - メソッドの戻り値の型にワイルドカードを使用しない
CODSTA.BP.BLK - 条件文で '{}' ブロックを使用する
CODSTA.BP.BLOCK - 不要なネストされたブロックを避ける
CODSTA.BP.CFNF - すべての大文字のフィールドは final として宣言する
CODSTA.BP.CMUTA - 不変クラスで public または protected コンストラクターを使用しない
CODSTA.BP.CONTINUE - break 文または continue 文を使用しない
CODSTA.BP.CS - 比較式では適切な側に定数を置く
CODSTA.BP.DLSF - ロガーを static final フィールドとして宣言する
CODSTA.BP.EXIT - System.exit() を呼び出してはいけない
CODSTA.BP.FPF - すべての仮引数を final とする
CODSTA.BP.FQNIC - インターフェイス定数を参照する場合は、定数を宣言しているインターフェイス名を付ける
CODSTA.BP.HTV - Hashtable と Vector を使用しないようにする
CODSTA.BP.IMPTD - import 文でのワイルドカード (*) の使用を避けるまたは推進する
CODSTA.BP.NRVA - 可変個引数メソッドに具体化できない型を渡さない
CODSTA.BP.NTX - 一般的または非チェック例外型を throw するメソッドの宣言を避ける
CODSTA.BP.OCMA - オーバーロードされたコンストラクターまたはメソッドのアクセシビリティをすべて同じにする
CODSTA.BP.PCF - private コンストラクターだけを持つクラスは final として宣言する
CODSTA.BP.PPAC - 匿名クラスに public または protected メンバーを宣言しない
CODSTA.EPC.AFP - メソッド引数に代入しない
CODSTA.EPC.AGBPT - パラメーター化された型から RAW 型への変換を避ける
CODSTA.EPC.CLNC - clone() メソッドでコンストラクターを使用しない
CODSTA.EPC.COMT - 数値の型が一致しない条件演算子を使用しない
CODSTA.EPC.IBS - 変数宣言では、byte または short 型の代わりに int 型を使用し、float 型の代わりに double 型を使用する
CODSTA.EPC.MSF - 多数の非 final static フィールドを使用してはならない
CODSTA.EPC.NCAC - abstract クラスのコンストラクターから abstract メソッドを呼び出さない
CODSTA.EPC.NCE - 一般的な型の例外や非チェック例外をキャッチしてはいけない
CODSTA.EPC.NCNFC - コンストラクターの実行中に予想外の NullPointerExceptions を引き起こす可能性があるメソッドを使用してはいけない
CODSTA.EPC.OVERLOAD - 適切にオーバーロードする
CODSTA.EPC.SCLONE - すべての clone() メソッドで super.clone() を呼び出す
CODSTA.EPC.STA - 同じ型引数を複数のメソッド引数で使用してはならない
CODSTA.EPC.UST - 文字列の構文解析には、indexOf() や substring() ではなく StringTokenizer を使用する
CODSTA.EPC.WSIM - static ではないメソッドから static フィールドに書き込んではいけない
CODSTA.OIM.AMMO - 抽象メソッドを使ってペアレント クラスの非抽象メソッドをオーバーライドしてはいけない
CODSTA.OIM.CLONE2 - clone() メソッドを使用するのは、Cloneable インターフェイスの実装のためだけにする
CODSTA.OIM.CLONET - final ではない Cloneable クラスの clone() メソッドが必ず CloneNotSupportedException を throw するようにする
CODSTA.OIM.CLONE - Cloneable クラスでは clone() throws CloneNotSupportedException を宣言する
CODSTA.OIM.DVOM - toString() をオーバーライドする enum 型に、static な valueOf() メソッドを定義する
CODSTA.OIM.OTOSM - toString() をオーバーライドする
CODSTA.OIM.OVERRIDE - Object.equals() と Object.hashCode() は常に一緒にオーバーライドする
CODSTA.OIM.OVOTS - 列挙型で toString() をオーバーライドしてはいけない
CODSTA.ORG.AMOC - 1 つのファイルに複数の型を入れてはいけない
CODSTA.ORG.DCI - インターフェイスで定数を定義する
CODSTA.ORG.DINT - インナー クラスではないクラスからインナー クラスのメソッドを呼び出さない
CODSTA.ORG.FO - クラス要素を適切な順序で並べる
CODSTA.ORG.IMP - 特定のクラスまたはパッケージをインポートするのを避ける
CODSTA.ORG.OGM - メソッドを名前別に編成する
CODSTA.ORG.ORCU - コンパイル単位要素を適切な順序で並べる
CODSTA.ORG.ORFIM - public メソッドと protected メソッドの間に finalize メソッドを置く
CODSTA.ORG.ORIMP - import 文をアルファベット順に並べる
CODSTA.ORG.PML - main () を最後に置く
CODSTA.ORG.UNDPN - すべての型がデフォルト以外のパッケージ名を持つようにする
CODSTA.POD.ACIAP - 定数インターフェイス アンチパターンを避ける
CODSTA.POD.ASM - 宣言しているクラスが引数の型の場合、static メソッドを避ける
CODSTA.POD.AUVT - 疎結合を実現するために、具体性がより低い型を使用する
CODSTA.POD.CHAIN - 複数のコンストラクターを持つクラスではチェーンコンストラクターを使用する
CODSTA.POD.CIOC - instanceof 比較のチェーンを避ける
CODSTA.POD.DCTOR - 可能なかぎりデフォルト コンストラクターを定義する
CODSTA.POD.IASM - static メンバーに間接的にアクセスしてはいけない
CODSTA.POD.ISACF - インターフェイスに定数を定義しない
CODSTA.POD.SMC - case 文が多すぎる/少なすぎる switch 文を避ける
CODSTA.POD.UET - 一連の static final の代わりに enum 型を使用する
CODSTA.POD.UPT - パラメーター化された型を使用する
CODSTA.READ.ABUB - プリミティブ型の自動的なボックス化/ボックス化解除に依存しない
CODSTA.READ.ACCS - 制御構造 文での複雑な条件式の使用は避ける
CODSTA.READ.AEFS - 拡張された for ループの使用を避ける/推奨する
CODSTA.READ.AFD - getter/setter メソッドを使用するのではなく、宣言している型で直接フィールドのアクセス/設定を行う
CODSTA.READ.AFQN - 完全修飾型名を使用しない
CODSTA.READ.AIC - 無名のインナー クラスを避ける
CODSTA.READ.ANL - if-else 文での負論理の使用を避ける
CODSTA.READ.ASIS - static なインポート文を使用しない
CODSTA.READ.AUTS - 不要な toString() の呼び出しを避ける
CODSTA.READ.CCB - 制御構造の末尾にコメントを付ける
CODSTA.READ.CEB - 空のブロックにコメントを付ける
CODSTA.READ.CID - ネストされた式で加算演算子または減算演算子を使用してはいけない
CODSTA.READ.CLV - ローカル変数にコメントを付ける
CODSTA.READ.CTA - 常に空の定数配列で Collection.toArray() を呼び出す
CODSTA.READ.CX - 条件演算子の使用を推進する/しない
CODSTA.READ.DOWHILE - do-while の使用を避ける
CODSTA.READ.DUN - 単一メソッドで多数の否定演算子 \"!\" を使用しない
CODSTA.READ.DVCU - 変数はできるだけ使用される場所の近くで宣言する
CODSTA.READ.ECSC - すべてのコンストラクターからスーパークラスのコンストラクターの 1 つを明示的に呼び出す
CODSTA.READ.FF - private 定数フィールドを final 宣言する
CODSTA.READ.FLV - 定数ローカル変数を final 宣言する
CODSTA.READ.HBE - 16 進の 2 進指数を避ける
CODSTA.READ.LONG - long 型の定数の最後に小文字の\"l\" または数字の \"1\" を使用しない
CODSTA.READ.MTBS - try ブロックの大きさを最小にする
CODSTA.READ.MVOS - 1 つのステートメントで複数の変数を宣言しない
CODSTA.READ.NEA - ネストされた代入または他の式に埋め込まれた代入を避ける
CODSTA.READ.NMUC - 変更されない Collection を明確にするため unmodifiable として宣言する
CODSTA.READ.NSI - static ではないイニシャライザーの使用を避ける
CODSTA.READ.PCIF - イニシャライザー、条件文、更新文のある for ループを宣言する
CODSTA.READ.PCTOR - public ではないクラスに public コンストラクターを宣言しない
CODSTA.READ.PDBB - 宣言はブロックの先頭にだけ書く
CODSTA.READ.PFL - for ループまたは while ループの使用を義務付ける
CODSTA.READ.SIE - size() と 0 を比較するのではなく、Collection および Map の isEmpty() を使用する
CODSTA.READ.UATS - this と super の使用を避けるまたは推進する
CODSTA.READ.UBL - Integer.parseInt() メソッドを使用して 2 進表記から整数値を作成してはならない
CODSTA.READ.ULIT - 数値リテラルでアンダースコア文字 (_) を使用する
CODSTA.READ.USN - リテラル定数は使用しない
CODSTA.READ.VDT - 型が異なる複数の変数を 1 つのステートメントで宣言しない
CODSTA.READ.VIFS - for ループでの初期化と更新の数を制限する
DBC.CPT - null を返すメソッドで事後条件 $result!=null を指定してはいけない
DBC.IGM - すべての getter メソッドには @invariant タグを使用する
DBC.IMNR - null 以外であることが保証されていない参照でメソッドを呼び出してはいけない
DBC.IPAN - null チェックを行う前に間接参照されているすべての引数に @pre != null タグを付ける
DBC.PKGC - すべての package-private クラスには @invariant タグを使用する
DBC.PKGMPOST - すべての package-private メソッドには @post タグを使用する
DBC.PKGMPRE - すべての package-private メソッドには @pre タグを使用する
DBC.PRIC - すべての private クラスには @invariant タグを使用する
DBC.PRIMPOST - すべての private メソッドには @post タグを使用する
DBC.PRIMPRE - すべての private メソッドには @pre タグを使用する
DBC.PROC - すべての protected クラスには @invariant タグを使用する
DBC.PROMPOST - すべての protected メソッドには @post タグを使用する
DBC.PROMPRE - すべての protected メソッドには @pre タグを使用する
DBC.PUBC - すべての public クラスには @invariant タグを使用する
DBC.PUBMPOST - すべての public メソッドには @post タグを使用する
DBC.PUBMPRE - すべての public メソッドには @pre タグを使用する
DBC.RCC - @pre および @post 条件の再チェックを避ける
DBC.SYNTAX - DbCでは適切なシンタックスを使用する
ECLIPSE.IPMF - MANIFEST.MF で internal パッケージをエクスポートしない
ECLIPSE.PCMF - Eclipse 3.0 の互換性のため MANIFEST.MF 内の Export-Package と Provide-Package の値を一致させる
ECLIPSE.SMF - MANIFEST.MF で Eclipse-AutoStart エントリの不足を避ける
EJB.ABCS - EJB クラスでの Servlet コードの使用は避ける
EJB.ABFG - 細粒度なオブジェクトとして Entity Bean を使用するのは避ける
EJB.ACL - bean クラスでクラス ローダーのアクセス、使用、作成を行わない
EJB.ADCB - java swing やサーブレットクラスに EJB コードは含まない
EJB.AIEBC - Entity Bean 間の過剰なやり取りは避ける
EJB.AJDBC - EJB クラスの中での JDBC コードの使用は避ける
EJB.AMSC - セキュリティ構成オブジェクトにアクセスしたり、その内容を変更したりしない
EJB.AOTO - Session Bean と Entity Bean の 1 対 1 のマッピングは避ける
EJB.AUS - EJB でソケットを使用しない
EJB.CDP - Bean クラスは public で宣言する
EJB.CNDA - Bean クラスは abstract で宣言しない
EJB.CNDF - Bean クラスは final で宣言しない
EJB.CRTE - ejbCreate () を宣言するには、static や final ではなく、public を使用する
EJB.DPANY - ANYONE ロールに EJB のアクセス パーミッションを与えない
EJB.EJB3.AIA - 無視されたまたは無効なアノテーションを避ける
EJB.EJB3.AISE - トランザクションを使用する場合は IllegalStateException を避ける
EJB.EJB3.BMN - ビジネス メソッドの名前を ejb で開始しない
EJB.EJB3.CMF - ライフサイクル コールバック メソッドの適切な書式を使用する
EJB.EJB3.CPIM - @AroundInvoke メソッドから InvocationContext.proceed() を呼び出す
EJB.EJB3.EAII - @AroundInvoke をビジネス インターフェイスのメソッドで公開しない
EJB.EJB3.IDA - 不適切な @Id アノテーションの使用を避ける
EJB.EJB3.IDCS - @IdClass を Serializable にし、equals() および hashCode() メソッドを定義する
EJB.EJB3.MDBS - @MessageDriven bean から他の @MessageDriven bean を拡張しない
EJB.EJB3.MDML - @MessageDriven bean で MessageListener を指定する
EJB.EJB3.MTM - 複数の @Timeout メソッドを宣言しない
EJB.EJB3.PCUN - 常に @PersistenceContext と共に unitName を指定する
EJB.EJB3.PERMIT - セキュリティ アノテーションのない EJB 3 メソッドを避ける
EJB.EJB3.RLI - 1 つのインターフェイスで @Local と @Remote の両方を指定しない
EJB.EJB3.RMSB - @Stateful bean で @Remove メソッドを指定する
EJB.EJB3.SIVS - @Stateful bean のインスタンス変数を Serializable にする
EJB.EJB3.SRBM - リモート ビジネス メソッドの引数と戻り値を Serializable にする
EJB.EJB3.ULI - ローカル インターフェイスを介して Bean にアクセスする
EJB.EJBLOAD - ejbLoad () 内で finder メソッドを呼び出してはいけない
EJB.FNDM - finder メソッドを宣言するには、final や static ではなく public を使用する
EJB.IECM - Bean クラスで 1 つ以上の ejbCreate () を実装する
EJB.IEPM - EntityBean クラスでは 1 つ以上の ejbPostCreate () を実装する
EJB.JIO - bean クラスで java.io パッケージの型を使用しない
EJB.LNL - Bean クラスのネイティブ ライブラリをロードしない
EJB.MDBC - すべてのメッセージ駆動型 Bean クラスに対して、引数のない ejbCreate () メソッドを実装する
EJB.MEC - Entity Bean クラス中の各 ejbCreate () に対して、対応する ejbPostCreate () を定義する
EJB.MNDF - Bean クラスでは finalize () を宣言しない
EJB.MRE - リモート インターフェイスおよびリモート ホーム インターフェイス中のメソッドで java.rmi.RemoteException を throw する
EJB.NFDC - Bean クラスに引数を取らない public コンストラクターを宣言する
EJB.NFS - EJB Bean クラスのすべての static フィールドに対して final 宣言する
EJB.PCRTE - ejbPostCreate () を宣言するには、static や final ではなく、public を使用する
EJB.RILH - Bean のローカル インターフェイスおよびローカル ホーム インターフェイスで java.rmi.RemoteException を throw してはいけない
EJB.RR - エンティティ Bean をリモートとして宣言しない
EJB.RTC - SessionBeans またはメッセージ駆動型 Bean の ejbCreate () の戻り値の型は void でなければならない
EJB.RTP - ejbPostCreate () の戻り値の型は void でなければならない
EJB.RT - finder メソッドの戻り値の型は、主キーまたは主キーの Collection でなければならない
EJB.RUH - EJB で新しく SecurityManager を作成または設定しない
EJB.STD - EJB Bean が必要なメソッドを実装し、EJB Bean とインターフェイスの名前形式に従うことを推進
EJB.TCE - リモート ホーム インターフェイスまたはローカル ホーム インターフェイスの create 関連メソッドで javax.ejb.CreateException を throw する
EJB.TFE - リモート ホーム インターフェイスまたはローカル ホーム インターフェイスの finder メソッドで javax.ejb.FinderException を throw する
EJB.THISARG - this を引数として使用しない
EJB.THISRET - this を戻り値として使用しない
EJB.THREAD - bean クラスではどんな形でもスレッドを開始、終了、管理してはならない
EJB.UCIC - 再利用可能な JNDI リソースをキャッシュして、パフォーマンス コストが高い操作の使用を最小限に抑える
EJB.USF - Session Facade を使って Entity Bean へのアクセスを管理する
EJB.UVO - バリュー オブジェクトを使ってサーバーへの呼び出しの粒度を減らす
EXCEPT.AEFC - 例外をフロー制御文として使用しない
EXCEPT.AIOC - catch ブロックで instanceof を使用して例外の型をチェックしてはならない
EXCEPT.CATO - メソッドの本体で throw される可能性のあるすべての Throwable オブジェクトをキャッチする
EXCEPT.CDUPL - 同じ内容の catch 句を避ける
EXCEPT.CLFIN - リソースをクローズするためだけに finally ブロックを使用しない
EXCEPT.CTE - throw された例外を常に連結する
EXCEPT.EPNFC - final ではない public クラスのコンストラクターから例外を throw しない
EXCEPT.HCB - catch ブロックを隠してはいけない
EXCEPT.IMMEX - ユーザ定義 Exception のすべてのフィールドを final として宣言する
EXCEPT.MTE - main() メソッドには、throw される例外を宣言しない
EXCEPT.NCERR - java.lang.Error オブジェクトをキャッチしてはいけない
EXCEPT.NCNPE - NullPointerException をキャッチしてはいけない
EXCEPT.NFE - 数値クラスのメソッドは処理されない NumberFormatException を throw してはならない
EXCEPT.NTERR - 一般的な例外または非チェック例外を throw しない
EXCEPT.NTNPE - NullPointerException を throw してはいけない
EXCEPT.RTERR - キャッチしたときに特定の例外を再 throw する
EXCEPT.TEFEC - 例外クラスのコンストラクタから例外を throw しない
EXCEPT.TRY - try/catch/finally ブロックをループの外に置く
EXCEPT.TSCE - 例外メッセージは最少文字数の要件を満たす必要がある
FORMAT.APAREN - () を使って複雑な式を分割する
FORMAT.ASPACE - 配列の参照では適切なスペースを使用する
FORMAT.ATS - 行の最後に空のスペースを置いてはいけない
FORMAT.BLBC - C スタイルのコメントの前には空白行を挿入する
FORMAT.BLCD - 型宣言前の空白行の推進
FORMAT.BLSIM - 空白行を使って異なるパッケージの import 文を分離する
FORMAT.CBRACE - 1 コード行に "}" だけを記述するべきである
FORMAT.CMS - キャストの型の後には 1 つのスペースを入れる/入れない
FORMAT.DOT - 修飾名とメソッド呼び出しの間にスペースを入れてはいけない
FORMAT.DUT - タブではなくスペースを使用する (またはスペースではなくタブを使用する)
FORMAT.FCB - 開き括弧 "{" の位置の推進
FORMAT.FCN - ファイルと同じ名前の型をファイルの先頭にする
FORMAT.IAD - 配列宣言では、配列の型名、'[]'、変数名の順で記述する
FORMAT.IND - インデントのスペース数の推進
FORMAT.LL - 1 行の文字数を制限する
FORMAT.MO - アノテーションと修飾子の順序を保つ
FORMAT.MSP - メソッド名と開き括弧 "(" の間には 1 つのスペースを入れる/入れない
FORMAT.NSAB - 開き括弧 "{" に続けてステートメントを入れる場合は "{" の後で必ず改行する
FORMAT.OSPL - 1 コード行につき 1 つのステートメントを入れる
FORMAT.SAC - カンマの後のスペース数の推進
FORMAT.SAOP - 代入演算子の前後のスペース数の推進
FORMAT.SAP - 条件文の開始括弧 "(" の後のスペースの数の推進
FORMAT.SAS - セミコロンの後のスペース数の推進
FORMAT.SAUOP - 前置単項演算子とそのオペランドの間のスペース数の推進
FORMAT.SBOP - ビット演算子の前後のスペース数の推進
FORMAT.SBUOP - 後置単項演算子とそのオペランドの間のスペース数の推進
FORMAT.SCOP - 条件演算子 "?" の前後のスペース数の推進
FORMAT.SC - 条件文と開始括弧 "(" の間に、決められた数のスペースを入れる
FORMAT.SLOP - 論理演算子の前後のスペース数の推進
FORMAT.SROP - 関係演算子の前後のスペース数の推進
FORMAT.TCOMMA - 配列イニシャライザーの最後にカンマを置く/置かない
FORMAT.TC - コード行と同じ行にコメントを置くのを避ける
FORMAT.TE - 一般的な書式を条件演算に使用する
FORMAT.TNL - すべてのファイルを必ず復帰改行文字で終了させる
FORMAT.U2BL - 主要なプログラム セクション間の空白行数の推進
FORMAT.UP - 不要な括弧を避ける
GC.AUTP -プリミティブ型を String に変換するときに、不要なオブジェクトを作成しない
GC.DUD - Date[] ではなく long[] を使用する
GC.FCF - finalize () から必ず super.finalize () を呼び出す
GC.FM - finalize () を使ってリスナーを解放しない
GC.GCB - getClipBounds () への呼び出しを再利用する
GC.GC - System.gc() または Runtime.gc() を明示的に呼び出してはいけない
GC.IFF - finalize() メソッドの finally ブロックで super.finalize() を呼び出す
GC.MML - メモリ リークを引き起こす可能性のあるメソッドの呼び出しに注意する
GC.NCF - finalize () を明示的に呼び出さない
GC.OSTM - reset () を呼び出すことによって、ObjectStream 内の潜在的なメモリ リークを回避する
GC.RCO - 不変定数オブジェクトを再利用してメモリを節約する
GC.STV - 際限なく大きくなる可能性のある static な Collection または Map を避ける
HIBERNATE.CAR - Configuration にマッピングを追加するには addResource() ではなく addClass() を使用する
HIBERNATE.CHS - Hibernate セッションを finally ブロックでクローズする
HIBERNATE.CSF - SessionFactory オブジェクトをすべてクローズする
HIBERNATE.GSIM - データベース カラムにマップされたオブジェクトには getter/setter メソッドと id フィールドを定義する
HIBERNATE.IDC - Hibernate パーシステント クラスのための引数なしコンストラクターを宣言する
HIBERNATE.LHII - Hibernate 関連の機密情報をlog4j.properties ファイルで info レベルに設定してログ記録しない
HIBERNATE.OHCE - マップされた Hibernate オブジェクトの equals および hashCode メソッドをオーバーライドする
HIBERNATE.PIDS - Hibernate 識別子のための setter メソッドは private で宣言する
HIBERNATE.RBT - アクティブなトランザクションを catch ブロックでロールバックする
HIBERNATE.SLM - Hibernate Query を実行する前に setLockMode() を呼び出す
HIBERNATE.UGNQ - Java コードでクエリーを記述するのではなく、マップされた名前付き HQL クエリーを使用する
HIBERNATE.UNP - HQL クエリーでは名前付きパラメーターを使用する
HIBERNATE.UPWD - 暗号化されていない Hibernate ユーザ名およびパスワードを web.xml ファイルに保存しない
INIT.AAI - 配列イニシャライザーを使用してはいけない
INIT.AULI - 遅延初期化のための if チェックでは適切な演算子を使用する
INIT.CLIB - 遅延初期化ブロックに初期化コード以外のコードを置かない
INIT.DIA - ダイアモンドを使用してジェネリック クラスのコンストラクターを呼び出す
INIT.IC - フィールドに対して初期化の循環を使用してはいけない
INIT.LV - 宣言文ですべてのローカル変数を明示的に初期化する
INIT.NFS - 初期化実行中に、final でない static フィールドを使用しない
INIT.SFA - final ではない static 変数を使って final の static 変数を初期化してはいけない
INIT.SF - 明示的な初期化を使用する static フィールドをデフォルト値で初期化してはいけない
INIT.SICUI - すべての static final フィールドが代入される前に、現行クラスのインスタンスを作成する static イニシャライザーを呼び出してはいけない
INTER.CCL - String 変換メソッドを呼び出すときは Locale 引数を用意する
INTER.CLO - 国際化 (I18N) では論理演算子と一緒に単一文字を使用しない
INTER.COS - 国際化 (I18N) では文字列連結を避ける
INTER.CTLC - 国際化環境で Character.toLowerCase(char) または Character.toUpperCase(char) を呼び出さない
INTER.DTS - 国際化環境では Date オブジェクトで toString() または String.valueOf() を呼び出さない
INTER.ITT - 国際化 (I18N) では翻訳可能なテキストはリソース バンドルに出力する
INTER.NCL - 国際化 (I18N) では単一文字リテラルは static final 定数として使用する
INTER.NTS - 国際化環境では数値で toString() または String.valueOf() を呼び出さない
INTER.PN - 国際化 (I18N) では Number 型の parse メソッド 呼び出しを避ける
INTER.SCT - 国際化 (I18N) では String.compareTo() の呼び出しを避ける
INTER.SDFL - SimpleDateFormat オブジェクトのインスタンスを生成するときは Locale 引数を指定する
INTER.SEO - エンコーディング オプションの指定できないメソッドやコンストラクターの呼び出しを避ける
INTER.SE - 国際化 (I18N) では String.equals() の呼び出しを避ける
INTER.SIO - 国際化 (I18N) では String.indexOf() または String.lastIndexOf() の呼び出しを避ける
INTER.ST - 国際化 (I18N) では StringTokenizer の使用を避ける
INTER.TTS - 国際化環境では Time オブジェクトで toString() または String.valueOf() を呼び出さない
INTER.UNLS - 不必要な $NON-NLS および NOI18N コメントを避ける
JAVADOC.BT - サポートされない @ タグやその他のタグを Javadoc コメントで使うのを避ける
JAVADOC.CRN - メソッドが null を返すことができるかどうかを必ず Javadoc に記述する
JAVADOC.DPMT - 未使用の Javadoc タグを避ける
JAVADOC.ECTF - フィールドでのカスタム Javadoc タグの使用を推進する
JAVADOC.ECTM - メソッド/アノテーション メンバー型でのカスタム Javadoc タグの使用を推進する
JAVADOC.ECTT - 型でのカスタム Javadoc タグの使用を推進する
JAVADOC.JNJD - Javadoc ではないコメントを Javadoc コメントと宣言の間に挿入してはいけない
JAVADOC.MAJDT - 宣言の Javadoc コメントには @author タグを使用する
JAVADOC.MDJT - Javadoc タグには意味のある説明を記述する
JAVADOC.MISFORMAT - Javadoc タグの書式の誤りを避ける
JAVADOC.MRDC - メソッドの Javadoc コメントには ''@return'' タグを入れる
JAVADOC.MVJDT - 型の Javadoc コメントには @version タグを入れる
JAVADOC.ORDER - Javadoc タグの順序の推進
JAVADOC.PARAM - メソッドの各引数の Javadoc コメントには @param タグを使用する
JAVADOC.PJDC - 型には Javadoc コメントを付ける
JAVADOC.PJDF - フィールドには Javadoc コメントを付ける
JAVADOC.PJDM - メソッドには Javadoc コメントと説明を付ける
JAVADOC.SINGLE - Javadoc コメントに使用する行数を制限する
JAVADOC.SMJT - synchronized public メソッドおよびブロックの Javadoc コメントには @concurrency タグを使用する
JAVADOC.SPELL - Javdoc コメント中にスペル ミスがある
JAVADOC.SRRP - @Documented アノテーションを使用するときに保持ポリシーとして RUNTIME を指定する
JAVADOC.THROW - メソッドの Javadoc コメントには @throws タグまたは @exception タグを入れる
JAVADOC.TSMJT - toString() には Javadoc コメントを付ける
JAVADOC.TSOL - 特定の Javadoc タグは1行に収める
JAVADOC.VMCR - void メソッドの Javadoc コメントでは @return タグを使用しない
JDBC.BRSA - JDBC メソッドの呼び出しで、インデックスが有効であることを確認する
JDBC.CDBC - JDBC 接続を finally ブロック中でクローズする
JDBC.COCO - 正しい順序で JDBC オブジェクトをクローズする
JDBC.DSLV - JDBC 接続のデータ ソースを再利用する
JDBC.ODBIL - ループ中で JDBC 接続をオープン/クローズしてはいけない
JDBC.RRWD - JDBC リソースは finally ブロックでクローズする
JDBC.SCSF - static フィールドにデータベース接続オブジェクトを格納してはならない
JDBC.UDS - javax.sql.DataSource を使ってデータベース接続を取得する
JDBC.UPSC - PreparedStatement を正しく使用する
JDBC.URSF - RowSetFactory のインスタンスを使用して RowSet オブジェクトを作成する
JUNIT.AEAT - assertTrue ではなく assertEquals を使用する
JUNIT.AHLOD -単体テストによって使用されるデータファイルのハードコーディングを避ける
JUNIT.ANAT - null 参照をチェックするときは assertTrue ではなく assertNull を使用する
JUNIT.ANBA - assertTrue() または assertFalse() への論理型引数を否定しないようにする
JUNIT.ASAT - 参照の等しさをチェックするときは assertTrue ではなく assertSame を使用する
JUNIT.ASSERT - JUnit アサーションには必ずメッセージ文字列を含める
JUNIT.AST - メイン スレッド以外のスレッドにアサーション文を置かない
JUNIT.CBA - catch ブロックで assert メソッドを呼び出すのを避ける
JUNIT.CSUPER - JUnit テスト クラスの setUp メソッドおよび tear-tearDown メソッドでは、それぞれスーパークラスの setUp/tearDown メソッドを呼び出すべきである
JUNIT.CSUTD - setUp() および tearDown() メソッドが正しく実装されるようにする
JUNIT.DIR - テストするクラスと同じ場所にテスト クラスを置く
JUNIT.ETCTA - @Test アノテーションがあるテスト クラスで TestCase を拡張しない
JUNIT.FAIL - assertTrue(false) や assertFalse(true) メソッドを使用して false を検証する変わりに fail () メソッドを使用する
JUNIT.FICB - JUnit テストメソッド内の catch ブロック内で fail() を呼び出してはいけない
JUNIT.ISMTC - JUnit テスト クラスで suite() メソッドを実装してはいけない
JUNIT.MAIN - すべての JUnit クラスは個別に実行可能な main () メソッドを持つべきである
JUNIT.OSIC - コンストラクターを使ってテスト ケースを設定しない
JUNIT.OSUM - 常に setUp () をオーバーライドするか、@Before メソッドを定義する
JUNIT.OTDM - 常に tearDown () をオーバーライドするか、@After メソッドを定義する
JUNIT.SIA - JUnit テスト ケースには必ず アサートメソッドを含める
JUNIT.SIFN - setUp() メソッドで初期化されているすべてのフィールドは tearDown() メソッドで null をセットする
JUNIT.SUITE - suite () メソッドは public および static にするべきである
JUNIT.TATC - TestCase を拡張するのではなく @Test アノテーションを使用する
JUNIT.TCWNT - 各 TestCase クラスには少なくとも 1 つのテスト メソッドを含める
JUNIT.TEST - すべてのメソッドは少なくとも 1 つの JUnit テストメソッドを持つべきである
JUNIT.UPJT - 適切な Javadoc タグを JUnit テスト メソッドの Javadoc に含める
JUNIT.UPSS - JUnit テストクラスの suite() メソッドは正しいシグネチャで使用する
METRIC.CBO - オブジェクト間の結合
METRIC.CC - McCabe Cyclomatic Complexity
METRIC.CLLOCRIF - ファイルの論理行数に対するコメントの割合
METRIC.CLLOCRIM - メソッドの論理行数に対するコメントの割合
METRIC.CLLOCRIT - 型の論理行数に対するコメントの割合
METRIC.DIF - ネストされた If 文
METRIC.ECC - Essential Cyclomatic Complexity
METRIC.FO - ファン アウト
METRIC.HDIFM - Halstead 難度
METRIC.HEFM - Halstead 心理的稼働時間
METRIC.HICM - Halstead インテリジェントコンテント
METRIC.HLENM - Halstead プログラム長
METRIC.HLEVM - Halstead 抽象化レベル
METRIC.HNOBM - Halstead 障害件数
METRIC.HTTPM - Halstead プログラミング時間
METRIC.HVOCM - Halstead プログラム語彙数
METRIC.HVOLM - Halstead プログラム容量
METRIC.IDOC - クラスの継承の深さ
METRIC.LCOM - 凝集性の欠如
METRIC.MCC - Modified Cyclomatic Complexity
METRIC.MI - 保守性インデックス
METRIC.NBD - ブロックのネストの深さ
METRIC.NOBLIF - ファイルの空白行数
METRIC.NOBLIM - メソッドの空白行数
METRIC.NOBLIT - 型の空白行数
METRIC.NOCLIF - ファイルのコメント行数
METRIC.NOCLIM - メソッドのコメント行数
METRIC.NOCLIT - 型のコメント行数
METRIC.NOC - クラス数
METRIC.NOF - ファイル数
METRIC.NOLLOCIF - ファイルの論理コード行数
METRIC.NOLLOCIM - メソッドの論理コード行数
METRIC.NOLLOCIT - 型の論理コード行数
METRIC.NOMIT - 型のメソッド数
METRIC.NOPAR - メソッドのパラメーター数
METRIC.NOPLIF - ファイルの物理コード行数
METRIC.NOPLIM - メソッドの物理コード行数
METRIC.NOPLIT - 型の物理コード行数
METRIC.NOPRIVMIT - 型の private メンバーの数
METRIC.NOPROTMIT - 型の protected メンバーの数
METRIC.NOPUBMIT - 型の public メンバーの数
METRIC.NORET - メソッドの return の数
METRIC.NOSLIF - ファイルのソース行数
METRIC.NOSLIM - メソッドのソース行数
METRIC.NOSLIT - 型のソース行数
METRIC.NOT - 型の数
METRIC.RFC - クラスのレスポンス
METRIC.SCC - Strict Cyclomatic Complexity
METRICS.CTNL - 非推奨: class または interface の行数
METRICS.ECLM - 非推奨: メソッドのステートメント行数
METRICS.ECLT - 非推奨: class または interface のステートメント行数
METRICS.ID - 非推奨: class または interface の継承レベル
METRICS.NOFT - 非推奨: フィールド数
METRICS.NOMCML - 非推奨: メソッドのコメント行数
METRICS.NOM - 非推奨: メソッド数
METRICS.NOTCML - 非推奨: class または interface のコメント行数
METRICS.NPKGF - 非推奨: package-private フィールドの数
METRICS.NPKGM - 非推奨: package-private メソッドの数
METRICS.NPRIF - 非推奨: private フィールドの数
METRICS.NPRIM - 非推奨: private メソッドの数
METRICS.NPROF - 非推奨: protected フィールドの数
METRICS.NPROM - 非推奨: protected メソッドの数
METRICS.NPUBF - 非推奨: public フィールドの数
METRICS.NPUBM - 非推奨: public メソッドの数
METRICS.NSTMT - 非推奨: メソッドのステートメントの数
METRICS.PAR - 非推奨: パラメーターの数
METRICS.PJDC - 非推奨: Javadoc コメントの割合 (%)
METRICS.TNLM - 非推奨: メソッドの行数
METRICS.TNMC - 非推奨: メソッド呼び出しの数
METRICS.TRET - 非推奨: メソッドの Return 文の数
METRICS.VG - DEPRECATED: Cyclomatic Complexity
METRICS.VG - 非推奨: Cyclomatic Complexity
METRIC.WMC - クラスの重み付けされたメソッド
MOBILE.ACFM - 同じフィールドおよびメソッドに複数回アクセスしてはならない
MOBILE.AMA - getter および setter メソッドを使用しない
MOBILE.ANDROID.AOSM - 常に onSaveInstanceState() をオーバーライドする
MOBILE.ANDROID.WUP - ウィジェットがあまりに頻繁に更新されないようにする
MOBILE.APTA - プリミティブ ラッパー オブジェクトの配列を使用しない
MOBILE.AUEF - 拡張された for ループを使用して java.lang.iterable オブジェクトを反復処理しない
MOBILE.AUI - interface 型を宣言しない
MOBILE.DARRAY - 多次元配列を使用しない
MOBILE.ENUM - 列挙型を使用しない
MOBILE.FLOATER - 浮動小数点型を使用しない
MOBILE.J2ME.ACII - インターフェイスの実装として匿名クラスを使用しない
MOBILE.J2ME.ARLL - ループ条件式で配列長を使用しない
MOBILE.J2ME.CIPA - あるサイズを超えるプリミティブ型配列を定数で初期化しない
MOBILE.J2ME.EAOF - フィールドに過剰にアクセスしてはいけない
MOBILE.J2ME.EURP - 新規オブジェクトを返す代わりにリターン引数を使用するメソッドを推奨
MOBILE.J2ME.OOME - 大きな配列割り当ての OutOfMemoryError をキャッチする
NAMING.ANNS - アノテーションのクラスの命名規則に従う
NAMING.CVN - 一般的な変数名を使用
NAMING.DJLO - java プラットフォームの型がと同じ名前を使って型を宣言してはいけない
NAMING.DSN - 名前でドル記号を使用するのを避ける
NAMING.ECN - 拡張しているクラスの名前を反映したクラス名を使用する
NAMING.EXTENDS - 基底クラスに対して定義された命名規則に従う
NAMING.GETA - getter メソッドに命名規則を使用する
NAMING.GETB - boolean を返す getter メソッドに命名規則を使用する
NAMING.ID - 潜在的な Java キーワードを識別子として使用してはならない
NAMING.IFV - インターフェイスのフィールド名ではすべての文字に大文字を使用する
NAMING.IMPLS - 実装されたインターフェイスに対して定義された名前付け規則に従う
NAMING.IRB - boolean を返すメソッドだけに is で始まる名前を付ける
NAMING.LLI - 型名、メソッド名、フィールド名、引数名および変数名の長さの制限に従う
NAMING.NACL - abstract クラスに対して命名規則を使用する
NAMING.NAC - 配列変数と Collection 変数に命名規則を使用する
NAMING.NA - アノテーションに命名規則を使用する
NAMING.NCL - クラスの命名規則を推進
NAMING.NENUM - 列挙型の宣言に命名規則を使用する
NAMING.NE - 例外の命名規則を推進
NAMING.NFL - final のローカル変数に対して命名規則を使用する
NAMING.NIF - static ではないフィールドの命名規則を推進
NAMING.NITF - インターフェイスの命名規則を推進
NAMING.NLV - ローカル変数の命名規則を推進
NAMING.NMP - メソッド引数の命名規則を推進
NAMING.NM - static でないメソッド の命名規則を推進
NAMING.NPH - 型引数に名前付け規則を使用する
NAMING.NSF - final ではない static フィールドの命名規則を推進
NAMING.NSM - static メソッドの命名規則を推進
NAMING.NTEST - JUnit テストクラスに命名規則を使用する
NAMING.PKG - package 名には小文字を使用する
NAMING.RPKG - Sun で予約されているパッケージ名を使用しない
NAMING.SETA - setter メソッドに命名規則を使用する
NAMING.SINGLETON - シングルトン クラスに命名規則を使用する
NAMING.THAC - タグ ハンドラーおよび関連クラスに命名規則を使用する
NAMING.UHN - 変数にはハンガリアン表記を使用する
NAMING.USF - final static フィールド名には小文字を使用しない
NAMING.UUVN - 大文字/小文字の使用だけが違う変数名を使用してはいけない
OOP.ACECC - abstract クラスで具象クラスを継承してはいけない
OOP.ACST - 必要以上に具体的な型にキャストしてはいけない
OOP.AF - public/ protected/ package-private フィールドを避ける
OOP.AHF - 継承されるフィールドが隠れるのを避ける
OOP.AHSM - 継承される static なメンバー メソッドが隠れるのを避ける
OOP.AOA - オーバーライド メソッドには @Override アノテーションを追加する
OOP.AOCM - 特定の型を拡張する場合、特定のメソッドを必ずオーバーライドする
OOP.ASFI - abstract メソッドおよび static final フィールドだけしかないクラスを interface として再宣言する
OOP.AUASI - アノテーションを実装または拡張してはいけない
OOP.AUO - オブジェクトを使用して static フィールドまたはメソッドにアクセスしない
OOP.CIMOM - Object の protected メソッドと競合するメソッドをインターフェイスで宣言してはいけない
OOP.CQS - メソッドはコマンド (状態の変更) またはクエリー (状態の取得) でなければならない
OOP.HIF - 外側のスコープで宣言されたフィールドやローカル変数を隠蔽しない
OOP.HMF - メソッドのローカル変数と引数にクラスのフィールドと同じ名前を付けない
OOP.ICIF - インターフェイスで内部クラスを使用しない
OOP.IDOM - インターフェイス内で Object クラスから継承するメソッドの宣言を避ける
OOP.IIAC - 定数にアクセスするためにだけインターフェイスを実装してはならない
OOP.IIN - no-op のインターフェイスメソッドを実装しない、またはそれらを abstract で実装する
OOP.INSOF - instanceof はインターフェイスにだけ使用する
OOP.LEVEL - ネストの深さが 3 以上の内部クラスを使用しない
OOP.MFP - finalize() メソッドは protected で宣言する
OOP.MI - フィールドまたはメソッドのないインターフェイス (マーカー インターフェイス) を避ける
OOP.MUCOP - 可変クラスにコピー機能を提供する
OOP.NAM - abstract メソッドのない abstract クラスを避ける
OOP.NOMA -abstract クラスの空のメソッドを abstract として宣言する
OOP.NPAC - abstract クラスに public または package-private コンストラクターを宣言しない
OOP.OPM - private メソッドをオーバーライドしない
OOP.PIFC - final クラスのメンバーに protected を使用してはいけない
OOP.PMPC - public クラスが少なくとも 1 つの public または protected メンバーを持つようにする
OOP.PSDF - private または static メソッドを final で宣言しない
OOP.RI - スーパークラスがインターフェイスをすでに実装している場合、そのインターフェイスを実装するとしてクラスを宣言してはいけない
OOP.RSFC - クラスから自身のサブクラスへの参照を避ける
OOP.SNGL - シングルトン クラスに命名規則を使用する
OOP.SVHM - インナー クラスからのメソッド呼び出しでは、呼び出すメソッドのバージョンを指定する
OOP.THRECL - getClassLoader() ではなく getContextClassLoader() を使用する
OPT.AAM - 匿名クラスの private でないメソッドを private に変更する
OPT.AAS - 省略された代入演算子を使用
OPT.ACDO - new String(String) コンストラクターを使用しない
OPT.AGC - オブジェクトのインスタンスの新規生成によって Class オブジェクトを取得してはいけない
OPT.ANIPW - キャッシュされているプリミティブ型のラッパー オブジェクトを新しくインスタンスすることを避ける
OPT.AUMO - 不要な Map 操作を避ける
OPT.BR - boolean の返却を簡略化する
OPT.CCR - すべての java.io.Closeable リソースを finally ブロックでクローズする
OPT.CEIL - ループ内に定数式を入れないようにする
OPT.CEL - ループ条件文でのメソッド呼び出しを避ける
OPT.CIO - finally ブロックで入力または出力リソースをクローズする
OPT.CLL - 潜在的に時間のかかるロギング処理を呼び出す前にロギングレベルをチェックする
OPT.CPTS - 空文字列を連結して値を String に変換してはいけない
OPT.CRSG - ResultSet の get メソッドを重複して呼び出さない
OPT.CRWD - できるだけ早くリソースをクローズする
OPT.CTLV - 1 つのメソッド内でだけアクセスされる private フィールドを使用しない。ローカル変数に変更する
OPT.DIC - ArrayList、HashMap、HashSet、Hashtable、Vector、および WeakHashMap の初期容量を定義する
OPT.EES - String.equals("") ではなく String.length() == 0 を使用する
OPT.EIC - toLowerCase() または toUpperCase() の呼び出しの代わりに equalsIgnoreCase() を使用する
OPT.EOIL - 時間がかかる処理をループの本体で呼び出してはいけない
OPT.ICDPC - 浮動小数点型にキャストされた整数を Math.ceil() の呼び出しに渡してはいけない
OPT.ICGA - 代用のアクセサーを必要とするかもしれないメンバー アクセスを避ける
OPT.ILUG - get() メソッドを使用してリストを反復処理しない
OPT.IRB - 配列のコピーには、ループではなく System.arraycopy () を使用する
OPT.ISC - static フィールドと static メソッドだけを持つクラスのインスタンスを生成してはいけない
OPT.LIOL - 可能な限り不変式をループの外に移動する
OPT.LOOP - ループ本体で変数をインスタンス化するのを避ける
OPT.MAF - インスタンス フィールドに対する getter および setter メソッドを final で宣言する
OPT.MUNC - null との不要な比較を行わない
OPT.NCIO - instanceof の前に null をチェックしないようにする
OPT.NIVND - ランダム整数を生成するには nextInt() メソッドを使用する
OPT.NIW - BigInteger および BigDecimal の新しいインスタンスを作成しないようにする
OPT.NSF - コンパイル時に判明する値を持つ final フィールドは static として宣言する
OPT.PCTS - 単一文字の比較には、startsWith () ではなく charAt () を使用する
OPT.PRIM - プリミティブ型のためのラッパークラスをインスタンス化してはいけない
OPT.SBL - 長さをチェックするために StringBuffer または StringBuilder を String に変換しないようにする
OPT.SBS - 同期が必要ない場合は StringBuffer ではなく StringBuilder を使用する
OPT.SB - StringBuffer の初期容量を指定する
OPT.SDLS - ローカル変数には同期データ構造を使用しない
OPT.SI - 可能であれば内部クラスを static として宣言する
OPT.SRA - リテラル値で String.replaceAll() を使用しない
OPT.STCA - 不要な String.toCharArray() の呼び出しを避ける
OPT.STRBUF - 常に連結される文字列を返すメソッドを整理する
OPT.STR - 1 文字の文字列定数を含む文字列連結では、二重引用符ではなく単一引用符を使用する
OPT.STS - 不要な String メソッドの呼び出しを避ける
OPT.SWIF - switch 文に置き換えられる場合、if 文を使用しない
OPT.SYN - ループの内側で synchronized メソッドを呼び出さない
OPT.TOARRAY - toArray() に渡す配列に Collection のサイズを使用する
OPT.UEQ - ブール値と true を比較しない
OPT.UISO - 不要な instanceof の使用を避ける
OPT.UMATH - 結果が簡単に計算できる定数の場合、java.lang.Math のメソッドを呼び出してはいけない
OPT.UNC - 不要なキャストの使用を避ける
OPT.USB - 結合文字列を使用するときは String ではなく StringBuffer を使用する
OPT.USCL - 疑問の余地がある、短絡演算ではない演算を避ける
OPT.USC - 定数文字列には StringBuffer ではなく String を使用する
OPT.USV - 可能なかぎりスタック変数を使用する
PB.API.AECC - 特定のクラスの継承を避ける (カスタムルール)
PB.API.APPG - java.util.Properties オブジェクトの put()、putAll()、および get() メソッドの使用を避ける
PB.API.APT - 特定のパッケージまたは型を使用するのを避ける
PB.API.CMMT - Collection および Map メソッドに渡される型とデータ構造の型を一致させる
PB.API.DANNOT - 非推奨のメンバーの宣言に @Deprecated アノテーションを追加する
PB.API.DNCSS - ComponentListener.componentResized () で setSize () を呼び出さない
PB.API.DPRAPI - 非推奨の API を使用しない
PB.API.ECMC - Collection および Map クラスを拡張してはいけない
PB.API.EHM - java.util.HashMap または java.util.Hashtable を継承してはいけない
PB.API.EJF - 空の JarFile エントリまたは空の ZipFile エントリを作成してはいけない
PB.API.EQNL - equals(null) を呼び出さないようにする
PB.API.HNCN - Iterator の hasNext() メソッドから next() メソッドを呼び出してはいけない
PB.API.IUMS - Collections または Maps で URL オブジェクトを使用しない
PB.API.KOEH - Set や Map のキーとして使用されるすべての型が equals() と hashCode() メソッドをオーバーライドする
PB.API.MASP - serializable クラスの readResolve () と writeReplace () には、protected を指定する
PB.API.MOHK - 危険な実装の equals() または hashCode() のオブジェクトをハッシュ化されたデータ構造のキーとして使用することを避ける
PB.API.NDC - Error および Throwable のサブクラスを定義しない
PB.API.OF - finalize() メソッドをオーバーロードしてはいけない
PB.API.REP - String.replaceAll() および String.replaceFirst() の正規表現として \".\" を使用しない
PB.API.SBCC - StringBuffer(int) コンストラクターに char を渡さない
PB.API.UNI - java.util.Random クラスの next メソッドの結果を int にキャストしてはいけない
PB.API.URL - java.net.URL の equals() および hashCode() メソッドを使用しない
PB.API.VAFS - 正しい数の引数を使用して書式文字列を持つ可変個引数のメソッドを呼び出す
PB.API.VENDOR - ベンダー プロパティとの比較に使われる可能性がある値を更新する
PB.CLOSE - 無制限のロック リソース
PB.CUB.ADE - else のある if では \"{ }\" 括弧を使用する
PB.CUB.AIPQ - PriorityQueue および PriorityBlockingQueue で iterator() を使用しない
PB.CUB.AMCO - 複数の ! または ~ 単項演算子を使用しない
PB.CUB.APAM - 配列ではない引数を取るメソッドに配列を引数として渡してはならない
PB.CUB.ARCF - try-catch ブロック内に return 文がある場合、 finally ブロックでの return 文の使用を避ける
PB.CUB.ATSF - finally ブロックを途中で終了しない
PB.CUB.AWP - コンストラクターの引数への紛らわしい代入を避ける
PB.CUB.CILB - ログ記録コード以外のものをログ記録ブロックに入れない
PB.CUB.CNVC - 文字と数字の不適切な連結を避ける
PB.CUB.CTOR - コンストラクターから final、static、private ではないメソッドを呼び出してはならない
PB.CUB.CWRITE - File.canWrite() メソッドは、ディレクトリが書き込み可能でない場合にも true を返す可能性があるため、使用を避ける
PB.CUB.DCP -"+" 文字列連結演算子を使って数字を連結してはいけない。"+" は数字の加算にだけ使用する
PB.CUB.EBI - 誤って文をブロックの外に置くのを避ける
PB.CUB.EOOM - 誤って java.lang.Object のメソッドをオーバーライドすることを避ける
PB.CUB.FLVA - for ループの内部でループ制御変数に代入しない
PB.CUB.IMC - オーバーライドされるメソッドが引数型の違いによる予定外の共変ではないようにする
PB.CUB.IMM - static final フィールドを不変にする
PB.CUB.ISF - 誤って static 宣言された可能性のある private static フィールドを調べる
PB.CUB.MAIN - エントリ ポイント メソッドだけにメソッド名 main を使用する
PB.CUB.OE - 疑わしい 8 進数エスケープを避ける
PB.CUB.OSM - サブクラスのメソッドをオーバーライドする場合は、スーパークラスでオーバーロードされたメソッドもオーバーライドする
PB.CUB.OVAM - 可変個引数メソッドのオーバーライドを避ける
PB.CUB.PSFA - public static final 配列フィールドの使用を避ける
PB.CUB.RMO - 可変フィールドの間接参照を避ける
PB.CUB.SAC - String の連結で char 配列を使用してはいけない
PB.CUB.SBC - 不正な case を含む switch 文を避ける
PB.CUB.SRAD - アノテーション型の宣言に @Retention を指定する
PB.CUB.STRCC - print() 文および println() 文の複雑な式を括弧で囲む
PB.CUB.TOCTOU - Time-of-check Time-of-use (TOCTOU) 競合状況を避ける
PB.CUB.TOS - 配列変数で toString() を呼び出さない
PB.CUB.TVOM - オーバーロードされたメソッドを呼び出す場合、型変数引数を使用しない
PB.CUB.UEIC - オブジェクト同士の比較に '==' または '!=' を使用しない
PB.EAR - void ではないメソッドの戻り値は、空の配列または null であってはいけない
PB.LOGIC.AIL - 無限ループを使用しない
PB.LOGIC.AMOI - 配列または List 要素へアクセスするのに誤ったインデックス変数を使用しない
PB.LOGIC.AOBO - ループ条件で「1 つずれる」エラーを避ける
PB.LOGIC.AULV - ループの条件で使用されないループ変数を避ける
PB.LOGIC.CPI - String.indexOf() の結果が正かどうかをチェックしてはいけない
PB.LOGIC.CRRV - 読み込みまたはスキップを行うメソッドの戻り値を確認する
PB.LOGIC.DJNCR - 戻り値が null ではないことをチェックした後に readLine() の結果を破棄してはいけない
PB.LOGIC.EQLC - equals() および compareTo() メソッドの実装では getClass() または instanceof を使用する
PB.LOGIC.EQUS - 常に false を返す equals() メソッドの呼び出しを避ける
PB.LOGIC.ESO - 同一のオブジェクトに対して equals() を呼び出さない
PB.LOGIC.FLRC - 無限の再帰呼び出しを行わない
PB.LOGIC.INDEX - ループ変数の使用でのバグを防止する
PB.LOGIC.JI - ネストされた複数の for ループにおいて同じループ変数をインクリメント/デクリメントしてはいけない
PB.LOGIC.LLM - 呼び出すロギング メソッドのレベルに一致したロギング レベルをチェックする
PB.LOGIC.OAMC - ループの条件で使用されるオブジェクトは適切にループ本体でアクセスされるようにする
PB.LOGIC.OOR - 範囲外の比較を避ける
PB.LOGIC.ROM - メソッドが正しいオブジェクトで呼び出されるようにする
PB.LOGIC.SG - get/set メソッドが必ず正しい変数にアクセスするようにする
PB.NAECS - switch 文の 列挙型の各定数に case 文を用意する
PB.NUM.AIC - 整数型から浮動小数点型への暗黙のキャストを避ける
PB.NUM.BBDCC - BigDecimal コンストラクターに浮動小数点値を渡してはいけない
PB.NUM.BSA - シフトの量 は範囲 [0, 31] を超えている
PB.NUM.CACO - オーバーフローの原因となるかもしれない場合は複合代入演算子の使用を避ける
PB.NUM.CLP - 基本データ型を精度の低い型にキャストしない
PB.NUM.CMP - このメソッドで減算を使用してはならない
PB.NUM.DCF - 浮動小数点同士を比較しない
PB.NUM.FPLI - ループのインデックスとして浮動小数点型の変数を使用しない
PB.NUM.ICO - オーバーフローまたは NaN になる計算を避ける
PB.NUM.IDCD - 整数の除算の結果を浮動小数点型の変数に代入してはいけない
PB.NUM.IMOF - integer の乗算の結果を long にキャストしてはならない
PB.NUM.IOF - オーバーフローの可能性がある場合、除算ではなく符号なしの右シフトを使用する
PB.NUM.NAN - Double.NaN または Float.NaN と比較しないようにする
PB.NUM.NIA - 負の値を使って配列の次元を初期化してはいけない
PB.NUM.UBD - 正確な結果が必要な場合は float および double を使用しない
PB.NUM.UCM - Math.round() に整数値を渡してはならない
PB.OCSF - ファイルと同じ名前を持つ型を 1 つだけ必ず用意する
PB.PCSF - ファイルと同名の型を必ず public として宣言する
PB.PDCL - switch 文の最後の case として default を置く
PB.PDS - 各 switch 文には default: を用意する
PB.RE.ACTI - Collection をその Collection 自体に追加してはいけない
PB.RE.AMFSL - 固定サイズの Collection を変更しない
PB.RE.AQA - Queue の add() メソッドを呼び出さない
PB.RE.ASE - ArrayStoreExceptions の可能性を避ける
PB.RE.CAI - 配列にアクセスする前に、使用するパラメーターをチェックする
PB.RE.CIOR - String.indexOf() の戻り値を他の String メソッドに渡す前にチェックする
PB.RE.CTNSE - Iterator.next() メソッドの実装が必ず NoSuchElementException を throw するようにする
PB.RE.IDRL - readLine() の戻り値を間接参照する前に、戻り値が null かどうかをチェックする
PB.RE.IIAE - IllegalArgumentException メッセージをコード ロジックに必ず一致させる
PB.RE.IOSS - 必要な場合 indexOf() の fromIndex 引数を使用する
PB.RE.ISEM - String.equals(constant) または String.equalsIgnoreCase(constant) を呼び出してはいけない
PB.RE.JLAY - JLayer クラスの add() メソッドの使用を避ける
PB.RE.NCMD - 間接参照される変数と、その前に null チェックされる変数を一致させる
PB.RE.NXRE - RuntimeException のサブクラスをできるだけ定義しない
PB.RE.PNPD - null オブジェクトを間接参照してはいけない
PB.RE.RCODE - HttpURLConnection を使用する場合、getInputStream() を呼び出す前に必ず getResponseCode() の戻り値をチェックする
PB.RE.VRNULL - null 値を返すメソッドを避ける
PB.TYPO.AECB - 空の try、catch、finally ブロックを避ける
PB.TYPO.ASI - 条件内で代入演算子を使用しない
PB.TYPO.BW - 同じ変数同士で演算しない
PB.TYPO.CSI - 正しい super メソッドを呼び出す
PB.TYPO.DAV - switch 文の case のフォールスルーで同じ変数に代入してはならない
PB.TYPO.EB - 本体が空の制御文を避ける
PB.TYPO.IMO - 目的のメソッドが必ずオーバーライドされるようにする
PB.TYPO.NAMING - メソッド、フィールド、およびそれらを含むクラスに同じ名前を付けてはならない
PB.TYPO.RSK - 同じフィールドに複数の getter/setter メソッドを使用しない
PB.TYPO.TLS - switch 文でテキスト ラベルを使わない
PB.TYPO.UOL - 8進整数リテラルを使用しない
PB.TYPO.WT - Java のラッパー クラスに渡される引数にタイプミスがないようにする
PB.USC.AES - 空のステートメントを避ける
PB.USC.CC - 必ず定数値に評価される条件式を避ける
PB.USC.EC - 空のクラスを使用しない
PB.USC.EPC - クラスに他のコンストラクターがない場合に、空の public コンストラクタを定義しない
PB.USC.NACC - アクセスできるメンバーのないクラスを使用しない
PB.USC.NASSIG - メソッドおよびコンストラクターの戻り値を必ず使用する
PB.USC.OI - インクリメント文の結果を上書きしてはいけない
PB.USC.RTE - 例外を再 throw するためだけにキャッチしてはいけない
PB.USC.SAFL - フィールドとローカル変数への自分自身の代入/初期化を避ける
PB.USC.UIF - 到達しない else if と else を避ける
PB.USC.UNARY - 単項演算子 '+' を使用してはいけない
PORT.CTSP - Thread.setPriority() を呼び出さない
PORT.DNHCP - File クラスからコンストラクターを呼び出すときに絶対パスをハード コーディングしてはいけない
PORT.ENV - 移植可能ではない System.getenv() メソッドを使用しない
PORT.EXEC - Runtime.exec() を使用しない
PORT.HCNA - IP アドレスとポート番号をハード コーディングしてはいけない
PORT.LNSP - '\\n' または '\\r' を行分離記号としてハードコーディングしない
PORT.NATV - ユーザー定義の native メソッドを使用しない
PORT.PEER - 直接 java.awt.peer.* インターフェイスを使用しない
PORT.PSC - 該当するリテラルの代わりに File.pathSeparator または File.pathSeparatorChar を使用する
PROPS.BSPV - プロパティ値の最後に余分な空白を付けない
PROPS.DUPN - 重複するプロパティ名を避ける
PROPS.DUPV - 重複するプロパティ値を避ける
PROPS.EMN - 空のプロパティ名を避ける
PROPS.EMV - 空のプロパティ値を避ける
PROPS.EQOP - 常に '=' 演算子を使用する
PROPS.FM - プロパティエントリ数を制限する
PROPS.HCLS - プロパティ値ではハードコーディングされた改行を使用しない
PROPS.IARG - プロパティ値の誤った引数を避ける
PROPS.ICK - 不完全なプロパティエントリを避ける
PROPS.IVCC - 継続行文字 '\\' の誤用を避ける
PROPS.MENTRY - 異なるロケール間でのプロパティエントリの不一致を避ける
PROPS.MLN - 複数行に分割されたプロパティ名を避ける
PROPS.NAME - プロパティ名の命名規則を推進する
PROPS.PLAIN - パスワード情報がプレーンテキストでプロパティ ファイルに含まれていてはならない
PROPS.SPELL - コメントとプロパティ値の綴り間違いを避ける
PROPS.TENTRY - プロパティエントリが正しくローカライズされるようにする
SECURITY.BV.ACL - Web コンポーネントでクラス ローダーにアクセスしない
SECURITY.BV.ADT - Date、Time オブジェクトまたは System.currentTimeMillis() メソッドの使用を検査する
SECURITY.BV.AUG - java.lang.Class オブジェクトの getName() メソッドの使用を検査する
SECURITY.BV.CQRO - Castor クエリーでは read-only AccessMode を使用する
SECURITY.BV.DSSM - main メソッドの外でカスタム セキュリティ マネージャーを設定してはいけない
SECURITY.BV.ENFL - すべてのセキュリティ関連メソッドの呼び出しを必ずログに記録する
SECURITY.BV.NSF - Web コンポーネントで Socket.setSocketImplFactory() または URL.setURLStreamHandlerFactory() を呼び出さない
SECURITY.BV.PCFM - 「特権付き」メソッドの呼び出しを final メソッドでラップする
SECURITY.BV.PCPM - 「特権付き」メソッドの呼び出しを private メソッドでラップする
SECURITY.BV.PDLC - 「特権付き」 コード ブロックでは、動的にロードされたクラスを使用しない
SECURITY.BV.SYSP - システム プロパティにアクセスまたは値を設定してはならない
SECURITY.DRC.THR - Web コンポーネントでスレッドを使用しない
SECURITY.EAB.ACWC - Web コンポーネントまたは EJB から特定のメソッドを呼び出さない
SECURITY.EAB.AWT - Web コンポーネントで AWT クラスを使用しない
SECURITY.EAB.CBA - writeObject() で ObjectOutputStream にバイト配列を渡してはいけない
SECURITY.EAB.CMP - クラス オブジェクトを名前で比較しない
SECURITY.EAB.CPCL - clone() メソッドでは防御的なコピーを返す
SECURITY.EAB.JVM - Web コンポーネントで JVM を停止しない
SECURITY.EAB.LDP - 1 クラスあたりの AccessController.doPrivileged の呼び出しの数を制限する
SECURITY.EAB.MPT - ユーザから取得した可変オブジェクトを特定の型に直接渡してはならない
SECURITY.EAB.OROM - すべての serializable クラスに対して readObject() と writeObject() を実装する
SECURITY.EAB.PCL - 「特権付き」コード ブロックの行数を制限する
SECURITY.EAB.SF - Web コンポーネントで static フィールドを宣言しない
SECURITY.EAB.SIS - Web コンポーネントで java.lang.System の入力ストリームを変更しない
SECURITY.EAB.SMO - ユーザ定義の可変オブジェクトを直接変数に格納してはいけない
SECURITY.EAB.SPFF - static final 宣言が意図されていた可能性のある static フィールドを検査する
SECURITY.ESD.ACW - コンソールへの書き込みを避ける
SECURITY.ESD.CONSEN - 機密情報をログに記録しない
SECURITY.ESD.CSD - 機密データは使用後に消去する
SECURITY.ESD.PEO - 機密情報のリークを防ぐため、例外メッセージを出力に渡してはならない
SECURITY.ESD.PLC - 機密データを cookie にプレーンテキストで格納してはならない
SECURITY.ESD.RA - 配列や他の可変フィールドの返却によって内部表現を公開するかもしれないメソッドは避ける
SECURITY.ESD.SDM - 機密データを可変オブジェクトに格納する
SECURITY.ESD.SIF - serializable オブジェクトのインスタンス フィールドをチェックして機密データを公開していないことを確認する
SECURITY.ESD.SIO - System.err または System.out の print メソッドの呼び出しを避ける
SECURITY.ESD.SNFD - FileNotFound 例外でデータを公開しない
SECURITY.ESD.SPI - Web コンポーネントでセキュリティ ポリシー情報を取得または変更しない
SECURITY.ESD.TFP - transient フィールドを private 宣言する
SECURITY.ESD.TSPF - serialPersistentFields 配列で transient フィールドを避ける
SECURITY.ESD.UPCT - パスワードの転送には get ではなく post を使用する
SECURITY.IBA.AEAF - Struts クラスの ActionForm および DynaActionForm を継承してはいけない
SECURITY.IBA.ATF - 一時ファイルを使用しない
SECURITY.IBA.AUSS - SQL クエリ内の \"SELECT *\" を避ける
SECURITY.IBA.CDBV - 検証の前にすべてのデータを正規化する
SECURITY.IBA.CSVFV - ActionForm クラスの検証メソッドから必ず super.validate() メソッドを呼び出すこと
SECURITY.IBA.EDPM - コンストラクター引数を検証関数でカプセル化する
SECURITY.IBA.NATIW - ネイティブ メソッドを安全にするためにラッパーを使用する
SECURITY.IBA.UPS - createStatement ではなく prepareCall または prepareStatement を使用する
SECURITY.IBA.VRD - すべてのリダイレクトおよびフォワード URL を検証メソッドでカプセル化する
SECURITY.IBA.XPIJ - XPath クエリーの評価での XPath インジェクションを防ぐ
SECURITY.UEC.ADS - Axis の server-config.wsdd ファイルで axis.development.system を false に設定する
SECURITY.UEC.AELQ - Axis の server-config.wsdd ファイルで axis.enableListQuery を false に設定する
SECURITY.UEC.DSL - Axis の server-config.wsdd ファイルで axis.disableServiceList を true に設定する
SECURITY.UEC.DSR - web.xml ファイルに複数のセキュリティ ロールを同じ名前で定義しない
SECURITY.UEC.EDAR - Axis2 構成ファイルの各 items タグに Encrypt ディレクティブを指定する
SECURITY.UEC.FMCD - web.xml ファイルでマップされているすべてのフィルターに対応する定義がなければならない
SECURITY.UEC.HTTPS - axis2.xml 構成ファイルの transportReceiver および transportSender で http ではなく https を使用する
SECURITY.UEC.ISOS - axis2.xml 構成ファイルで InflowSecurity および OutflowSecurity 引数を指定する
SECURITY.UEC.LCA - web.xml ファイルで適切な <login-config> 要素を指定して認証タイプを指定する
SECURITY.UEC.PCCF - Castor の jdo-conf.xml でユーザー名およびパスワードをプレーン テキストに保存しない
SECURITY.UEC.PTPT - Axis の wsdd ファイルでプレーン テキストのパスワードを使用しない
SECURITY.UEC.PWDPROP - パスワードがプレーンテキストとして格納されず、十分な長さがあることを確認する
SECURITY.UEC.PWDXML - パスワードがプレーンテキストとして格納されず、十分な長さがあることを確認する
SECURITY.UEC.RAJ - web.xml ファイルに *.jsp ファイルに対するセキュリティ制約を追加することで、JSP へのアクセスを制限する
SECURITY.UEC.REST - axis2.xml 構成ファイルで REST を無効にする
SECURITY.UEC.SDAR - Axis2 構成ファイルの各 items タグに Signature ディレクティブを指定する
SECURITY.UEC.SEP - web.xml で必ずエラー ページを指定する
SECURITY.UEC.SLID - セッション ID の長さが適切であることを確認する
SECURITY.UEC.SMM - SOAP Monitor モジュールを使用しない
SECURITY.UEC.SRCD - web.xml で参照されるすべてのセキュリティ ロールに対応する定義がなければならない
SECURITY.UEC.TDAR - Axis2 構成ファイルの各 items タグに Timestamp ディレクティブを指定する
SECURITY.UEC.UDC - web.xml ファイルのすべての制約付きリソースを <user-data-constraint> で防御する
SECURITY.UEC.UTAX - Axis2 構成ファイルでプレーン テキストのパスワードを使用しない
SECURITY.UEC.WCMC - WebSphere の ibm-webservicesclient-ext.xmi ファイルの設定で SOAP メッセージを暗号化する
SECURITY.UEC.WCMI - WebSphere の ibm-webservicesclient-ext.xmi ファイルの設定で SOAP メッセージに電子署名されるようにする
SECURITY.UEC.WCMT - WebSphere の ibm-webservicesclient-ext.xmi ファイルで、タイムスタンプを正しく設定する
SECURITY.UEC.WCMWS - ibm-webservicesclient-ext.xmi ファイルで WS-Security を有効にする
SECURITY.UEC.WCPWD - WebSphere の ibm-webservicesclient-ext.xmi ファイルの設定でパスワードを暗号化する
SECURITY.UEC.WCUTS - WebSphere の ibm-webservicesclient-ext.xmi ファイルの設定で、タイムスタンプに署名する
SECURITY.UEC.WELC - すべての Web コンテンツ ディレクトリに「ウェルカム ファイル」があることを確認する
SECURITY.UEC.WMC - WebSphere の ibm-webservices-ext.xmi ファイルの設定で SOAP メッセージを暗号化する
SECURITY.UEC.WMI - WebSphere の ibm-webservices-ext.xmi ファイルの設定で、SOAP メッセージにデジタル署名する
SECURITY.UEC.WMT - WebSphere の ibm-webservices-ext.xmi ファイルで、タイムスタンプを正しく設定する
SECURITY.UEC.WMWS - WebSphere の ibm-webservices-ext.xmi ファイルで WS-Security を有効にする
SECURITY.UEC.WPWD - WebSphere の ibm-webservices-ext.xmi ファイルの設定でパスワードを暗号化する
SECURITY.UEC.WSS - Axis2 構成ファイルで Rampart WS-Security モジュールを有効にする
SECURITY.UEC.WUTS - WebSphere の ibm-webservices-ext.xmi ファイルの設定で、タイムスタンプに署名する
SECURITY.UEHL.LGE - 必ず、標準のロガーを使ってすべての例外をログに記録するか、例外を再スローするようにする
SECURITY.WSC.ACDP - AccessController.doPrivileged() を呼び出すときに匿名の「特権付き」クラスを使用しない
SECURITY.WSC.ACPST - Throwable オブジェクトの printStackTrace() メソッドを呼び出さない
SECURITY.WSC.AHCA - 特定のメソッドへの引数をハードコーディングしない
SECURITY.WSC.AMA - スーパークラスよりもアクセシビリティの高いコンストラクターまたはオーバーライド メソッドを避ける
SECURITY.WSC.APIBS - セキュリティを迂回する標準 API 呼び出しの使用を検査する
SECURITY.WSC.ARXML - テキストを XML に変換しない
SECURITY.WSC.ASAPI - スクリプティング API の使用を検査する
SECURITY.WSC.AUIC - インナー クラスの使用を避ける
SECURITY.WSC.BP - 特定のプロバイダーだけを Security.addProvider() メソッドに渡す
SECURITY.WSC.CACM - すべてのアクセス制御メソッドを集中化して一貫性を徹底する
SECURITY.WSC.CAM - すべての認証メソッドを集中化して一貫性を徹底する
SECURITY.WSC.CAP - フィールドに格納される配列引数を必ず複製する
SECURITY.WSC.CFM - final ではないクラスの特定のコード ブロックからは final メソッドだけを呼び出す
SECURITY.WSC.CIFC - final クラスのインスタンスだけを clone() する
SECURITY.WSC.CKTS - 短すぎる暗号化キーを避ける
SECURITY.WSC.CLI - ClassLoader オブジェクトのインスタンス生成を検査する
SECURITY.WSC.CLONE - セキュリティのために clone () を final 宣言する
SECURITY.WSC.CLO - findClass() 以外の ClassLoader のメソッドをオーバーライドしない
SECURITY.WSC.CL - カスタム クラス ローダーを定義してはいけない
SECURITY.WSC.CMO - writeObject() で ObjectOutputStream に可変オブジェクトを渡さない
SECURITY.WSC.DCSM - カスタム SecurityManager を定義してはいけない
SECURITY.WSC.DNSL - 意思決定のための DNS ルックアップを避ける
SECURITY.WSC.DSER - クラスをデシリアライズ不可能にする
SECURITY.WSC.ENPP - 特定のメソッドに渡される引数が事前に定義されたメソッドのリストからきていることを確認する
SECURITY.WSC.FIMU - 不変クラスを final にする
SECURITY.WSC.FXMLP - Secure Processing を使用する
SECURITY.WSC.HCCK - ハード コーディングされた暗号化キーの使用を避ける
SECURITY.WSC.HCCS - ハードコーディングされたユーザー名/パスワード/URL をデータベース接続メソッドに渡すことを避ける
SECURITY.WSC.ICA - 安全ではないアルゴリズムを暗号化に使用しない
SECURITY.WSC.INIVF - 不変クラスを final にする
SECURITY.WSC.INNER - すべてのメンバー クラスを private にする
SECURITY.WSC.ISL - LoginContext.login() の前に必ず HttpSession.invalidate() を呼び出すこと
SECURITY.WSC.IVR - IvParameterSpec を使用する際はランダムではない byte[] を避ける
SECURITY.WSC.MCNC - クラスを非 cloneable にする
SECURITY.WSC.PACC - アクセス制御メソッドを呼び出して一貫性を徹底する
SECURITY.WSC.PAC - 認証メソッドを呼び出して一貫性を徹底する
SECURITY.WSC.PAF - PrivilegedAction、PrivilegedExceptionAction および PrivilegedActionException のサブクラスを final 宣言する
SECURITY.WSC.PBPSF - Permission および BasicPermission のサブクラスを final 宣言する
SECURITY.WSC.PPF - パスワード フィールドをオートコンプリートにしてはいけない
SECURITY.WSC.PPKG - すべての Permissions、PrivilegedActions、および and PrivilegedActionExceptions を同じパッケージで宣言する
SECURITY.WSC.PRMF - PrivilegedAction および PrivilegedExceptionAction の実装の run() メソッドを final 宣言する
SECURITY.WSC.PSFC - フィールドを Collection または Map 型の public static final オブジェクトとして宣言しない
SECURITY.WSC.RDM - Random オブジェクトまたは Math.random() メソッドを調査して悪意のあるコードがないことを検証する
SECURITY.WSC.SCF - フィールドを設定または取得する前に SecurityManager でチェックする
SECURITY.WSC.SCLONE - Clonable クラスで SecurityManager のチェックを行う
SECURITY.WSC.SCSER - Serializable クラスのメソッドで SecurityManager のチェックを行う
SECURITY.WSC.SCSM - 機密性の高い型の final ではない public コンストラクターで SecurityManager のチェックを行う
SECURITY.WSC.SER - クラスはできるだけシリアライズ不可にする
SECURITY.WSC.SL - 定数宣言、および System.out または System.err の print または println メソッドを除いては、文字列リテラルを使用しない
SECURITY.WSC.SMSTR - Socket による転送または取得の前に SecurityManager のチェックを行う
SECURITY.WSC.SRD - java.util.Random または Math.random() の代わりに java.security.SecureRandom を使用する
SECURITY.WSC.SSM - 適切なセキュリティ マネージャーを設定する
SECURITY.WSC.SSP - Web コンポーネントで System.setProperty() を呼び出さない
SECURITY.WSC.SS - Web コンポーネントでソケットを使用しない
SECURITY.WSC.STREP - ライブラリ メソッドを使用して HTML および XML の特殊文字の文字列置換を行う
SECURITY.WSC.UMAIN - main() メソッドはクラスへの認可されていないアクセスを許す可能性があるため、使用を避ける
SECURITY.WSC.UOSC - getSecure() および setSecure() メソッドを使ってセキュアな Cookie の使用を推進する
SECURITY.WSC.USC - 可能であれば SSL を利用できるクラスを使用する
SECURITY.WSC.UWM - 危険または問題のあるメソッドを直接呼ぶ代わりにラッパーメソッドを使用する (カスタムルール)
SECURITY.WSC.VJFS - 必ず JarFile シグニチャを検証する
SECURITY.WSC.ZOIS - スクリプティング API の使用を検査する
SERIAL.DUID - すべての Serializable クラスに対して serialVersionUID を作成する
SERIAL.ENNAC - Externalizable を実装しているが引数なしコンストラクターを定義していないクラスを避ける
SERIAL.EZEE - Serializable ではなく Externalizable を実装する
SERIAL.FT - serializable ではないクラスに transient フィールドを宣言しない
SERIAL.IRX - Externalizable クラスの readExternal() メソッドでフィールドを再初期化しない
SERIAL.MRWD - readResolve() および writeReplace() メソッドの戻り値の型は必ず java.lang.Object にする
SERIAL.NSFSC - 正しい Serializable クラスを使用する
SERIAL.OC - インナー クラスが serializable の場合、外側のクラスも serializable にする
SERIAL.ROWO - 'readObject()' と 'writeObject()' メソッドが正しいシグネチャを持つようにする
SERIAL.RRSC - すべての Serializable 型のインスタンスで readResolve メソッドを定義する
SERIAL.RWAF - すべてのフィールドを readObject() メソッドによって代入し writeObject() によって書き出す
SERIAL.SCBNP - Serializable でない親クラスから派生する Serializable なサブクラスに必ず writeObject および readObject メソッドを宣言する
SERIAL.SNNAC - 引数なしコンストラクターを持たないスーパー クラスを拡張するクラスのシリアライズを避ける
SERIAL.SNSO - Serializable オブジェクトを HttpSession 属性として格納しない
SERIAL.SPF - serialPersistentFields を private static final として宣言する
SERIAL.SRLZ - Serializable を実装していないクラスで serialVersionUID を宣言しない
SERIAL.SROS - readObject() メソッドを synchronized として宣言してはいけない
SERVLET.AJDBC - Servlet クラスでの JDBC コードの使用は避ける
SERVLET.BINS - java.beans.Beans.instantiate () を使用しない
SERVLET.CETS - サーブレット メソッド内で throw されるすべての例外をキャッチする
SERVLET.DSN - 同じ <servlet-name> を持つ複数の <servlet> 要素を 1 つの web.xml ファイル内に記述しない
SERVLET.IF - Servlet クラスでインスタンス フィールドを定義してはいけない
SERVLET.LML - サーブレットではサイズの制限がない Collection の使用を避ける
SERVLET.MDC - 引数なしの public コンストラクターを宣言する
SERVLET.NMS - web.xml ファイルの1 サーブレットあたりのマッピングの数を制限する
SERVLET.NSIS - サーブレットで static 変数を作成してはいけない
SERVLET.NSSS - 同期化せずにサーブレットで static 変数を使用してはいけない
SERVLET.SCM - web.xml ファイルにすべてのサーブレットに対応するマッピングがあることを確認する
SERVLET.SDTD - web.xml ファイルに適切なスキーマまたは DTD を指定する
SERVLET.SOP - サーブレットでの System.out および System.err の使用を最小限に抑える
SERVLET.SSN - web.xml ファイルのすべての <servlet> 要素に 1 つの空ではない <servlet-name> 要素があることを確認する
SERVLET.STM - サーブレット クラス内で SingleThreadModel を使用しない
SERVLET.SYN - サーブレット内の同期化を最小限にする
SERVLET.UCO - Context Object を使って HTTP リクエスト パラメーターを管理する
SPRING.ACARG - コンストラクターのインジェクションを避ける
SPRING.ATCFG - 構成クラスの規則に従う
SPRING.DESC - 構成ファイルのヘッダーで description タグを使用する
SPRING.IDNAME - name と id を同時に使用しない
SPRING.IMPORTSRES - 相対パス ''../'' を使用して親ファイルを参照してはならない
SPRING.JDBCTEMPLATE - ネイティブ JDBC の使用を避ける
SPRING.LOCAL - ローカル スコープで local プロパティ属性を使用する
SPRING.PREFTYPE - コンストラクター引数のマッチングでは index より type を使用するほうが望ましい
SPRING.PROPLIMIT - bean プロパティの規約に従う
SPRING.SPRNAM - spring bean の命名規約を使用する
SPRING.USEID - bean の識別子として ID を使用する
STRUTS.ACDA - Action クラスからデータベースにアクセスしないようにする
STRUTS.ACJC - Action クラスから JSP ページにアクセスしないようにする
STRUTS.AIV - struts-config.xml ファイルで <action> 要素にバリデーションがある場合、@input 属性を指定する
STRUTS.AMFB - struts-config.xml ファイルのすべての名前付き <action> 要素に <form-bean> を指定する
STRUTS.APSN - struts-config.xml ファイルの名前のない <action> 要素に @prefix、@suffix、および @attribute を指定しない
STRUTS.ARP - struts-config.xml の属性で相対パスを使用しない
STRUTS.DFV - validation.xml でフォームの重複を避ける
STRUTS.DLGF - 同じ名前のローカル フォワードとグローバル フォワードを struts-config.xml ファイルで使用しないようにする
STRUTS.EV - Struts の struts-config.xml でバリデーターが有効であることを確認する
STRUTS.FIELDS - フォーム Bean 中の各フィールドは適切な getter/setter メソッドを持つべきである
STRUTS.FORM - フォーム Bean には getter/setter メソッドだけを含める
STRUTS.FWD - struts-config.xml ファイルのすべての <forward> 要素に空ではない名前とパスを指定する
STRUTS.IACM - Action クラスのメソッドを呼び出さないようにする
STRUTS.INST - Struts Action クラスでインスタンス変数を宣言してはいけない
STRUTS.MFBSN - struts-config.xml ファイルに同じ名前の複数のフォーム Bean を定義しない
STRUTS.MLFF - Struts バリデーション ファイルのすべてのフォーム フィールドに有効な maxlength 値を指定する
STRUTS.MLVP - validation.xml ファイルのパスワード フィールドに minlength バリデーターを使用する
STRUTS.NTFB - struts-config.xml ファイルのすべてのフォーム Bean に名前と型を指定する
STRUTS.PFS - struts-config.xml ファイルの <action> および <forward> 要素の @path 属性が '/' で始まっていることを確認する
STRUTS.PLUGIN - struts-config.xml にプラグインが追加されていることを確認する
STRUTS.PMAC - Action クラスでは public メソッドを避ける
STRUTS.PTE - struts-config.xml ファイルのすべての <exception> 要素に空ではないパスおよび型を指定する
STRUTS.RSS - struts-config.xml のアクションまたは例外の scope 属性に request または session が設定されていることを確認する
STRUTS.SCDTD - struts-config.xml ファイルで Struts DTD を使用してバリデーションを行う
STRUTS.STRUTS2.S2DAFV - フィールド バリデーターの重複を避ける
STRUTS.STRUTS2.S2DVF - バリデーション ファイルの重複を避ける
STRUTS.STRUTS2.S2DV - バリデーターの重複を避ける
STRUTS.STRUTS2.S2NA - 各バリデーション ファイルに対応する Action があることを確認する
STRUTS.TAFP - struts-config.xml ファイルのすべての <form-property> 要素に有効な type 属性を指定する
STRUTS.VPI - すべての struts-config.xml ファイルで Struts Validator プラグインを有効にする
TRS.AIL - 常に同期化された方法でアクセスされる Atomic 変数を使用しない
TRS.ANF - すべての待ちスレッドに通知されるように notify () ではなく notifyAll () を使用する
TRS.ATI - Thread.interrupted() を誤って使用しない
TRS.AUTG - 安全ではない java.lang.ThreadGroup 型の変数を使用しない
TRS.AUTY - VM によって異なる振る舞いをするかもしれないため Thread.yield () を使用しない
TRS.CDF - static な Calendar, DateFormat, SimpleDateFormat を使ってメソッドを呼び出さないようにする
TRS.CHM - 可能な限り Hashtable および synchronizedMap でラップされた HashMap の代わりに ConcurrentHashMap を使用する
TRS.CIET - Thread を拡張するクラス以外で InterruptedException をキャッチしない
TRS.CLQ - 可能な限り Vector および synchronizedList の代わりに ConcurrentLinkedQueue を使用する
TRS.CMA - 同期化された Collection に対する複合アクションによるアクセスは原子性に違反するため避ける
TRS.CSFS - デッドロック発生の原因となる synchronized メソッドからの synchronized メソッドの呼び出しを避ける
TRS.CSTART - コンストラクタからスレッドの start メソッドを呼び出さない
TRS.CTRE - コンストラクターで this 参照を流出させない
TRS.DCL - 安全ではない「ダブルチェック ロッキング」パターンの実装を避ける
TRS.DOPQ - PriorityBlockingQueue で DiscardOldestPolicy を使用しない
TRS.GSD - デバッグ目的の場合を除いて、getState を使用しない
TRS.IASF - 同期化が必要な可能性のある static フィールドへのアクセスを検査する
TRS.ILI - スレッドセーフな遅延初期化にする
TRS.IMSE - IllegalMonitorStateException をキャッチしてはいけない。この例外は設計の欠陥を示している可能性がある
TRS.IRET - Thread を拡張するのではなく Runnable を実装する
TRS.IRUN - java.lang.Thread を拡張するクラスまたは java.lang.Runnable を実装するクラスで run() を直接呼び出さない
TRS.LORD - ネストされたロックの順序が正しいことを確認する
TRS.MRAV - 関連のある複数の Atomic 変数には synchronized ブロック内でアクセスする
TRS.MRUN - 別のスレッドとして実行できるようにスレッドのサブクラスには run () を入れる
TRS.NAME - スレッドに必ず名前を付ける
TRS.NSM - メソッド宣言で synchronized 修飾子を使用する代わりに synchronized ブロックを使用する
TRS.NSYN - synchronized でないメソッドで wait ()、notify ()、notifyAll() を呼び出さない
TRS.OSNS - 同期化されたメソッドを同期化されていないメソッドでオーバーライドしてはならない
TRS.RLF - finally ブロックでロックを解放する
TRS.RUN - Runnable.run() を実装するメソッドで同期化を使用する
TRS.SCS - 定数 String を同期化しない
TRS.SNSM - static の synchronized メソッドと static でない synchronized メソッドを混合させない
TRS.SOL - java.util.concurrent.locks.Lock の実装に synchronized キーワードを使用して同期化を実行してはいけない
TRS.SOPF - デッドロックを引き起こす可能性があるため、public フィールドを同期化しない
TRS.SOUF - 相互排除の保証が難しくなるため final ではないフィールドを同期化してはいけない
TRS.SSCI - synchronized Collection を反復処理する場合は、手動で同期化する
TRS.SSDF - static な SimpleDateFormat へのアクセスを同期する
TRS.SSUG - set メソッドを同期化している場合、get メソッドも同期化する
TRS.STR - Object の this 参照で同期化を実行したりセマフォ メソッドを呼び出したりしてはいけない
TRS.THRD - Thread および Runtime クラスの安全でなく推奨されないメソッドを呼び出さない
TRS.TSHL - ロックを保持している間に Thread.sleep() を呼び出さない。さもないとパフォーマンスを劣化させたりデッドロックを引き起こしたりする
TRS.UACS - Collections.synchronized でラップされた Collection の同期化されていないアクセスを避ける
TRS.UCM - 安全な場合にだけ同期化されていない Collection または Map を使用する
TRS.USL - 同一のロック オブジェクトを使用して変数にアクセスする
TRS.UT - run() メソッドを指定せずにスレッドを開始してはならない
TRS.UWIL - liveness 状態をテストするループの内部でだけ wait () と await() を呼び出す
TRS.UWNA - ポーリング ループではなく wait () および notifyAll () を使用する
TRS.WOC - java.util.concurrent.locks.Condition オブジェクトで正しいメソッド呼び出しを使用する
TRS.WOS - 他のメソッドが同期化されていない場合、writeObject() メソッドを同期化してはいけない
UC.AAI - インターフェイスの不要な修飾子を避ける
UC.ACC - コメント アウトされた Java コードを削除する
UC.AEEO - クラスは java.lang.Object を明示的に継承するべきではない
UC.AESTAT - 空の「static イニシャライザー」と「static ではないイニシャライザー」を避ける
UC.AMAMI - 親クラスの abstract メソッドを abstract メソッドでオーバーライドしてはならない
UC.ARTD - 冗長な throws 句を避ける
UC.AUL - 未使用ラベルを避ける
UC.AURCO - 一度も読まれない Collection を避ける
UC.AURV -決して読まれないローカル変数の使用を避ける
UC.BCMP - 不要なブール比較を避ける
UC.DIEB - if ブランチに重複するコードを記述しない
UC.DIL - java.lang.* パッケージを明示的にインポートしない
UC.EF - 空の finalize() メソッドを避ける
UC.FCSF - スーパークラスの finalize() を呼び出すだけの finalize() メソッドは冗長なので使用してはいけない
UC.FMFC - final クラスのメソッドの宣言で冗長な final キーワードを使用しない
UC.PF - 未使用の private フィールドを避ける
UC.PIMPORT - 現行クラスを持つパッケージからクラスをインポートしてはいけない
UC.PM - 未使用の private メソッドを避ける
UC.RSKE - 列挙型の宣言で冗長な static キーワードを使用している
UC.SNE - 空の synchronized 文を避ける
UC.SO - オーバーライドされた実装 (スーパークラス実装) を呼び出すだけのメソッドを避ける
UC.UCATCH - キャッチした例外を catch ブロックで必ず使用する
UC.UCIF - 不要な if 文を避ける
UC.UES - 不要な else 文を使用している
UC.UIMPORT - 未使用の import 文を避ける
UC.UPC - 未使用の private なクラスまたはインターフェイスの宣言を避ける
UC.UP - 使用されないパラメーターを避ける
UC.VR - void メソッドの最後の不要な return 文を避ける
XML.DLTH - Tomcat の server.xml で高すぎるデバッグ レベルを使用しない
XML.WF - XML ファイルが整形式であることを確認する