if (exitFrame.getStatus() == ResourceValueFrame.OPEN) { bugReporter.reportBug(new BugInstance("OS_OPEN_STREAM", NORMAL_PRIORITY)
int exitStatus = exitFrame.getStatus(); if (exitStatus == ResourceValueFrame.OPEN || exitStatus == ResourceValueFrame.OPEN_ON_EXCEPTION_PATH) { String bugType; int priority; if (exitStatus == ResourceValueFrame.OPEN) { bugType = "OS_OPEN_STREAM"; priority = NORMAL_PRIORITY; } else { bugType = "OS_OPEN_STREAM_EXCEPTION_PATH"; priority = LOW_PRIORITY; }  bugReporter.reportBug(new BugInstance(bugType, priority)
	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];				if (method.isAbstract() || method.isNative())					continue;				BitSet bytecodeSet = classContext.getBytecodeSet(method);				if (!bytecodeSet.get(Constants.NEW))					continue; // no streams created in this method				MethodGen methodGen = classContext.getMethodGen(method);				CFG cfg = classContext.getCFG(method);				Iterator<BasicBlock> bbIter = cfg.blockIterator();				while (bbIter.hasNext()) {					BasicBlock basicBlock = bbIter.next();					Iterator<InstructionHandle> insIter = basicBlock.instructionIterator();					while (insIter.hasNext()) {						InstructionHandle handle = insIter.next();						Stream stream = resourceTracker.isResourceCreation(basicBlock, handle, methodGen.getConstantPool());						if (stream != null) {							ResourceValueAnalysis<Stream> analysis = new ResourceValueAnalysis<Stream>(methodGen, resourceTracker, stream);							Dataflow<ResourceValueFrame> dataflow = new Dataflow<ResourceValueFrame>(cfg, analysis);							dataflow.execute();							ResourceValueFrame exitFrame = dataflow.getResultFact(cfg.getExit());							if (exitFrame.getStatus() == ResourceValueFrame.OPEN) {								bugReporter.reportBug(new BugInstance("OS_OPEN_STREAM", NORMAL_PRIORITY)									.addClassAndMethod(methodGen)									.addSourceLine(methodGen, stream.creationPoint.getHandle())								);							}						}					}				}			}		} catch (DataflowAnalysisException e) {			throw new AnalysisException("FindOpenStream caught exception: " + e.toString(), e);		} catch (CFGBuilderException e) {			throw new AnalysisException(e.getMessage());		}	}