diff --git a/bindings/java/src/org/hyperic/sigar/win32/EventLogThread.java b/bindings/java/src/org/hyperic/sigar/win32/EventLogThread.java index d0849b45..6b8b9b37 100644 --- a/bindings/java/src/org/hyperic/sigar/win32/EventLogThread.java +++ b/bindings/java/src/org/hyperic/sigar/win32/EventLogThread.java @@ -158,7 +158,18 @@ public class EventLogThread implements Runnable { // cleaner way to go, but we cannot interrupt // a native system call. 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 (curEvent == -1) { + curEvent = 0; //log was cleared + } handleEvents(log, curEvent, lastEvent); }