#vulnerable code 
                             public boolean include(final BugInfo bugInfo) {
		if (includeCodes != null && !includeCodes.contains(bugInfo.getMessageCode())){
			return false;
		}
		if (data != null) {
			for (final Object item : data) {
				final JSONObject jsonObj = (JSONObject) item;
				if (jsonObj.containsKey("file")) {
					if (!bugInfo.getFilename().matches(jsonObj.get("file").toString())) {
						continue;
					}
				}
				if (jsonObj.containsKey("code")) {
					if (!bugInfo.getMessageCode().matches(jsonObj.get("code").toString())) {
						continue;
					}
				}
				if (jsonObj.containsKey("function")) {
					if (bugInfo.getFunction() == null
							|| !bugInfo.getFunction().matches(jsonObj.get("function").toString())) {
						continue;
					}
				}
				if (jsonObj.containsKey("variable")) {
					if (bugInfo.getVariable() == null
							|| !bugInfo.getFunction().matches(jsonObj.get("function").toString())) {
						continue;
					}
				}
				if (jsonObj.containsKey("line")) {
					if (bugInfo.getLine() > 0
							|| !new Integer(bugInfo.getLine()).toString().matches(jsonObj.get("line").toString())) {
						continue;
					}
				}
				if (jsonObj.containsKey("expression")) {
					if (bugInfo.getExpression() == null
							|| !bugInfo.getExpression().matches(jsonObj.get("expression").toString())) {
						continue;
					}
				}
				return false;
			}
		}
		return true;
	} 
                            #location 20 
                            #vulnerability type NULL_DEREFERENCE
#fixed code
                             public boolean include(final BugInfo bugInfo) {
		if (includeCodes != null && !includeCodes.contains(bugInfo.getMessageCode())){
			return false;
		}
		if (data != null) {
			for (final Object item : data) {
				final JSONObject jsonObj = (JSONObject) item;
				if (jsonObj.containsKey("file")) {
					if (!bugInfo.getFilename().matches(jsonObj.get("file").toString())) {
						continue;
					}else if (verbose){
						System.out.println("Exclude matched file " + bugInfo.getFilename());
					}
				}
				if (jsonObj.containsKey("code")) {
					if (!bugInfo.getMessageCode().matches(jsonObj.get("code").toString())) {
						continue;
					}else if (verbose){
						System.out.println("Exclude matched message code " + bugInfo.getMessageCode());
					}
				}
				if (jsonObj.containsKey("function")) {
					if (bugInfo.getFunction() == null
							|| !bugInfo.getFunction().matches(jsonObj.get("function").toString())) {
						continue;
					}else if (verbose){
						System.out.println("Exclude matched function name " + bugInfo.getFunction());
					}
				}
				if (jsonObj.containsKey("variable")) {
					if (bugInfo.getVariable() == null
							|| !bugInfo.getVariable().matches(jsonObj.get("variable").toString())) {
						continue;
					}else if (verbose){
						System.out.println("Exclude matched variable name " + bugInfo.getVariable());
					}
				}
				if (jsonObj.containsKey("line")) {
					if (bugInfo.getLine() > 0
							|| !new Integer(bugInfo.getLine()).toString().matches(jsonObj.get("line").toString())) {
						continue;
					}else if (verbose){
						System.out.println("Exclude matched line " + bugInfo.getLine());
					}
				}
				if (jsonObj.containsKey("expression")) {
					if (bugInfo.getExpression() == null
							|| !bugInfo.getExpression().matches(jsonObj.get("expression").toString())) {
						continue;
					}else if (verbose){
						System.out.println("Exclude matched expression " + bugInfo.getExpression());
					}
				}
				return false;
			}
		}
		return true;
	}