Jlint will check your Java code and find bugs, inconsistencies and synchronization problems by doing data flow analysis and building a lock graph.