Brendiem / ala-citizenscience

Automatically exported from code.google.com/p/ala-citizenscience
0 stars 1 forks source link

URLs specifying portals will result in RequestContext being prematurely cleared. #321

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Hit any page with a /portal/X prefix, where X is your desired portal number.

What is the expected output? What do you see instead?
You won't see anything noteworthy unless you add some debug in 
Interceptor.afterCompletion()

The following is a result of some logging I put into Interceptor.java and 
RequestContext.java:
The print out shows what part of the interceptor we are up to, the url, the 
query string, and the thread ID.

<code>
pre handle for : /BDRS/portal/2/files/download.htm : 
className=au.com.gaiaresources.bdrs.model.theme.Theme&id=2&fileName=processed/jq
ueryUiTheme/jquery-ui-1.8.16.custom.css : 84

pre handle for : /BDRS/files/download.htm : 
className=au.com.gaiaresources.bdrs.model.theme.Theme&id=2&fileName=processed/jq
ueryUiTheme/jquery-ui-1.8.16.custom.css : 84

Attempting to close taxon lib sesh : /BDRS/files/download.htm : 
className=au.com.gaiaresources.bdrs.model.theme.Theme&id=2&fileName=processed/jq
ueryUiTheme/jquery-ui-1.8.16.custom.css : 84

clear request context holder : /BDRS/files/download.htm : 
className=au.com.gaiaresources.bdrs.model.theme.Theme&id=2&fileName=processed/jq
ueryUiTheme/jquery-ui-1.8.16.custom.css : 84

Attempting to close taxon lib sesh : /BDRS/portal/2/files/download.htm : 
className=au.com.gaiaresources.bdrs.model.theme.Theme&id=2&fileName=processed/jq
ueryUiTheme/jquery-ui-1.8.16.custom.css : 84

taxon lib sesh factory is null : 84
</code>

The steps are:
1. Request (request#1) with portal prefix comes in.
2. Request (request#2) is stripped of portal prefix and current portal is set 
in the request context, new request is fired off somehow (I assume a redirect 
view)
3. Request#2 gets processed first, it does all of the required work and returns 
as normal. In the Interceptor.afterCompletion(), RequestContext.clear() is 
called, clearing the request context for the current thread.
4. Immediately after Request#1 runs Interceptor.afterCompletion() and has an 
empty RequestContext object.

Original issue reported on code.google.com by aaron.lo...@gmail.com on 26 Jul 2012 at 5:55