#vulnerable code 
                             public boolean validate(UserPersonalInfo info) {
		
		validator.validate(info);
		
		if(validator.hasErrors()){
			return false;
		}
		
		if (info.getUser() == null) {
		    validator.add(new ValidationMessage("user.errors.wrong", "error"));
		}
		
		if(!info.getUser().getEmail().equals(info.getEmail())){
			emailValidator.validate(info.getEmail());
		}
		
		if(info.getBirthDate().getYear() > DateTime.now().getYear()-12){
			validator.add(new ValidationMessage("user.errors.invalid_birth_date.min_age", "error"));
		}
		
		if(!info.getUser().getName().equals(info.getName())){
			DateTime nameLastTouchedAt = info.getUser().getNameLastTouchedAt();
			if(nameLastTouchedAt.isAfter(new DateTime().minusDays(30))){
				validator.add(new ValidationMessage("user.errors.name.min_time", "error", nameLastTouchedAt.plusDays(30).toString()));
			}
		}
		
		return !validator.hasErrors();
	} 
                            #location 13 
                            #vulnerability type NULL_DEREFERENCE
#fixed code
                             public boolean validate(UserPersonalInfo info) {
		
		validator.validate(info);
		
		if(validator.hasErrors()){
			return false;
		}
		
		if (info.getUser() == null) {
		    validator.add(new ValidationMessage("user.errors.wrong", "error"));
		}
		
		if (!info.getUser().getEmail().equals(info.getEmail())){
			emailValidator.validate(info.getEmail());
		}
		
		if (info.getBirthDate() != null && info.getBirthDate().getYear() > DateTime.now().getYear()-12){
			validator.add(new ValidationMessage("user.errors.invalid_birth_date.min_age", "error"));
		}
	
		if(!info.getUser().getName().equals(info.getName())){
			DateTime nameLastTouchedAt = info.getUser().getNameLastTouchedAt();
			if(nameLastTouchedAt.isAfter(new DateTime().minusDays(30))){
				validator.add(new ValidationMessage("user.errors.name.min_time", "error", nameLastTouchedAt.plusDays(30).toString()));
			}
		}
		
		return !validator.hasErrors();
	}