.addInt(freq).describe("INT_SYNC_PERCENT"));
.addInt(freq).describe(IntAnnotation.INT_SYNC_PERCENT));
         public void report() {		int noLocked = 0;		int noUnlocked = 0;		int isPublic = 0;		int couldBeFinal = 0;		int noLocalLocks = 0;		int volatileOrFinalCount = 0;		int mostlyUnlocked = 0;		//for (Iterator<Map.Entry<FieldAnnotation, int[]>> i = stats.entrySet().iterator(); i.hasNext();) {		for (FieldAnnotation f : stats.keySet()) {			int[] theseStats = stats.get(f);			int locked = theseStats[READ_LOCKED] + theseStats[WRITTEN_LOCKED];			int biasedLocked = theseStats[READ_LOCKED] + 2 * theseStats[WRITTEN_LOCKED];			int unlocked = theseStats[READ_UNLOCKED] + theseStats[WRITTEN_UNLOCKED];			int biasedUnlocked = theseStats[READ_UNLOCKED] + 2 * theseStats[WRITTEN_UNLOCKED];			int writes = theseStats[WRITTEN_LOCKED] + theseStats[WRITTEN_UNLOCKED];			if (locked == 0) {				noLocked++;				continue;			}			if (unlocked == 0) {				noUnlocked++;				continue;			}			if (theseStats[READ_UNLOCKED] > 0 && 2 * biasedUnlocked > biasedLocked) {				if (DEBUG) System.out.println("Mostly unlocked for " + f + ":");				int freq = (100 * locked) / (locked + unlocked);				if (DEBUG) {					System.out.print(freq							+ "	");					for (int j = 0; j < 4; j++)						System.out.print(theseStats[j] + "	");					System.out.println(f);				}				mostlyUnlocked++;				continue;			}			if (publicFields.contains(f)) {				isPublic++;				continue;			}			if (volatileOrFinalFields.contains(f)) {				volatileOrFinalCount++;				continue;			}			if (!writtenOutsideOfConstructor.contains(f)) {				couldBeFinal++;				continue;			}			if (!localLocks.contains(f)) {				if (DEBUG) System.out.println("No local locks of " + f);				noLocalLocks++;				continue;			}			int freq = (100 * locked) / (locked + unlocked);			bugReporter.reportBug(new BugInstance(this, "IS_INCONSISTENT_SYNC", NORMAL_PRIORITY)					.addClass(f.getClassName())					.addField(f)					.addInt(freq).describe("INT_SYNC_PERCENT"));			if (DEBUG) {				System.out.print(freq						+ "	");				for (int j = 0; j < 4; j++)					System.out.print(theseStats[j] + "	");				System.out.println(f);			}		}		if (DEBUG) {			int total = stats.size();			System.out.println("        Total fields: " + total);			System.out.println("  No locked accesses: " + noLocked);			System.out.println("No unlocked accesses: " + noUnlocked);			System.out.println("     Mostly unlocked: " + mostlyUnlocked);			System.out.println("       public fields: " + isPublic);			if (couldBeFinal > 0)				System.out.println("      could be Final: " + couldBeFinal);			System.out.println("   volatile or final: " + volatileOrFinalCount);			System.out.println("      no local locks: " + noLocalLocks);			System.out.println(" questionable fields: " + (total - noLocked - noUnlocked - isPublic - volatileOrFinalCount - couldBeFinal - noLocalLocks - mostlyUnlocked));		}	}