@Override
public void run() {
List changes = LogContext.execWithResult(LogLevel.INFO, () -> changesQuery.param("maxValue", maxValue).list());
if (!changes.isEmpty()) {
log.debug("Found {} changes", changes.size());
Object lastNotified = null;
try {
for (int i = 0; i < changes.size(); i++) {
Object entity = changes.get(i);
listener.onEntityChanged(dao, entity);
lastNotified = entity;
}
} catch (Throwable e) {
log.error("Error notify listener '{}': {}", listener.getClass(), e.getMessage(), e);
}
if (null != lastNotified) {
Object newMaxValue = EntityWrapper.wrap(dao.getOrmContext(), em, lastNotified).get(fm.getFieldName());
if (null != newMaxValue) {
log.debug("Set maxValue from {} to {}", maxValue, newMaxValue);
this.maxValue = newMaxValue;
}
}
}
}