I am experiencing the following issue while running my tests. However, it only happens when I am using @DataProvider with a @Test that has invocation count greater than 1. I am not sure if the following link below is the same issue, because if I read correctly this issue has already been fixed in higher versions of the Eclipse TESTNG plugin 6.9.13.X (using this 6.9.14.201610261028).
Here is a simple code that is encountering the same problem:
@Test(dataProvider = "data", timeOut = 6000, threadPoolSize = 10, invocationCount = 5)
public final void x(String a,
String b, String c, String d,
String e, String f, String g){
System.out.println("D"
+ " - "
+ java.lang.Thread.currentThread().getId()
+ " - "
+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")
.format(new Date()));
}
Here is a sample output:
Thread - 1274 - 2016-10-28 08:47:23.889 PASSED: x("00336293615", "02/24/2016", "03/10/2016", "3", "0", "3", "11.57") Thread - 1275 - 2016-10-28 08:47:23.897 Thread - 1273 - 2016-10-28 08:47:23.898 java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(Unknown Source) at java.util.ArrayList$Itr.next(Unknown Source) at org.testng.reporters.TextReporter.logResults(TextReporter.java:80) at org.testng.reporters.TextReporter.onFinish(TextReporter.java:32) at org.testng.TestRunner.fireEvent(TestRunner.java:1239) at org.testng.TestRunner.afterRun(TestRunner.java:1030) at org.testng.TestRunner.run(TestRunner.java:636) at org.testng.SuiteRunner.runTest(SuiteRunner.java:366) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319) at org.testng.SuiteRunner.run(SuiteRunner.java:268) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244) at org.testng.TestNG.runSuitesLocally(TestNG.java:1169) at org.testng.TestNG.run(TestNG.java:1064) at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132) at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:236) at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:81)
Sometimes it will also throw the following exceprions:
java.lang.NullPointerException at java.io.Writer.(Unknown Source) at java.io.OutputStreamWriter.(Unknown Source) at org.testng.remote.strprotocol.JsonMessageSender.sendMessage(JsonMessageSender.java:37) at org.testng.remote.strprotocol.MessageHub.sendMessage(MessageHub.java:43) at org.testng.remote.strprotocol.RemoteTestListener1.onTestSuccess(RemoteTestListener1.java:88) at org.testng.internal.Invoker.runTestListeners(Invoker.java:1695) at org.testng.internal.Invoker.runTestListeners(Invoker.java:1675) at org.testng.internal.Invoker.invokeMethod(Invoker.java:700) at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:820) at org.testng.internal.TestMethodWithDataProviderMethodWorker.call(TestMethodWithDataProviderMethodWorker.java:75) at org.testng.internal.TestMethodWithDataProviderMethodWorker.call(TestMethodWithDataProviderMethodWorker.java:14) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) java.lang.IllegalStateException: Trying to send a message on a shutdown sender at org.testng.remote.strprotocol.JsonMessageSender.sendMessage(JsonMessageSender.java:31) at org.testng.remote.strprotocol.MessageHub.sendMessage(MessageHub.java:43) at org.testng.remote.strprotocol.RemoteTestListener1.onTestStart(RemoteTestListener1.java:49) at org.testng.internal.Invoker.runTestListeners(Invoker.java:1700) at org.testng.internal.Invoker.runTestListeners(Invoker.java:1675) at org.testng.internal.Invoker.invokeMethod(Invoker.java:619) at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:820) at org.testng.internal.TestMethodWithDataProviderMethodWorker.call(TestMethodWithDataProviderMethodWorker.java:75) at org.testng.internal.TestMethodWithDataProviderMethodWorker.call(TestMethodWithDataProviderMethodWorker.java:14) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
Please tell me if you guys need more information.
Thanks!!!