JavaClass jclass = classContext.getJavaClass();
final JavaClass jclass = classContext.getJavaClass();
	public void visitClassContext(ClassContext classContext) {		try {			JavaClass jclass = classContext.getJavaClass();			Method[] methodList = jclass.getMethods();			for (int i = 0; i < methodList.length; ++i) {				Method method = methodList[i];				MethodGen methodGen = classContext.getMethodGen(method);				if (methodGen == null)					continue;				// Prescreening - must have IF_ACMPEQ or IF_ACMPNE				BitSet bytecodeSet = classContext.getBytecodeSet(method);				if (!(bytecodeSet.get(Constants.IF_ACMPEQ) || bytecodeSet.get(Constants.IF_ACMPNE)))					continue;				if (DEBUG) System.out.println("FindRefComparison: analyzing " +					SignatureConverter.convertMethodSignature(methodGen));				final CFG cfg = classContext.getCFG(method);				final TypeDataflow typeDataflow = classContext.getTypeDataflow(method);				new LocationScanner(cfg).scan(new LocationScanner.Callback() {					public void visitLocation(Location location) {						InstructionHandle handle = location.getHandle();						Instruction ins = handle.getInstruction();						short opcode = ins.getOpcode();						if (opcode == Constants.IF_ACMPEQ || opcode == Constants.IF_ACMPNE) {							TypeFrame frame = typeDataflow.getFactAtLocation(location);							if (frame.getStackDepth() < 2)								throw new AnalysisException("Stack underflow at " + handle);							int numSlots = frame.getNumSlots();							Type op1 = frame.getValue(numSlots - 1);							Type op2 = frame.getValue(numSlots - 2);							if (op1 instanceof ObjectType && op2 instanceof ObjectType) {								ObjectType ot1 = (ObjectType) op1;								ObjectType ot2 = (ObjectType) op2;								if (ot1.getClassName().equals("java.lang.String") &&									ot2.getClassName().equals("java.lang.String")) {									System.out.println("String/String comparison!");									// TODO: report the bug								}							}						}					}				});			}		} catch (DataflowAnalysisException e) {			throw new AnalysisException("Exception in FindRefComparison: " + e.getMessage(), e);		} catch (CFGBuilderException e) {			throw new AnalysisException("Exception in FindRefComparison: " + e.getMessage(), e);		}	}