Issue Details (XML | Word | Printable)

Key: CONF-8185
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Matthew Jensen [Atlassian]
Reporter: Matthew Jensen [Atlassian]
Votes: 0
Watchers: 1
Operations

Add/Edit UI Mockup to this issue
If you were logged in you would be able to see more operations.
Confluence

Cached TinyMCE Servlet doesn't handle BaseURL Changes or Multi-homed environment

Created: 02/Apr/07 08:11 PM   Updated: 03/May/07 07:39 PM
Component/s: Editing
Affects Version/s: 2.4.3
Fix Version/s: 2.4.5

Time Tracking:
Not Specified

Issue Links:
Cloners
 

Participants: David Soul [Atlassian], Ivan Benko [Atlassian], Matthew Jensen [Atlassian], Micky Lee and Tom Davies [Atlassian]
Since last comment: 2 years, 11 weeks, 3 days ago
Resolution Date: 11/Apr/07 09:25 PM
Labels:


 Description  « Hide
Because the fix provided for CONF-8050 uses a baseURL, it doesn't handle changes to the baseURL property properly and doesn't work well in multi-homed environments.

Need to change it to use a relative URL or be smarter about how it calculates the base url.



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Matthew Jensen [Atlassian] added a comment - 02/Apr/07 08:14 PM
An enhancement to the fix provided by CONF-8050

Matthew Jensen [Atlassian] added a comment - 02/Apr/07 09:37 PM
The TinyMCE servlet is hit twice.

Firstly to get some javascript to redirect to the location of the tiny_mce source.
This first request constructs the correct url for the large (cachable) tiny mce java script.
This first request is being cached by the servlet and by user's browers.
Secondly to retrieve the large tiny mce java script source. This is the one that needs to be cached.

An update was put in place to flush the Servlet cache when the url changes. This should update the servlet cache if the base url changes (or a request comes in on a different host) but wont flush browser caches.

I plan to fix this by:

  • Update the servlet cache key to include the generated base url. This should save the time generating the javascript but should handle multi-homed environments.
  • Making the first request return cache control headers to force the browser to not cache this initial request.

Matthew Jensen [Atlassian] added a comment - 04/Apr/07 01:17 AM
The fix to this issue was:

1. The /includes/* path was included in the 'requestcache' filter's mapping. This filter will supply better information when the 'base url' of the script is being calculated. In most cases this will result in a relative url which will handle multihoming correctly.

2. The response to the first request includes cache-control headers set to must-revalidate. This should help propagate changes to the URL if it does change.

Fixed for 2.4.5


Tom Davies [Atlassian] added a comment - 10/Apr/07 10:55 PM
If you are experiencing this problem, make sure that your base URL is set correctly. If you need to change your base URL you must restart Confluence after changing it. You will also need to clear your browser cache.

If you access a single Confluence instance via two different host names you will need to clear your browser cache when you use a different hostname.


David Soul [Atlassian] added a comment - 11/Apr/07 01:56 AM
Symptoms for this bug are that the rich text page editor, wiki markup editor and preview tabs have an unusably small text box

Micky Lee added a comment - 11/Apr/07 02:38 AM
Hi all,

Would you check this Confluence Support Problem I requested https://support.atlassian.com/browse/CSP-8074 ?
It seems similar to this bug.

But the only different is that if I install a new fresh Confluence in my url setting, it works well.
Problems occurred only after I restore the data from 2.3.3 to 2.4.4.

Sincerely,
Micky


Ivan Benko [Atlassian] added a comment - 15/Apr/07 09:18 PM
CSP-8074 was resolved :
"After I install the Confluence 2.4.5, the problem is fixed and vanished. "