throw new AnalysisException("BCPDoubleCheck caught exception", e);
getBugReporter().logError(getDetectorName() + " caught exception", e);
	public void visitClassContext(ClassContext classContext) {		try {			ByteCodePattern pattern = getPattern();			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;				if (METHOD != null && !method.getName().equals(METHOD))					continue;				if (DEBUG) {					System.out.print("=====================================================================\n" +					        "Method " + jclass.getClassName() + "." + method.getName() + "\n" +					        "=====================================================================\n");				}				if (!prescreen(method, classContext))					continue;				MethodGen methodGen = classContext.getMethodGen(method);				if (methodGen == null)					continue;				PatternMatcher matcher = new PatternMatcher(pattern, classContext, method);				matcher.execute();				Iterator<ByteCodePatternMatch> j = matcher.byteCodePatternMatchIterator();				while (j.hasNext()) {					ByteCodePatternMatch match = j.next();					if (DEBUG) {						System.out.println("Pattern match:");						Iterator<PatternElementMatch> pemIter = match.patternElementMatchIterator();						while (pemIter.hasNext()) {							PatternElementMatch pem = pemIter.next();							System.out.println("\t" + pem.toString());						}					}					reportMatch(classContext, method, match);				}			}		} catch (DataflowAnalysisException e) {			throw new AnalysisException("BCPDoubleCheck caught exception", e);		} catch (CFGBuilderException e) {			throw new AnalysisException(e.getMessage());		}	}