| "Magic character" | MagicCharacter |
| "Magic number" | MagicNumber |
| 'Comparator.compare()' method does not use parameter | ComparatorMethodParameterNotUsed |
| 'Connection.prepare*()' call with non-constant string | JDBCPrepareStatementWithNonConstantString |
| 'Iterator.hasNext()' which calls 'next()' | IteratorHasNextCallsIteratorNext |
| 'Iterator.next()' which can't throw 'NoSuchElementException' | IteratorNextCanNotThrowNoSuchElementException |
| 'Statement.execute()' call with non-constant string | JDBCExecuteWithNonConstantString |
| 'String.equals("")' | StringEqualsEmptyString |
| 'StringBuffer' may be 'StringBuilder' (JDK 5.0 only) | StringBufferMayBeStringBuilder |
| 'StringBuffer.toString()' in concatenation | StringBufferToStringInConcatenation |
| 'assert' statement | AssertStatement |
| 'assertEquals()' between objects of inconvertible types | AssertEqualsBetweenInconvertibleTypes |
| 'await()' not in loop | AwaitNotInLoop |
| 'await()' without corresponding 'signal()' | AwaitWithoutCorrespondingSignal |
| 'break' statement | BreakStatement |
| 'break' statement with label | BreakStatementWithLabel |
| 'catch' generic class | CatchGenericClass |
| 'clone()' does not call 'super.clone()' | CloneDoesntCallSuperClone |
| 'clone()' does not declare 'CloneNotSupportedException' | CloneDoesntDeclareCloneNotSupportedException |
| 'clone()' instantiates objects with constructor | CloneCallsConstructors |
| 'clone()' method in non-Cloneable class | CloneInNonCloneableClass |
| 'compareto()' instead of 'compareTo()' | MisspelledCompareTo |
| 'continue' or 'break' inside 'finally' block | ContinueOrBreakFromFinallyBlock |
| 'continue' statement | ContinueStatement |
| 'continue' statement with label | ContinueStatementWithLabel |
| 'default' not last case in 'switch' | DefaultNotLastCaseInSwitch |
| 'equal()' instead of 'equals()' | MisspelledEquals |
| 'equals()' between objects of inconvertible types | EqualsBetweenInconvertibleTypes |
| 'equals()' called on array type | ArrayEquals |
| 'equals()' called on java.math.BigDecimal | BigDecimalEquals |
| 'equals()' method which does not check class of parameter | EqualsWhichDoesntCheckParameterClass |
| 'equals()' or 'hashCode()' called on java.net.URL object | EqualsHashCodeCalledOnUrl |
| 'final' class | FinalClass |
| 'final' method | FinalMethod |
| 'final' method in 'final' class | FinalMethodInFinalClass |
| 'finalize()' called explicitly | FinalizeCalledExplicitly |
| 'finalize()' declaration | FinalizeDeclaration |
| 'finalize()' does not call 'super.finalize()' | FinalizeDoesntCallSuperFinalize |
| 'finalize()' not declared 'protected' | FinalizeNotProtected |
| 'finally' block which can not complete normally | finally |
| 'for' loop may be replaced by 'while' loop | ForLoopReplaceableByWhile |
| 'for' loop replaceable by 'for each' | ForLoopReplaceableByForEach |
| 'for' loop where update or condition does not use loop variable | ForLoopThatDoesntUseLoopVariable |
| 'for' loop with missing components | ForLoopWithMissingComponent |
| 'hashcode()' instead of 'hashCode()' | MisspelledHashcode |
| 'if' statement with identical branches | IfStatementWithIdenticalBranches |
| 'if' statement with negated condition | IfStatementWithNegatedCondition |
| 'if' statement with too many branches | IfStatementWithTooManyBranches |
| 'indexOf()' expression is replaceable by 'contains()' | ListIndexOfReplaceableByContains |
| 'instanceof' a concrete class | InstanceofInterfaces |
| 'instanceof' check for 'this' | InstanceofThis |
| 'instanceof' on 'catch' parameter | InstanceofCatchParameter |
| 'instanceof' with incompatible interface | InstanceofIncompatibleInterface |
| 'notify()' or 'notifyAll()' called on java.util.concurrent.locks.Condition object | NotifyCalledOnCondition |
| 'notify()' or 'notifyAll()' while not synced | NotifyNotInSynchronizedContext |
| 'notify()' or 'notifyAll()' without corresponding state change | NakedNotify |
| 'notify()' without corresponding 'wait()' | NotifyWithoutCorrespondingWait |
| 'private' method declared 'final' | FinalPrivateMethod |
| 'protected' member in 'final' class | ProtectedMemberInFinalClass |
| 'public' constructor in non-public class | PublicConstructorInNonPublicClass |
| 'readObject()' or 'writeObject()' not declared 'private' | NonPrivateSerializationMethod |
| 'readResolve()' or 'writeReplace()' not declared 'protected' | ReadResolveAndWriteReplaceProtected |
| 'return' inside 'finally' block | ReturnInsideFinallyBlock |
| 'serialPersistentFields' field not declared 'private static final ObjectStreamField[]' | SerialPersistentFieldsWithWrongSignature |
| 'serialVersionUID' field not declared 'private static final long' | SerialVersionUIDWithWrongSignature |
| 'setUp()' does not call 'super.setUp()' | SetUpDoesntCallSuperSetUp |
| 'setUp()' with incorrect signature | SetUpWithIncorrectSignature |
| 'setup()' instead of 'setUp()' | MisspelledSetUp |
| 'signal()' without corresponding 'await()' | SignalWithoutCorrespondingAwait |
| 'size() == 0' replaceable by 'isEmpty()' | SizeReplaceableByIsEmpty |
| 'static' method declared 'final' | FinalStaticMethod |
| 'static', non-'final' field | StaticNonFinalField |
| 'suite()' method not declared 'static' | SuiteNotDeclaredStatic |
| 'switch' statement | SwitchStatement |
| 'switch' statement with too few branches | SwitchStatementWithTooFewBranches |
| 'switch' statement with too low of a branch density | SwitchStatementDensity |
| 'switch' statement with too many branches | SwitchStatementWithTooManyBranches |
| 'switch' statement without 'default' branch | SwitchStatementWithoutDefaultBranch |
| 'synchronized' method | SynchronizedMethod |
| 'tearDown()' does not call 'super.tearDown()' | TearDownDoesntCallSuperTearDown |
| 'tearDown()' with incorrect signature | TearDownWithIncorrectSignature |
| 'teardown()' instead of 'tearDown()' | MisspelledTearDown |
| 'this' reference escaped in object construction | ThisEscapedInObjectConstruction |
| 'throw' caught by containing 'try' statement | ThrowCaughtLocally |
| 'throw' inside 'catch' block which ignores the caught exception | ThrowInsideCatchBlockWhichIgnoresCaughtException |
| 'throw' inside 'finally' block | ThrowFromFinallyBlock |
| 'tostring()' instead of 'toString()' | MisspelledToString |
| 'wait()' called on java.util.concurrent.locks.Condition object | WaitCalledOnCondition |
| 'wait()' not in loop | WaitNotInLoop |
| 'wait()' or 'await()' without timeout | WaitOrAwaitWithoutTimeout |
| 'wait()' while holding two locks | WaitWhileHoldingTwoLocks |
| 'wait()' while not synced | WaitWhileNotSynced |
| 'wait()' without corresponding 'notify()' | WaitWithoutCorrespondingNotify |
| 'while' loop replaceable by 'for each' | WhileLoopReplaceableByForEach |
| * import | OnDemandImport |
| Abstract class extends concrete class | AbstractClassExtendsConcreteClass |
| Abstract class which has no concrete subclass | AbstractClassNeverImplemented |
| Abstract class which has only one direct inheritor | AbstractClassWithOnlyOneDirectInheritor |
| Abstract class without abstract methods | AbstractClassWithoutAbstractMethods |
| Abstract method call in constructor | AbstractMethodCallInConstructor |
| Abstract method overrides abstract method | AbstractMethodOverridesAbstractMethod |
| Abstract method overrides concrete method | AbstractMethodOverridesConcreteMethod |
| Abstract method with missing implementations | AbstractMethodWithMissingImplementations |
| Access of system properties | AccessOfSystemProperties |
| Access to non thread-safe static field from instance | AccessToNonThreadSafeStaticFieldFromInstance |
| Access to static field locked on instance data | AccessToStaticFieldLockedOnInstance |
| Accessing a non-public field of another object | AccessingNonPublicFieldOfAnotherObject |
| Annotation | Annotation |
| Annotation class | AnnotationClass |
| Annotation naming convention | AnnotationNamingConvention |
| Anonymous class variable hides variable in containing method | AnonymousClassVariableHidesContainingMethodVariable |
| Anonymous inner class | AnonymousInnerClass |
| Anonymous inner class may be a named static inner class | AnonymousInnerClassMayBeStatic |
| Anonymous inner class with too many methods | AnonymousInnerClassWithTooManyMethods |
| Arithmetic operation on volatile field | ArithmeticOnVolatileField |
| Array.length in loop condition | ArrayLengthInLoopCondition |
| Assignment replaceable with operator assignment | AssignmentReplaceableWithOperatorAssignment |
| Assignment to 'for' loop parameter | AssignmentToForLoopParameter |
| Assignment to 'null' | AssignmentToNull |
| Assignment to Collection or array field from parameter | AssignmentToCollectionOrArrayFieldFromParameter |
| Assignment to Date or Calendar field from parameter | AssignmentToDateFieldFromParameter |
| Assignment to catch block parameter | AssignmentToCatchBlockParameter |
| Assignment to method parameter | AssignmentToMethodParameter |
| Assignment to static field from instance method | AssignmentToStaticFieldFromInstanceMethod |
| Assignment used as condition | AssignmentUsedAsCondition |
| Auto-boxing | AutoBoxing |
| Auto-unboxing | AutoUnboxing |
| Boolean constructor call | BooleanConstructorCall |
| Boolean method name must start with question word | BooleanMethodNameMustStartWithQuestion |
| Busy wait | BusyWait |
| C-style array declaration | CStyleArrayDeclaration |
| Call to 'Collection.toArray()' with zero-length array argument | ToArrayCallWithZeroLengthArrayArgument |
| Call to 'Date.toString()' | CallToDateToString |
| Call to 'Runtime.exec()' | CallToRuntimeExecWithNonConstantString |
| Call to 'String.compareTo()' | CallToStringCompareTo |
| Call to 'String.concat()' can be replaced by '+' | CallToStringConcatCanBeReplacedByOperator |
| Call to 'String.equals()' | CallToStringEquals |
| Call to 'String.equalsIgnoreCase()' | CallToStringEqualsIgnoreCase |
| Call to 'String.toUpperCase()' or 'toLowerCase()' without a Locale | StringToUpperCaseOrToLowerCaseWithoutLocale |
| Call to 'System.exit()' or related methods | CallToSystemExit |
| Call to 'System.getenv()' | CallToSystemGetenv |
| Call to 'System.loadLibrary()' with non-constant string | LoadLibraryWithNonConstantString |
| Call to 'System.runFinalizersOnExit()' | CallToSystemRunFinalizersOnExit |
| Call to 'System.setSecurityManager()' | CallToSystemSetSecurityManager |
| Call to 'Thread.dumpStack()' | CallToThreadDumpStack |
| Call to 'Thread.run()' | CallToThreadRun |
| Call to 'Thread.setPriority()' | CallToThreadSetPriority |
| Call to 'Thread.sleep()' while synchronized | SleepWhileHoldingLock |
| Call to 'Thread.start()' during object construction | CallToThreadStartDuringObjectConstruction |
| Call to 'Thread.stop()', 'suspend()' or 'resume()' | CallToThreadStopSuspendOrResumeManager |
| Call to 'Thread.yield()' | CallToThreadYield |
| Call to 'Time.toString()' | CallToTimeToString |
| Call to 'intern()' on String constant | ConstantStringIntern |
| Call to 'notify()' instead of 'notifyAll()' | CallToNotifyInsteadOfNotifyAll |
| Call to 'printStackTrace()' | CallToPrintStackTrace |
| Call to 'signal()' instead of 'signalAll()' | CallToSignalInsteadOfSignalAll |
| Call to Numeric 'toString()' | CallToNumericToString |
| Call to String.replaceAll(".", ...) | ReplaceAllDot |
| Call to a native method while locked | CallToNativeMethodWhileLocked |
| Call to default 'toString()' | ObjectToString |
| Call to simple getter from within class | CallToSimpleGetterFromWithinClass |
| Call to simple setter from within class | CallToSimpleSetterFromWithinClass |
| Calls to 'System.gc()' or 'Runtime.gc()' | CallToSystemGC |
| Cast conflicts with 'instanceof' | CastConflictsWithInstanceof |
| Cast to a concrete class | CastToConcreteClass |
| Casting to incompatible interface | CastToIncompatibleInterface |
| Caught exception is immediately rethrown | CaughtExceptionImmediatelyRethrown |
| Chain of 'instanceof' checks | ChainOfInstanceofChecks |
| Chained equality comparisons | ChainedEqualityComparisons |
| Chained method calls | ChainedMethodCall |
| Channel opened but not safely closed | ChannelOpenedButNotSafelyClosed |
| Character comparison | CharacterComparison |
| Checked exception class | CheckedExceptionClass |
| Class escapes defined scope | ClassEscapesDefinedScope |
| Class explicitly extends a Collection class | ClassExtendsConcreteCollection |
| Class explicitly extends java.lang.Object | ClassExplicitlyExtendsObject |
| Class explicitly extends java.lang.Thread | ClassExplicitlyExtendsThread |
| Class extends annotation interface | ClassExplicitlyAnnotation |
| Class extends utility class | ExtendsUtilityClass |
| Class may be interface | ClassMayBeInterface |
| Class name differs from file name | ClassNameDiffersFromFileName |
| Class name prefixed with package name | ClassNamePrefixedWithPackageName |
| Class name same as ancestor name | ClassNameSameAsAncestorName |
| Class naming convention | ClassNamingConvention |
| Class references one of its subclasses | ClassReferencesSubclass |
| Class too deep in inheritance tree | ClassTooDeepInInheritanceTree |
| Class with multiple loggers | ClassWithMultipleLoggers |
| Class with too many constructors | ClassWithTooManyConstructors |
| Class with too many fields | ClassWithTooManyFields |
| Class with too many methods | ClassWithTooManyMethods |
| Class without 'toString()' | ClassWithoutToString |
| Class without constructor | ClassWithoutConstructor |
| Class without logger | ClassWithoutLogger |
| Class without no-arg constructor | ClassWithoutNoArgConstructor |
| Class without package statement | ClassWithoutPackageStatement |
| ClassLoader instantiation | ClassLoaderInstantiation |
| Cloneable class in secure context | CloneableClassInSecureContext |
| Cloneable class without 'clone()' | CloneableClassWithoutClone |
| Collection added to self | CollectionAddedToSelf |
| Collection declared by class, not interface | CollectionDeclaredAsConcreteClass |
| Collection without initial capacity | CollectionWithoutInitialCapacity |
| Comparable implemented but 'equals()' not overridden | ComparableImplementedButEqualsNotOverridden |
| Comparator class not declared Serializable | ComparatorNotSerializable |
| Comparison of 'short' and 'char' values | ComparisonOfShortAndChar |
| Comparison to Double.NaN or Float.NaN | ComparisonToNaN |
| Concatenation with empty string | ConcatenationWithEmptyString |
| Conditional expression (?:) | ConditionalExpression |
| Conditional expression with identical branches | ConditionalExpressionWithIdenticalBranches |
| Conditional expression with negated condition | ConditionalExpressionWithNegatedCondition |
| Conditional that can be simplified to && or || | SimplifiableConditionalExpression |
| Confusing 'else' branch | ConfusingElseBranch |
| Confusing 'main()' method | ConfusingMainMethod |
| Confusing 'null' argument to var-arg method | NullArgumentToVariableArgMethod |
| Confusing floating-point literal | ConfusingFloatingPointLiteral |
| Confusing octal escape sequence | ConfusingOctalEscapeSequence |
| Confusing primitive array argument to var-arg method | PrimitiveArrayArgumentToVariableArgMethod |
| Connection opened but not safely closed | ConnectionOpenedButNotSafelyClosed |
| Constant StringBuffer may be String | StringBufferReplaceableByString |
| Constant call to java.lang.Math or StrictMath | ConstantMathCall |
| Constant conditional expression | ConstantConditionalExpression |
| Constant declared in abstract class | ConstantDeclaredInAbstractClass |
| Constant declared in interface | ConstantDeclaredInInterface |
| Constant if statement | ConstantIfStatement |
| Constant naming convention | ConstantNamingConvention |
| Constant on left side of comparison | ConstantOnLeftSideOfComparison |
| Constant on right side of comparison | ConstantOnRightSideOfComparison |
| Constructor not 'protected' in 'abstract' class | ConstructorNotProtectedInAbstractClass |
| Constructor with too many parameters | ConstructorWithTooManyParameters |
| Control flow statement without braces | ControlFlowStatementWithoutBraces |
| Covariant 'compareTo()' | CovariantCompareTo |
| Covariant 'equals()' | CovariantEquals |
| Custom ClassLoader | CustomClassloader |
| Custom SecurityManager | CustomSecurityManager |
| Deserializable class in secure context | DeserializableClassInSecureContext |
| Design for extension | DesignForExtension |
| Division by zero | divzero |
| Double negation | DoubleNegation |
| Double-checked locking | DoubleCheckedLocking |
| Duplicate condition in 'if' statement | DuplicateCondition |
| Duplicate condition on '&&' or '||' | DuplicateBooleanBranch |
| Empty 'catch' block | EmptyCatchBlock |
| Empty 'finally' block | EmptyFinallyBlock |
| Empty 'synchronized' statement | EmptySynchronizedStatement |
| Empty 'try' block | EmptyTryBlock |
| Empty class | EmptyClass |
| Empty class initializer | EmptyClassInitializer |
| Enum 'switch' statement that misses case | EnumSwitchStatementWhichMissesCases |
| Enumerated class | EnumClass |
| Enumerated class naming convention | EnumeratedClassNamingConvention |
| Enumerated constant naming convention | EnumeratedConstantNamingConvention |
| Enumeration can be iteration | EnumerationCanBeIteration |
| Exception class name does not end with 'Exception' | ExceptionClassNameDoesntEndWithException |
| Extended 'for' statement | ForeachStatement |
| Externalizable class with 'readObject()' or 'writeObject()' | ExternalizableClassWithSerializationMethods |
| Fallthrough in 'switch' statement | fallthrough |
| Feature envy | FeatureEnvy |
| Field accessed in both synchronized and unsynchronized contexts | FieldAccessedSynchronizedAndUnsynchronized |
| Field has setter but no getter | FieldHasSetterButNoGetter |
| Field may be 'static' | FieldMayBeStatic |
| Field name hides field in superclass | FieldNameHidesFieldInSuperclass |
| Field repeatedly accessed in method | FieldRepeatedlyAccessedInMethod |
| Floating point equality comparison | FloatingPointEquality |
| Hardcoded file separator | HardcodedFileSeparator |
| Hardcoded line separator | HardcodedLineSeparator |
| Hibernate resource opened but not safely closed | HibernateResourceOpenedButNotSafelyClosed |
| I/O resource opened but not safely closed | IOResourceOpenedButNotSafelyClosed |
| If statement may be replaced by && or || expression | SimplifiableIfStatement |
| Implicit call to 'super()' | ImplicitCallToSuper |
| Implicit call to array '.toString()' | ImplicitArrayToString |
| Implicit numeric conversion | ImplicitNumericConversion |
| Import from same package | SamePackageImport |
| Incompatible bitwise mask operation | IncompatibleBitwiseMaskOperation |
| Infinite loop statement | InfiniteLoopStatement |
| Infinite recursion | InfiniteRecursion |
| Inner class field hides outer class field | InnerClassFieldHidesOuterClassField |
| Inner class may be 'static' | InnerClassMayBeStatic |
| Inner class of interface | InnerClassOfInterface |
| Inner class too deeply nested | InnerClassTooDeeplyNested |
| Insecure random number generation | UnsecureRandomNumberGeneration |
| Inspection suppression annotation | SuppressionAnnotation |
| Instance method naming convention | InstanceMethodNamingConvention |
| Instance variable may not be initialized | InstanceVariableMayNotBeInitialized |
| Instance variable may not be initialized by 'readObject()' | InstanceVariableMayNotBeInitializedByReadObject |
| Instance variable naming convention | InstanceVariableNamingConvention |
| Instance variable of concrete class | InstanceVariableOfConcreteClass |
| Instance variable used before initialized | InstanceVariableUsedBeforeInitialized |
| Instantiating a SimpleDateFormat without a Locale | SimpleDateFormatWithoutLocale |
| Instantiating a Thread with default 'run()' method | InstantiatingAThreadWithDefaultRunMethod |
| Instantiating object to get Class object | InstantiatingObjectToGetClassObject |
| Instantiation of utility class | InstantiationOfUtilityClass |
| Integer division in floating point context | IntegerDivisionInFloatingPointContext |
| Integer multiplication or shift implicitly cast to long | IntegerMultiplicationImplicitCastToLong |
| Interface naming convention | InterfaceNamingConvention |
| Interface which has no concrete subclass | InterfaceNeverImplemented |
| Interface which has only one direct inheritor | InterfaceWithOnlyOneDirectInheritor |
| JDBC resource opened but not safely closed | JDBCResourceOpenedButNotSafelyClosed |
| JNDI resource opened but not safely closed | JNDIResourceOpenedButNotSafelyClosed |
| JUnit TestCase in product source | JUnitTestCaseInProductSource |
| JUnit TestCase with non-trivial constructors | JUnitTestCaseWithNonTrivialConstructors |
| JUnit abstract test class naming convention | JUnitAbstractTestClassNamingConvention |
| JUnit test case with no tests | JUnitTestCaseWithNoTests |
| JUnit test class naming convention | JUnitTestClassNamingConvention |
| JUnit test method in product source | JUnitTestMethodInProductSource |
| JUnit test method without any assertions | JUnitTestMethodWithNoAssertions |
| Labeled statement | LabeledStatement |
| Large array allocation with no OutOfMemoryError check | CheckForOutOfMemoryOnLargeArrayAllocation |
| Limited-scope inner class | LimitedScopeInnerClass |
| Local variable hides member variable | LocalVariableHidesMemberVariable |
| Local variable naming convention | LocalVariableNamingConvention |
| Local variable of concrete class | LocalVariableOfConcreteClass |
| Local variable used and declared in different 'switch' branches | LocalVariableUsedAndDeclaredInDifferentSwitchBranches |
| Lock acquired but not safely unlocked | LockAcquiredButNotSafelyReleased |
| Long literal ending with 'l' instead of 'L' | LongLiteralEndingWithLowercaseL |
| Loop statement that does not loop | LoopStatementThatDoesntLoop |
| Loop variable not updated inside loop | LoopConditionNotUpdatedInsideLoop |
| Loop with implicit termination condition | LoopWithImplicitTerminationCondition |
| Malformed @Before or @After method | BeforeOrAfterWithIncorrectSignature |
| Malformed @BeforeClass or @AfterClass method | BeforeOrAfterWithIncorrectSignature |
| Malformed XPath expression | MalformedXPath |
| Malformed format string | MalformedFormatString |
| Malformed regular expression | MalformedRegex |
| Manual array copy | ManualArrayCopy |
| Manual array to collection copy | ManualArrayToCollectionCopy |
| Map or Set may contain java.net.URL objects | CollectionContainsUrl |
| Map replaceable by EnumMap | MapReplaceableByEnumMap |
| Marker interface | MarkerInterface |
| Message missing on JUnit assertion | MessageMissingOnJUnitAssertion |
| Method call in loop condition | MethodCallInLoopCondition |
| Method call violates Law of Demeter | LawOfDemeter |
| Method is identical to its super method | RedundantMethodOverride |
| Method may be 'static' | MethodMayBeStatic |
| Method name same as class name | MethodNameSameAsClassName |
| Method name same as parent class name | MethodNameSameAsParentName |
| Method names differing only by case | MethodNamesDifferingOnlyByCase |
| Method overloads method of superclass | MethodOverloadsMethodOfSuperclass |
| Method overrides package local method of superclass located in other package | MethodOverridesPrivateMethodOfSuperclass |
| Method overrides private method of superclass | MethodOverridesPrivateMethodOfSuperclass |
| Method overrides static method of superclass | MethodOverridesStaticMethodOfSuperclass |
| Method parameter naming convention | MethodParameterNamingConvention |
| Method parameter of concrete class | MethodParameterOfConcreteClass |
| Method return of concrete class | MethodReturnOfConcreteClass |
| Method with more than three negations | MethodWithMoreThanThreeNegations |
| Method with multiple loops | MethodWithMultipleLoops |
| Method with multiple return points. | MethodWithMultipleReturnPoints |
| Method with synchronized block could be synchronized method | MethodMayBeSynchronized |
| Method with too many exceptions declared | MethodWithTooExceptionsDeclared |
| Method with too many parameters | MethodWithTooManyParameters |
| Mismatched query and update of collection | MismatchedQueryAndUpdateOfCollection |
| Mismatched read and write of array | MismatchedReadAndWriteOfArray |
| Misordered 'assertEquals()' parameters | MisorderedAssertEqualsParameters |
| Missing @Deprecated annotation | MissingDeprecatedAnnotation |
| Missing @Override annotation | override |
| Missorted modifers | MissortedModifiers |
| Multiple top level classes in single file | MultipleTopLevelClassesInFile |
| Multiple variables in one declaration | MultipleVariablesInDeclaration |
| Multiply or divide by power of two | MultiplyOrDivideByPowerOfTwo |
| Native method | NativeMethod |
| Nested 'switch' statement | NestedSwitchStatement |
| Nested 'synchronized' statement | NestedSynchronizedStatement |
| Nested 'try' statement | NestedTryStatement |
| Nested assignment | NestedAssignment |
| Nested conditional expression | NestedConditionalExpression |
| Nested method call | NestedMethodCall |
| No-op method in abstract class | NoopMethodInAbstractClass |
| Non-boolean method name must not start with question word | NonBooleanMethodNameMayNotStartWithQuestion |
| Non-constant String should be StringBuffer | NonConstantStringShouldBeStringBuffer |
| Non-constant field with upper-case name | NonConstantFieldWithUpperCaseName |
| Non-constant logger | NonConstantLogger |
| Non-exception class name ends with 'Exception' | NonExceptionNameEndsWithException |
| Non-final 'clone()' in secure context | NonFinalClone |
| Non-final field of exception class | NonFinalFieldOfException |
| Non-final field referenced in 'compareTo()' | CompareToUsesNonFinalVariable |
| Non-final field referenced in 'equals()' | NonFinalFieldReferenceInEquals |
| Non-final field referenced in 'hashCode()' | NonFinalFieldReferencedInHashCode |
| Non-final static variable is used during class initialization | NonFinalStaticVariableUsedInClassInitialization |
| Non-private field accessed in synchronized context | NonPrivateFieldAccessedInSynchronizedContext |
| Non-reproducible call to java.lang.Math | NonReproducibleMathCall |
| Non-serializable class with 'readObject()' or 'writeObject()' | NonSerializableClassWithSerializationMethods |
| Non-serializable class with 'serialVersionUID' | NonSerializableClassWithSerialVersionUID |
| Non-serializable field in a Serializable class | NonSerializableFieldInSerializableClass |
| Non-serializable object bound to HttpSession | NonSerializableObjectBoundToHttpSession |
| Non-serializable object passed to ObjectOutputStream | NonSerializableObjectPassedToObjectStream |
| Non-short-circuit boolean expression | NonShortCircuitBooleanExpression |
| Non-static initializer | NonStaticInitializer |
| Non-static inner class in secure context | NonStaticInnerClassInSecureContext |
| Non-synchronized method overrides synchronized method | NonSynchronizedMethodOverridesSynchronizedMethod |
| Number comparison using '==', instead of 'equals()' | NumberEquality |
| Number constructor call with primitive argument | CachedNumberConstructorCall |
| Numeric cast that loses precision | NumericCastThatLosesPrecision |
| Object allocation in loop | ObjectAllocationInLoop |
| Object comparison using ==, instead of 'equals()' | ObjectEquality |
| Object.equals(null) | ObjectEqualsNull |
| Octal and decimal integers in same array | OctalAndDecimalIntegersInSameArray |
| Octal integer | OctalInteger |
| Overloaded methods with same number of parameters | OverloadedMethodsWithSameNumberOfParameters |
| Overloaded variable argument method | OverloadedVarargsMethod |
| Overly broad 'catch' block | OverlyBroadCatchBlock |
| Overly complex anonymous inner class | OverlyComplexAnonymousInnerClass |
| Overly complex arithmetic expression | OverlyComplexArithmeticExpression |
| Overly complex boolean expression | OverlyComplexBooleanExpression |
| Overly complex class | OverlyComplexClass |
| Overly complex method | OverlyComplexMethod |
| Overly coupled class | OverlyCoupledClass |
| Overly coupled method | OverlyCoupledMethod |
| Overly large initializer for array of primitive type | OverlyLargePrimitiveArrayInitializer |
| Overly long method | OverlyLongMethod |
| Overly nested method | OverlyNestedMethod |
| Overly-strong type cast | OverlyStrongTypeCast |
| Overridable method call during object construction | OverridableMethodCallDuringObjectConstruction |
| Overridden method call during object construction | OverriddenMethodCallDuringObjectConstruction |
| Package-visible field | PackageVisibleField |
| Package-visible inner class | PackageVisibleInnerClass |
| Parameter hides member variable | ParameterHidesMemberVariable |
| Parameter name differs from parameter in overridden method | ParameterNameDiffersFromOverriddenParameter |
| Pointless 'indexOf()' comparison | PointlessIndexOfComparison |
| Pointless arithmetic expression | PointlessArithmeticExpression |
| Pointless bitwise expression | PointlessBitwiseExpression |
| Pointless boolean expression | PointlessBooleanExpression |
| Private member access between outer and inner classes | PrivateMemberAccessBetweenOuterAndInnerClass |
| Private method only used from inner class | MethodOnlyUsedFromInnerClass |
| Prohibited exception caught | ProhibitedExceptionCaught |
| Prohibited exception declared | ProhibitedExceptionDeclared |
| Prohibited exception thrown | ProhibitedExceptionThrown |
| Protected field | ProtectedField |
| Protected inner class | ProtectedInnerClass |
| Public field | PublicField |
| Public inner class | PublicInnerClass |
| Public method not exposed in interface | PublicMethodNotExposedInInterface |
| Public method without logging | PublicMethodWithoutLogging |
| Public static array field | PublicStaticArrayField |
| Public static collection field | PublicStaticCollectionField |
| Questionable name | QuestionableName |
| Raw use of parameterized class | RawUseOfParameterizedType |
| RecordStore opened but not safely closed | RecordStoreOpenedButNotSafelyClosed |
| Redundant '.substring(0)' | SubstringZero |
| Redundant 'String.toString()' | RedundantStringToString |
| Redundant 'if' statement | RedundantIfStatement |
| Redundant String constructor call | RedundantStringConstructorCall |
| Redundant conditional expression | RedundantConditionalExpression |
| Redundant field initialization | RedundantFieldInitialization |
| Redundant import | RedundantImport |
| Redundant interface declaration | RedundantInterfaceDeclaration |
| Redundant local variable | UnnecessaryLocalVariable |
| Redundant no-arg constructor | RedundantNoArgConstructor |
| Reflective access to a source-only annotation | ReflectionForUnavailableAnnotation |
| Refused bequest | RefusedBequest |
| Result of method call ignored | ResultOfMethodCallIgnored |
| Result of object allocation ignored | ResultOfObjectAllocationIgnored |
| Return of 'null' | ReturnOfNull |
| Return of 'this' | ReturnOfThis |
| Return of Collection or array field | ReturnOfCollectionOrArrayField |
| Return of Date or Calendar field | ReturnOfDateField |
| Reuse of local variable | ReuseOfLocalVariable |
| Scope of variable is too broad | TooBroadScope |
| Serializable class in secure context | SerializableClassInSecureContext |
| Serializable class with unconstructable ancestor | SerializableClassWithUnconstructableAncestor |
| Serializable class without 'readObject()' and 'writeObject()' | SerializableHasSerializationMethods |
| Serializable class without 'serialVersionUID' | serial |
| Serializable non-static inner class with non-Serializable outer class | SerializableInnerClassWithNonSerializableOuterClass |
| Serializable non-static inner class without 'serialVersionUID' | SerializableNonStaticInnerClassWithoutSerialVersionUID |
| Set replaceable by EnumSet | SetReplaceableByEnumSet |
| Shift operation by inappropriate constant | ShiftOutOfRange |
| Simplifiable JUnit assertion | SimplifiableJUnitAssertion |
| Single character 'startsWith()' or 'endsWith()' | SingleCharacterStartsWith |
| Single character string concatenation | SingleCharacterStringConcatenation |
| Single character string parameter in 'String.indexOf()' call | SingleCharacterStringConcatenation |
| Single class import | SingleClassImport |
| Singleton | Singleton |
| Socket opened but not safely closed | SocketOpenedButNotSafelyClosed |
| Standard variable names | StandardVariableNames |
| Statement with empty body | StatementWithEmptyBody |
| Static collection | StaticCollection |
| Static field referenced via subclass | StaticFieldReferencedViaSubclass |
| Static import | StaticImport |
| Static inheritance | StaticInheritance |
| Static method naming convention | StaticMethodNamingConvention |
| Static method only used from one other class | StaticMethodOnlyUsedInOneClass |
| Static method referenced via subclass | StaticMethodReferencedViaSubclass |
| Static variable may not be initialized | StaticVariableMayNotBeInitialized |
| Static variable naming convention | StaticVariableNamingConvention |
| Static variable of concrete class | StaticVariableOfConcreteClass |
| Static variable used before initialization | StaticVariableUsedBeforeInitialization |
| String comparison using '==', instead of 'equals()' | StringEquality |
| String concatenation | StringConcatenation |
| String concatenation in loop | StringContatenationInLoop |
| String concatenation inside 'StringBuffer.append()' | StringConcatenationInsideStringBufferAppend |
| StringBuffer constructor call with 'char' argument | NewStringBufferWithCharArgument |
| StringBuffer field | StringBufferField |
| StringBuffer or StringBuilder without initial capacity | StringBufferWithoutInitialCapacity |
| Subtraction in compareTo() | SubtractionInCompareTo |
| Suspicious 'Collections.toArray()' call | SuspiciousToArrayCall |
| Suspicious 'System.arraycopy()' call | SuspiciousSystemArraycopy |
| Suspicious indentation after control statement without braces | SuspiciousIndentAfterControlStatement |
| Suspicious test for oddness | BadOddness |
| Synchronization on 'this' | SynchronizeOnThis |
| Synchronization on a Lock object | SynchroniziationOnLockObject |
| Synchronization on a non-final field | SynchronizeOnNonFinalField |
| Synchronization on an object initialized with a literal | SynchronizedOnLiteralObject |
| TODO comment | TodoComment |
| Tail recursion | TailRecursion |
| Test method with incorrect signature | TestMethodWithIncorrectSignature |
| Text label in 'switch' statement | TextLabelInSwitchStatement |
| Throwable instance not thrown | ThrowableInstanceNeverThrown |
| Transient field in non-serializable class | TransientFieldInNonSerializableClass |
| Transient field is not initialized on deserialization | TransientFieldNotInitialized |
| Type may be weakened | TypeMayBeWeakened |
| Type parameter explicitly extends 'java.lang.Object' | TypeParameterExplicitlyExtendsObject |
| Type parameter extends final class | TypeParameterExtendsFinalClass |
| Type parameter hides visible type | TypeParameterHidesVisibleType |
| Type parameter naming convention | TypeParameterNamingConvention |
| Unary plus | UnaryPlus |
| Unchecked exception class | UncheckedExceptionClass |
| Unconditional 'wait()' call | UnconditionalWait |
| Unconstructable JUnit TestCase | UnconstructableJUnitTestCase |
| Unnecessarily qualified static usage | UnnecessarilyQualifiedStaticUsage |
| Unnecessary 'continue' statement | UnnecessaryContinue |
| Unnecessary 'default' for enum switch statement | UnnecessaryDefault |
| Unnecessary 'final' for local variable | UnnecessaryFinalOnLocalVariable |
| Unnecessary 'final' for method parameter | UnnecessaryFinalForMethodParameter |
| Unnecessary 'return' statement | UnnecessaryReturnStatement |
| Unnecessary 'this' qualifier | UnnecessaryThis |
| Unnecessary boxing | UnnecessaryBoxing |
| Unnecessary call to 'super()' | UnnecessaryCallToSuper |
| Unnecessary code block | UnnecessaryCodeBlock |
| Unnecessary enum modifier | UnnecessaryEnumModifier |
| Unnecessary fully qualified name | UnnecessaryFullyQualifiedName |
| Unnecessary interface modifier | UnnecessaryInterfaceModifier |
| Unnecessary label on 'break' statement | UnnecessaryLabelOnBreakStatement |
| Unnecessary label on 'continue' statement | UnnecessaryLabelOnContinueStatement |
| Unnecessary parentheses | UnnecessaryParentheses |
| Unnecessary qualifier for 'this' | UnnecessaryQualifierForThis |
| Unnecessary semicolon | UnnecessarySemicolon |
| Unnecessary temporary object in conversion from String | UnnecessaryTemporaryOnConversionFromString |
| Unnecessary temporary object in conversion to String | UnnecessaryTemporaryOnConversionToString |
| Unnecessary unary minus | UnnecessaryUnaryMinus |
| Unnecessary unboxing | UnnecessaryUnboxing |
| Unpredictable BigDecimal constructor call | UnpredictableBigDecimalConstructorCall |
| Unqualified instance field access | UnqualifiedFieldAccess |
| Unqualified static usage | UnqualifiedStaticUsage |
| Unsafe lazy initialization of static field | NonThreadSafeLazyInitialization |
| Unused 'catch' parameter | UnusedCatchParameter |
| Unused import | UnusedImport |
| Unused label | UnusedLabel |
| Use of '$' in identifier | DollarSignInName |
| Use of 'assert' as identifier | AssertAsIdentifier |
| Use of 'enum' as identifier | EnumAsIdentifier |
| Use of AWT peer class | UseOfAWTPeerClass |
| Use of DriverManager to get JDBC connection | CallToDriverManagerGetConnection |
| Use of Properties object as a Hashtable | UseOfPropertiesAsHashtable |
| Use of StringTokenizer | UseOfStringTokenizer |
| Use of System.out or System.err | UseOfSystemOutOrSystemErr |
| Use of archaic system property accessors | UseOfArchaicSystemPropertyAccessors |
| Use of concrete JDBC driver class | UseOfJDBCDriverClass |
| Use of index 0 in JDBC ResultSet | UseOfIndexZeroInJDBCResultSet |
| Use of java.lang.ProcessBuilder class | UseOfProcessBuilder |
| Use of java.lang.reflect | JavaLangReflect |
| Use of obsolete collection type | UseOfObsoleteCollectionType |
| Use of sun.* classes | UseOfSunClasses |
| Using 'Random.nextDouble()' to get random integer | UsingRandomNextDoubleForRandomInteger |
| Utility class | UtilityClass |
| Utility class with public constructor | UtilityClassWithPublicConstructor |
| Utility class without private constructor | UtilityClassWithoutPrivateConstructor |
| Value of ++ or -- used | ValueOfIncrementOrDecrementUsed |
| Variable argument method | VariableArgumentMethod |
| Variables of different types in one declaration | VariablesOfDifferentTypesInDeclaration |
| Volatile array field | VolatileArrayField |
| Volatile long or double field | VolatileLongOrDoubleField |
| While loop spins on field | WhileLoopSpinsOnField |
| Zero-length array allocation | ZeroLengthArrayAllocation |
| expression.equals("literal") rather than "literal".equals(expression) | LiteralAsArgToStringEquals |
| java.lang import | JavaLangImport |
| java.lang.Error not rethrown | ErrorNotRethrown |
| java.lang.ThreadDeath not rethrown | ThreadDeathNotRethrown |