Skip to main content
Announcements
SYSTEM MAINTENANCE: Thurs., Sept. 19, 1 AM ET, Platform will be unavailable for approx. 60 minutes.
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Tmap null pointer exception using Mysql DB

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.

Labels (3)
1 Solution

Accepted Solutions
manodwhb
Champion II
Champion II

Use if else condition in tmap like.

Row1.emailid ==null? null:routine(row1.emailid)

View solution in original post

1 Reply
manodwhb
Champion II
Champion II

Use if else condition in tmap like.

Row1.emailid ==null? null:routine(row1.emailid)