if (alreadyReported.add(betterMethodName))
if (alreadyReported.add(refConstant))
   public void sawOpcode(int seen) {	if ((seen == INVOKESPECIAL)				&& classConstant.equals("java/lang/String")				&& nameConstant.equals("<init>")				&& sigConstant.equals("(Ljava/lang/String;)V"))		if (alreadyReported.add(betterMethodName))			bugReporter.reportBug(new BugInstance("DM_STRING_CTOR", NORMAL_PRIORITY)				.addClassAndMethod(this)				.addSourceLine(this));	if ((seen == INVOKESPECIAL)				&& classConstant.equals("java/lang/String")				&& nameConstant.equals("<init>")				&& sigConstant.equals("()V"))		if (alreadyReported.add(betterMethodName))			bugReporter.reportBug(new BugInstance("DM_STRING_VOID_CTOR", NORMAL_PRIORITY)				.addClassAndMethod(this)				.addSourceLine(this));	if (((seen == INVOKESTATIC				&& classConstant.equals("java/lang/System"))	    || (seen == INVOKEVIRTUAL				&& classConstant.equals("java/lang/Runtime")))				&& nameConstant.equals("gc")				&& sigConstant.equals("()V")				&& !betterClassName.startsWith("java.lang"))		if (alreadyReported.add(betterMethodName))			// Just save this report in a field; it will be flushed			// IFF there were no calls to System.currentTimeMillis();			// in the method.			systemGC = new BugInstance("DM_GC", HIGH_PRIORITY)				.addClassAndMethod(this)				.addSourceLine(this);	if ((seen == INVOKESPECIAL)				&& classConstant.equals("java/lang/Boolean")				&& nameConstant.equals("<init>")				&& !className.equals("java/lang/Boolean")				)		if (alreadyReported.add(betterMethodName))			bugReporter.reportBug(new BugInstance("DM_BOOLEAN_CTOR", NORMAL_PRIORITY)				.addClassAndMethod(this)				.addSourceLine(this));	if ((seen == INVOKESTATIC)				&& classConstant.equals("java/lang/System")				&& nameConstant.equals("currentTimeMillis"))			sawCurrentTimeMillis = true;	}