(SIGAR-217) win32.EventLogThread needs to re-open EventLog if it has been cleared

This commit is contained in:
Doug MacEachern 2010-05-19 11:36:31 -07:00
parent e43244a6e9
commit ef5317a2da
1 changed files with 11 additions and 0 deletions

View File

@ -158,7 +158,18 @@ public class EventLogThread implements Runnable {
// cleaner way to go, but we cannot interrupt // cleaner way to go, but we cannot interrupt
// a native system call. // a native system call.
int lastEvent = log.getNewestRecord(); int lastEvent = log.getNewestRecord();
if (lastEvent < curEvent) {
logger.debug(this.logName + " EventLog has changed, re-opening");
try { log.close(); } catch (Win32Exception e) {}
log.open(this.logName);
curEvent = log.getOldestRecord();
lastEvent = log.getNewestRecord();
}
if (lastEvent > curEvent) { if (lastEvent > curEvent) {
if (curEvent == -1) {
curEvent = 0; //log was cleared
}
handleEvents(log, curEvent, lastEvent); handleEvents(log, curEvent, lastEvent);
} }