I am running parallel tests using TestNg and I would like to stop/kill a thread at certain points in my script. There are many layers to this script so simply throwing exceptions all the way back to main() is not the best route in my case.
thread.stop()
is working for me but it is deprecated so I would rather not use it and thread.interrupt() is not working for me because I would have to check in so many different places if the thread was interrupted. Here is a short, madeup example of what I mean:
driverexec.navigateTo("http://www.google.com");
xpath= "//input[@name='q111']";
driverexec.typeByXpath("type search", xpath, "gorillas");
System.out.println("gojng again");
xpath= "//input[@name='btnK']";
driverexec.clickByXpath("search google", xpath);
Now, each driverexec
function could potentially fail, and I have a failure function set up for that. So basically every time my failure()
function gets called, I would like to stop
the current thread.
All of the example of seen if interrupt would cause me to have to place the line:
if (thread.interrupted()){
}
after every function call OR inside of my failure function. But even if I put it in my failure function, this just sets the flag. How can I actually STOP it?