Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Posting on Qlik Community is temporarily paused for some users. Thank you for patience and we'll update you soon!
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)