priority = NORMAL_PRIORITY;
priority = HIGH_PRIORITY;
	private void checkEqualsComparison(Location location, JavaClass jclass, MethodGen methodGen,		TypeDataflow typeDataflow) throws DataflowAnalysisException {		InstructionHandle handle = location.getHandle();		String sourceFile = jclass.getSourceFileName();		TypeFrame frame = typeDataflow.getFactAtLocation(location);		if (frame.getStackDepth() < 2)			throw new DataflowAnalysisException("Stack underflow", methodGen, handle);		int numSlots = frame.getNumSlots();		Type lhsType_ = frame.getValue(numSlots - 2);		Type rhsType_ = frame.getValue(numSlots - 1);		if (lhsType_.equals(rhsType_))			return;		// Ignore top and bottom values		if (lhsType_.getType() == T_TOP || lhsType_.getType() == T_BOTTOM			|| rhsType_.getType() == T_TOP || rhsType_.getType() == T_BOTTOM)			return;		if (!(lhsType_ instanceof ReferenceType) || !(rhsType_ instanceof ReferenceType)) {			if (rhsType_.getType() == T_NULL) {				// A literal null value was passed directly to equals().				bugReporter.reportBug(new BugInstance("EC_NULL_ARG", NORMAL_PRIORITY)					.addClassAndMethod(methodGen, sourceFile)					.addSourceLine(methodGen, sourceFile, location.getHandle())				);			} else if (lhsType_.getType() == T_NULL) {				// Hmm...in this case, equals() is being invoked on				// a literal null value.  This is really the				// purview of FindNullDeref.  So, we'll just do nothing.			} else {				bugReporter.logError("equals() used to compare non-object type(s) " +					lhsType_ + " and " + rhsType_ +					" in " +					SignatureConverter.convertMethodSignature(methodGen) +					" at " + location.getHandle());			}			return;		}		// For now, ignore the case where either reference is not		// of an object type.  (It could be either an array or null.)		if (!(lhsType_ instanceof ObjectType) || !(rhsType_ instanceof ObjectType))			return;		ObjectType lhsType = (ObjectType) lhsType_;		ObjectType rhsType = (ObjectType) rhsType_;		int priority = LOW_PRIORITY + 1;		// If neither object is a subtype of the other,		// make it medium priority		try {			if (!Hierarchy.isSubtype(lhsType, rhsType) && !Hierarchy.isSubtype(rhsType, lhsType))				priority = NORMAL_PRIORITY;		} catch (ClassNotFoundException e) {			bugReporter.reportMissingClass(e);			return;		}		if (priority <= LOW_PRIORITY) {			bugReporter.reportBug(new BugInstance("EC_UNRELATED_TYPES", priority)				.addClassAndMethod(methodGen, sourceFile)				.addSourceLine(methodGen, sourceFile, location.getHandle())				.addClass(lhsType.getClassName()).describe("CLASS_REFTYPE")				.addClass(rhsType.getClassName()).describe("CLASS_REFTYPE")			);		}	}