    Logging not wrapped in if block
    Public method without logging
    Logger constructed without the current class name as argument.
    Configure Log4J in a file
    Prohibitted Log4J levels
    Class name with forbidden name component
    JDBC close order
    JDBC connection createStatement()
    Look for ArrayIndexOutOfBounds errors statically
    Read or write on non-buffered stream
    Static initializer which creates an instance before all static variables are initialized
    getClass().getResource()
    Inefficient use of keySet iterator rather than entrySet iterator
    Constant month outside range of 0..11
    Duplicate switch branches
    Command-Query separation
    Long Mesage chain
    Constants with equal value
    Inaccessible matching methods
    Complex assignments
    Mixed logical operators without parentheses
    Use of XML class without factory
    Thread started multiple times
    Thread started without being named.
    Eternal thread
    Poor handling of interrupted flag
    lock for atomic operation
    Daemon thread
    Looping thread doesn't check for interrupt
    join() on eternal thread
    Splittable lock
