After merging two data providers, getting null pointer exception-Need help to solve this issue

83 views
Skip to first unread message

Aksh K

unread,
Jun 25, 2021, 12:49:16 AM6/25/21
to testng-users
Created two data provider methods, Merged those. But getting null pointer exception

@DataProvider
public  Object[][] getStep1TestData()
{
    Object data1[][]= TestUtil.getTestData(sheet1);
return data1;
}

@DataProvider
public  Object[][] getStep2TestData()
{
    Object data2[][]= TestUtil.getTestData(sheet2);//----------Getting null pointer exception
return data2;
}
@DataProvider
public Object[][] mergeData()
{
  List<Object[]> result = Lists.newArrayList();
  result.addAll(Arrays.asList(getStep1TestData()));
  result.addAll(Arrays.asList(getStep2TestData())); //----------Getting null pointer exception
  return result.toArray(new Object[result.size()][]);
}
@Test(dataProvider="mergeData") public void validateStep2Page(String customer, String customertype, String iscontractsigned, String productname,String productamount,String locationname, String address1,String address2,String city, String state, String postalcode, String county, String country, String daysofservices, String servicebranchcode, String csvbranchcode, String product, String quantity, String changeorder) throws Exception 
 {
 salescreatecontractstep1Page.Selectcustomer(customer, customertype, iscontractsigned, productname, productamount); 
 salescreatecontractstep2Page.addlocation(locationname, address1, address2, city, state, postalcode, county, country, daysofservices, servicebranchcode, csvbranchcode, product, quantity, changeorder);
 }
-----------------------------------------------------------------------------------------------------------------------
Getting nullpointer exception:

[Utils] [ERROR] [Error] java.lang.NullPointerException
at com.brinksecommerce.qa.util.TestUtil.getTestData(TestUtil.java:61)
at com.brinksecommerce.qa.testcases.SalesCreateContractStep2PageTest.getStep2TestData(SalesCreateContractStep2PageTest.java:60)
at com.brinksecommerce.qa.testcases.SalesCreateContractStep2PageTest.mergeData(SalesCreateContractStep2PageTest.java:70)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:74)
at org.testng.internal.MethodInvocationHelper.invokeMethodNoCheckedException(MethodInvocationHelper.java:45)
at org.testng.internal.MethodInvocationHelper.invokeDataProvider(MethodInvocationHelper.java:131)
at org.testng.internal.Parameters.handleParameters(Parameters.java:706)
at org.testng.internal.ParameterHandler.handleParameters(ParameterHandler.java:49)
at org.testng.internal.ParameterHandler.createParameters(ParameterHandler.java:37)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:923)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
at org.testng.TestRunner.privateRun(TestRunner.java:648)
at org.testng.TestRunner.run(TestRunner.java:505)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
at org.testng.SuiteRunner.run(SuiteRunner.java:364)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
at org.testng.TestNG.runSuites(TestNG.java:1049)
at org.testng.TestNG.run(TestNG.java:1017)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

SKIPPED: validateStep2Page
java.lang.RuntimeException: java.lang.NullPointerException
at org.testng.internal.MethodInvocationHelper.invokeMethodNoCheckedException(MethodInvocationHelper.java:49)
at org.testng.internal.MethodInvocationHelper.invokeDataProvider(MethodInvocationHelper.java:131)
at org.testng.internal.Parameters.handleParameters(Parameters.java:706)
at org.testng.internal.ParameterHandler.handleParameters(ParameterHandler.java:49)
at org.testng.internal.ParameterHandler.createParameters(ParameterHandler.java:37)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:923)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
at org.testng.TestRunner.privateRun(TestRunner.java:648)
at org.testng.TestRunner.run(TestRunner.java:505)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
at org.testng.SuiteRunner.run(SuiteRunner.java:364)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
at org.testng.TestNG.runSuites(TestNG.java:1049)
at org.testng.TestNG.run(TestNG.java:1017)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
Caused by: java.lang.NullPointerException
at com.brinksecommerce.qa.util.TestUtil.getTestData(TestUtil.java:61)
at com.brinksecommerce.qa.testcases.SalesCreateContractStep2PageTest.getStep2TestData(SalesCreateContractStep2PageTest.java:60)
at com.brinksecommerce.qa.testcases.SalesCreateContractStep2PageTest.mergeData(SalesCreateContractStep2PageTest.java:70)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:74)
at org.testng.internal.MethodInvocationHelper.invokeMethodNoCheckedException(MethodInvocationHelper.java:45)
... 22 more

⇜Krishnan Mahadevan⇝

unread,
Jun 25, 2021, 1:49:25 AM6/25/21
to testng-users
There's nothing wrong with TestNG here. The NPE is arising out of your test code. Have you tried setting up debug points to figure out what is the null value that is triggering this ?

Thanks & Regards
Krishnan Mahadevan

"All the desirable things in life are either illegal, expensive, fattening or in love with someone else!"
My Scribblings @ http://wakened-cognition.blogspot.com/
My Technical Scribblings @ https://rationaleemotions.com/


--
You received this message because you are subscribed to the Google Groups "testng-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to testng-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/testng-users/90ce0ac4-000e-44fa-97b4-509520939f5fn%40googlegroups.com.

Aksh K

unread,
Jun 25, 2021, 10:06:39 AM6/25/21
to testng...@googlegroups.com
Hi Krishnan, I have attached utility file which i'm running to get data from Excel. For the first data provider (getStep1TestData()) it doesn't throw any NPE but it throws NPE for Second data provider (getStep2TestData()) and merged data provider(mergeData()). Please need your help in this as I'm blocked here

Below is the code for getting data from Excel. I have written this code in class TestUtil

public static Object[][] getTestData(String sheetName) {
FileInputStream file = null;
try {
file = new FileInputStream(TESTDATA_SHEET_PATH);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try
{
book = WorkbookFactory.create(file);
}
catch (InvalidFormatException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
sheet = book.getSheet(sheetName);
Object[][] data = new Object[sheet.getLastRowNum()][sheet.getRow(0).getLastCellNum()];
//System.out.println(sheet.getLastRowNum() + "--------" +
//sheet.getRow(0).getLastCellNum());
for (int i = 0; i < sheet.getLastRowNum(); i++)
{
for (int k = 0; k < sheet.getRow(0).getLastCellNum(); k++)
{
data[i][k] = sheet.getRow(i + 1).getCell(k).toString();---------------------------------------------------------------------------// Getting NPE for this line, data provider  getStep2TestData() in the line  {Object data2[][]= TestUtil.getTestData(sheet2);}   and merged data    provider   mergeData() in the line  {result.addAll(Arrays.asList(getStep2TestData()));}

}
}
return data;
}

⇜Krishnan Mahadevan⇝

unread,
Jun 25, 2021, 10:08:37 AM6/25/21
to testng-users
Can you please help post a trimmed down version of your code as a project on github and share the link ?
That way its easier to just clone it and run it to simulate the problem.

Note: Please dont push in the entire codebase. Just a simple project which can be used to reproduce the problem.

Thanks & Regards
Krishnan Mahadevan

"All the desirable things in life are either illegal, expensive, fattening or in love with someone else!"
My Scribblings @ http://wakened-cognition.blogspot.com/
My Technical Scribblings @ https://rationaleemotions.com/

Reply all
Reply to author
Forward
0 new messages