@ Override public void visitClassContext ( ClassContext classContext ) { try { if ( ( collectionClass != null ) && ( mapClass != null ) ) { collectionFields = new HashMap <> ( ) ; aliases = new HashMap <> ( ) ; stack = new OpcodeStack ( ) ; JavaClass cls = classContext . getJavaClass ( ) ; className = cls . getClassName ( ) ; super . visitClassContext ( classContext ) ; for ( FieldInfo fi : collectionFields . values ( ) ) { if ( fi . isSynchronized ( ) ) { bugReporter . reportBug ( new BugInstance ( this , BugType . NMCS_NEEDLESS_MEMBER_COLLECTION_SYNCHRONIZATION . name ( ) , NORMAL_PRIORITY ) . addClass ( this ) . addField ( fi . getFieldAnnotation ( ) ) ) ; } } } } finally { collectionFields = null ; aliases = null ; stack = null ; } }
implements the visitor to clear the collectionFields and stack and to report collections that remain unmodified out of clinit or init