[MDSAL-96] Using "merge" method update data can't get datachange. Created: 28/Jul/15  Updated: 09/Mar/18  Resolved: 23/Feb/18

Status: Resolved
Project: mdsal
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Leo Cat Assignee: Unassigned
Resolution: Won't Do Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 4059

 Description   

Yang model like this:
grouping c-struct {
leaf lf

{ type string; }

}

container test-cs {
container test-c1

{ uses c-struct; }
}

rpc mergeC1 {
input { uses c-struct; }

}

rpc putC1 {
input

{ uses c-struct; }

}
------------------------------------------------------------------------------------
Register test-c1's changes, scope is BASE.

when use tx.put(store, path, t, createMissingParents), data change listener can get data chage event, otherwise use tx.merge(store, path, t, createMissingParents) can't. Test-c1's value in datastore are both changed using two method.



 Comments   
Comment by Leo Cat [ 30/Jul/15 ]

The reson is in Lithium, uses merge method to modify test-c1, test-c1.getModificationType() returns SUBTREE_MODIFIED. So the program continues to resolve test-c1's child lf. But lf has no listener, therfore can't get notification.
In Helium-SR3 instead, test-c1.getModificationType() returns MERGE.

Comment by Robert Varga [ 23/Feb/18 ]

DataChangeListeners have unfixable issues translating scope and are going away.

Generated at Wed Feb 07 20:08:38 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.