bugReporter.reportBug(new BugInstance("UR_UNINIT_READ", NORMAL_PRIORITY)
bugReporter.reportBug(new BugInstance(this, "UR_UNINIT_READ", NORMAL_PRIORITY)
	public void sawOpcode(int seen) {		if (!inConstructor) return;		/*		System.out.println("thisOnTOS:" + thisOnTOS);		System.out.println("seen:" + seen);		*/		if (seen == ALOAD_0) {			thisOnTOS = true;			/*			System.out.println("set thisOnTOS");			*/			return;		}/*	if (thisOnTOS && seen == GETFIELD) {		System.out.println("Saw getfield of " + classConstant 				+ "." + nameConstant);		if (initializedFields.contains(nameConstant))		    System.out.println("   initialized");		if (declaredFields.contains(nameConstant))		    System.out.println("   declared");		}*/		if (seen == PUTFIELD && getClassConstantOperand().equals(getClassName()))			initializedFields.add(FieldAnnotation.fromReferencedField(this));		else if (thisOnTOS && seen == GETFIELD && getClassConstantOperand().equals(getClassName())) {			FieldAnnotation f = FieldAnnotation.fromReferencedField(this);			int nextOpcode = codeBytes[getPC() + 3];			// System.out.println("Next opcode: " + OPCODE_NAMES[nextOpcode]);			if (nextOpcode != POP && !initializedFields.contains(f) && declaredFields.contains(f)) {				bugReporter.reportBug(new BugInstance("UR_UNINIT_READ", NORMAL_PRIORITY)				        .addClassAndMethod(this)				        .addField(f)				        .addSourceLine(this));				initializedFields.add(FieldAnnotation.fromReferencedField(this));			}		} else if (		        (seen == INVOKESPECIAL		        && !(getNameConstantOperand().equals("<init>")		        && !getClassConstantOperand().equals(getClassName()))		        )		        || (seen == INVOKESTATIC		        && getNameConstantOperand().equals("doPrivileged")		        && getClassConstantOperand().equals("java/security/AccessController")		        )		        || (seen == INVOKEVIRTUAL		        && getClassConstantOperand().equals(getClassName()))		        || (seen == INVOKEVIRTUAL		        && getNameConstantOperand().equals("start"))) {			/*			System.out.println("Saw invocation of "				+ classConstant + "." + nameConstant				+ " in " + className + "." + methodName);			*/			inConstructor = false;		}		thisOnTOS = false;	}