Do not automatically recursively search PL when full path is provided
Created by: aarograh
There have been instances of the wrong parameter being fetched when a full path was provided to the correct parameter, specifically due to the fact that the has
method returned true when it should not have. This issue covers efforts to address this.
Two changes are suggested:
- Add an optional
recursive
argument tohas
andget
functions. If set to true, then the current recursive search will be performed. Otherwise, only the exactly specified path will be searched - Modify the
has
andget
functions to use this recursive argument. By default, if at least one->
is present in the parameter name, a recursive search should NOT be done. If a single parameter name is provided with no path (i.e., no->
), then a recursive search will occur by default. However, the optional argument will be exposed for the client code to override these default behaviors in either case.
This will eliminate some unpredictable behavior that has been problematic for client-side code. Additionally, it is expected that eliminating the recursive searches could have non-trivial performance improvements as well.