Reputation: 540
Does anybody know, why such ant task:
public void execute() {
Timer timer = new Timer();
TimerTask action = new TimerTask() {
@SuppressWarnings("ResultOfMethodCallIgnored")
public void run() {
String urlsForCheckPath = arachniBinPath + "urls.txt";
List<String> urlsForCheck;
try {
urlsForCheck = FileUtils.readLines(new File(urlsForCheckPath));
if (urlsForCheck != null) {
for (String urlForCheck : urlsForCheck) {
new File(arachniLogPath).delete();
clearTemporary(urlForCheck);//if something remains after exceptions
logger.info(urlForCheck + " previous log and possibly remaining temporary files deleted.");
checkURL(urlForCheck);
urlForCheck = urlForCheck.replace("/", "-");
convertAndSend(urlForCheck);
clearTemporary(urlForCheck);
logger.info(urlForCheck + " temporary files deleted.");
}
}
} catch (Exception e) {
log(e);
}
}
};
timer.schedule(action, delayBeforeStart);
}
goes normal in the main method, but stops after
logger.info(urlForCheck + " previous log and possibly remaining temporary files deleted.");
without exceptions during execution via ant? How it can be fixed?
Upvotes: 1
Views: 62
Reputation: 585
I think you should read this answer. Java: Wait for TimerTask to complete before continuing execution
Small example:
protected final Timer timer = new Timer();
public void execute() {
CountDownLatch latch = new CountDownLatch(1);
timer.schedule(new TimerTask() {
public void run() {
}
}, delayBeforeStart);
try {
latch.await();
} catch (InterruptedException e) {
log(e);
}
timer.cancel();
}
Upvotes: 1