Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
I have used a routine to get true or false status for a valid email address. I am taking input from a Mysql DB which has some NULL values for email_id column. I am taking 5 columns as input and adding one column for true/false value according to email_id. When routine encounters NULL, it throws the null pointer exception.
Below is error :
Exception in component tMap_1 (File_name)
java.lang.NullPointerException
at java.util.regex.Matcher.getTextLength(Matcher.java:1283)
at java.util.regex.Matcher.reset(Matcher.java:309)
at java.util.regex.Matcher.<init>(Matcher.java:229)
at java.util.regex.Pattern.matcher(Pattern.java:1093)
at routines.EmailValidation.isEmailValid(EmailValidation.java:28)
at talend_training.assignment_3_2_0_1.Assignment_3_2.tMysqlInput_1Process(File_name.java:1440)
at talend_training.assignment_3_2_0_1.Assignment_3_2.tMysqlConnection_1Process(File_name.java:573)
at talend_training.assignment_3_2_0_1.Assignment_3_2.tPrejob_1Process(File_name.java:420)
at talend_training.assignment_3_2_0_1.Assignment_3_2.runJobInTOS(File_name.java:1861)
at talend_training.assignment_3_2_0_1.Assignment_3_2.main(File_name.java:1712)
Routine is below:
package routines;
import java.util.regex.*;
public class EmailValidation {
private static String email = "";
public static boolean isEmailValid(String email) {
String regex = "^[\\w!#$%&'*+/=?`{|}~^-]+(?:\\.[\\w!#$%&'*+/=?`{|}~^-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(email);
return matcher.matches();
}}
Data Sample :
id,name,country,email,gender
1,'Shong','FR','songupdate@gmail.com','male'
4,'Marrey','UK',NULL,NULL
5,'Jems','UK',NULL,NULL
Help me in handling the null. it passes the first row and throws the error in second.