Details
-
Bug
-
Resolution: Fixed
-
High
-
3.7
-
3.07
-
Description
In JIRA 3.7 some javascript functionality will not work in WebLogic and Orion because these App servers apply the servlet filters to normal requests and request forwards. The filter that can cause trouble when applied to request forwards is ProfilingAndErrorFilter.
The problem is that the filter is trying to do too much.
The "profiling" part of the filter enables profiling stack if profiling is enabled.
The "error" part sets up and clears a various thread locals.
In JIRA 3.7 we use the thread locals to record what javascript files to serve in the request. However if there is a request forward during the request the thread local is cleared and the knowledge of which javascript files must be served is lost.
The thread local code needs to be taken out into a separate filter which is mapped to all URLS /*. The error filter needs to record a flag in the request object to record if it has been applied to the request already and if so do not do any work. We already use this approach in com.atlassian.jira.web.filters.gzip.GzipFilter