Description
PrepareRepositoryBrowserAction recursively calls itself if the user browses to a stem where the user only has the option to click on one stem. At Duke and Bristol, users may skip over 5 or more stems.
The solution is to 'cache' the results of Member.hasXXX calls in the request rather than recompute them.