Hello !
• Trying to upgrade from Java SDK 0.5.0 to 0.9.7 here, and i seem to encounter an undocumented breaking behavior, but i really hope i'm wrong.
• I notice that when doing
gb.isOn("myFeature")
multiple times on the same gb instance can result in
non-deterministic result.
• I was getting
true
variation at the first isOn(), and
false
for the subsequent isOn()s.
• I notice this
INFO: evaluateFeature: circular dependency detected: myFeature -> myFeature. { from: myFeature, to: myFeature }
• Per my understanding from 0.5.0 is that when calling isOn() multiple times
◦ The first call will trigger allocation + trigger callback with the experiment result
◦ The subsequent calls will not trigger allocation, and will just return the previous result, seems like it's cached + not triggering callback
◦ Thus the result is always deterministic, first call returns true, then subsequent calls will also return true
• Further checking i notice this new code that checks that if it's been evaluated before, it will return null, which translates to false for isOn(). And it says something about blocking recursion and prerequisite that i'm not using. Seems to be a new addition since
0.9.3
• Is this behavior expected since 0.9.3 ? Is there anything i'm missing to avoid this circular dependency issue ?