We've bumped into an issue on 8.1.26 related to bindings on non-persistent members of property objects...
We've seen this in a bunch of situations, some not related to sub-views, but my minimal example below happens to be using one.
The parameter properties to the sub-view look like this:
And the binding on the name
property looks like this
What we're finding is that if we do a bunch of stuff that triggers too many changes of session.custom properties in quick succession (but specifically doesn't change any part of dbUserInfo
), then that sub-view parameter binding pictured above gets bumped to None
:
Yeah, I know that "a bunch of stuff" is not the best description. I'm trying to narrow that down, but it's apparently random if it does or doesn't occur and I can't nail it down yet.
The confusing part is that if I make the params.feature.name
property persistent, then the issue goes away.
The consistent feature of every place we've seen something like this is that it includes a persistent property object with non-persistent members with bindings. Once that setup exists, it seems like some sort of loophole exists that can cause the parent object to be re-created without the sub-member existing, and once in that state it will never come back.
We have a workaround, but we (unfortunately) have quite a few places that use non-persistent bindings on object sub-members since we didn't realize this was an issue for quite a while.
I'm bringing this up on the forum since I have a gut feeling that this is not the intended behavior and wanted to get some attention on it.
EDIT TO AMEND:
I added a transform script on the binding that just does system.util.getLogger("FOO").warn(unicode(value))
and I can see that within a couple seconds after it breaks it does get re-evaluated and is logging the right value, but it doesn't fix the display to the user...