Permalink
Browse files

Accept attribute events with equal source timestamp

  • Loading branch information...
christianbauer committed Oct 11, 2017
1 parent 92c1853 commit 0738ec3f79c35e1b8bc3da6a5d28b5ba51a3b55d
@@ -234,8 +234,9 @@ public static Processor buildAssetState(TimerService timerService) {
Optional<AttributeEvent> lastStateEvent = attribute.getStateEvent();
// Check the last update timestamp of the attribute, ignoring any event that is older than last update
// TODO: This means we drop out-of-sequence events, we might need better at-least-once handling
lastStateEvent.map(Event::getTimestamp).filter(t -> t >= 0 && eventTime <= t).ifPresent(
// TODO This means we drop out-of-sequence events but accept events with the same source timestamp
// TODO Several attribute events can occur in the same millisecond, then order of application is undefined
lastStateEvent.map(Event::getTimestamp).filter(t -> t > 0 && eventTime <= t).ifPresent(
lastStateTime -> {
throw new AssetProcessingException(
Reason.EVENT_OUTDATED,

0 comments on commit 0738ec3

Please sign in to comment.