Repository navigation
Fix batch dispatch of multiple attribute events to the same asset - #3477
Merged
Merged
Conversation
wborn
approved these changes
Oct 28, 2026
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Oct 28, 2026
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Oct 28, 2026
wborn
requested changes
Oct 28, 2026
Member
There was a problem hiding this comment.
Several newly added tests are failing @ebariaux. Can you have a look?
Failed tests:
- org.openremote.manager.rules.facade.AssetsFacadeTest > asset scope dispatches every event in order for a single event
- org.openremote.manager.rules.facade.AssetsFacadeTest > asset scope dispatches every event in order for distinct targets
- org.openremote.manager.rules.facade.AssetsFacadeTest > asset scope dispatches every event in order for mixed repeated and distinct targets
- org.openremote.manager.rules.facade.AssetsFacadeTest > asset scope dispatches every event in order for two events for one target
- org.openremote.manager.rules.facade.AssetsFacadeTest > asset scope rejects the whole batch for foreign-realm with repeated permitted targets: false
- org.openremote.manager.rules.facade.AssetsFacadeTest > asset scope rejects the whole batch for foreign-realm with repeated permitted targets: true
- org.openremote.manager.rules.facade.AssetsFacadeTest > asset scope rejects the whole batch for missing with repeated permitted targets: false
- org.openremote.manager.rules.facade.AssetsFacadeTest > asset scope rejects the whole batch for missing with repeated permitted targets: true
- org.openremote.manager.rules.facade.AssetsFacadeTest > asset scope rejects the whole batch for outside-subtree with repeated permitted targets: false
- org.openremote.manager.rules.facade.AssetsFacadeTest > asset scope rejects the whole batch for outside-subtree with repeated permitted targets: true
|
wborn
approved these changes
Oct 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Description
Fixes #3476.
AssetsFacade.dispatchrejected valid batches containing multiple attribute events for the same asset because it compared the event count with the number of matching assets. Validate distinct target asset IDs so these batches are accepted, while forwarding every original event in its supplied order.Retain the existing scope checks and reject the whole batch if the scoped lookup does not return every target. Unit tests cover repeated and distinct targets across global, realm and asset scopes, plus partial lookup results representing missing or out-of-scope targets. Enable the standard
manager/src/test/groovydirectory alongside the existing test directory.Validation:
./gradlew --offline --no-daemon :manager:test --tests org.openremote.manager.rules.facade.AssetsFacadeTest— 24 tests passed. The initial regression cases were confirmed failing before the fix.No breaking API changes; this restores valid batch dispatch behavior.
Checklist
Discovered during the rules facade scoping review tracked in #2675; this is a separate functional bug fix.