-
Bug
-
Resolution: Fixed
-
Low
-
No-Version
-
None
-
Severity 3 - Minor
-
Issue Summary
ActionContext instance is retrieved and then cached upon first method call of an ActionContextCompatManager instance. This is problematic as the ActionContext instance should be unique per thread and thus request. It is cached per instance of ActionContextCompatManager.
Affected version: confluence-compat-lib 1.5.3
Steps to Reproduce
- Construct an ActionContextCompatManager instance.
- Call instance method put("key", "someValue")
- Call instance method get("key") on a different thread/request
Expected Results
Returns null
Actual Results
Returns "someValue"
Workaround
Given the ActionContext is cached per instance of ActionContextCompatManager, constructing a new ActionContextCompatManager per request is a potential workaround.
- links to
- mentioned in
[CONFSERVER-81828] ActionContext instance cached on first call of method per instance of ActionContextCompatManager
QA Demo Status | Original: Not Done [ 14330 ] | New: Not Needed [ 14332 ] |
Resolution | New: Fixed [ 1 ] | |
Status | Original: In Review [ 10051 ] | New: Closed [ 6 ] |
Remote Link | New: This issue links to "Page (Atlassian Documentation)" [ 723360 ] |
Description |
Original:
h3. Issue Summary
In the case of Confluence 8+/Struts, the ActionContext instance is retrieved and then cached upon first method call of an ActionContextCompatManager instance. This is problematic as the ActionContext instance should be unique per thread and thus request. It is cached per instance of ActionContextCompatManager. Affected version: confluence-compat-lib 1.5.3 h3. Steps to Reproduce # Construct an ActionContextCompatManager instance. # Call instance method put("key", "someValue") # Call instance method get("key") on a different thread/request h3. Expected Results Returns null h3. Actual Results Returns "someValue" h3. Workaround Given the ActionContext is cached per instance of ActionContextCompatManager, constructing a new ActionContextCompatManager per request is a potential workaround. |
New:
h3. Issue Summary
ActionContext instance is retrieved and then cached upon first method call of an ActionContextCompatManager instance. This is problematic as the ActionContext instance should be unique per thread and thus request. It is cached per instance of ActionContextCompatManager. Affected version: confluence-compat-lib 1.5.3 h3. Steps to Reproduce # Construct an ActionContextCompatManager instance. # Call instance method put("key", "someValue") # Call instance method get("key") on a different thread/request h3. Expected Results Returns null h3. Actual Results Returns "someValue" h3. Workaround Given the ActionContext is cached per instance of ActionContextCompatManager, constructing a new ActionContextCompatManager per request is a potential workaround. |
Description |
Original:
h3. Issue Summary
In the case of Confluence 8.0/Struts, the ActionContext instance is retrieved and then cached upon first method call of an ActionContextCompatManager instance. This is problematic as the ActionContext instance should be unique per thread and thus request. It is cached per instance of ActionContextCompatManager. Affected version: confluence-compat-lib 1.5.3 h3. Steps to Reproduce # Construct an ActionContextCompatManager instance. # Call instance method put("key", "someValue") # Call instance method get("key") on a different thread/request h3. Expected Results Returns null h3. Actual Results Returns "someValue" h3. Workaround Given the ActionContext is cached per instance of ActionContextCompatManager, constructing a new ActionContextCompatManager per request is a potential workaround. |
New:
h3. Issue Summary
In the case of Confluence 8+/Struts, the ActionContext instance is retrieved and then cached upon first method call of an ActionContextCompatManager instance. This is problematic as the ActionContext instance should be unique per thread and thus request. It is cached per instance of ActionContextCompatManager. Affected version: confluence-compat-lib 1.5.3 h3. Steps to Reproduce # Construct an ActionContextCompatManager instance. # Call instance method put("key", "someValue") # Call instance method get("key") on a different thread/request h3. Expected Results Returns null h3. Actual Results Returns "someValue" h3. Workaround Given the ActionContext is cached per instance of ActionContextCompatManager, constructing a new ActionContextCompatManager per request is a potential workaround. |
Description |
Original:
h3. Issue Summary
The ActionContext instance is retrieved and then cached upon first method call of an ActionContextCompatManager instance. This is problematic as the ActionContext instance should be unique per thread and thus request. It is cached per instance of ActionContextCompatManager. Affected version: confluence-compat-lib 1.5.3 h3. Steps to Reproduce # Construct an ActionContextCompatManager instance. # Call instance method put("key", "someValue") # Call instance method get("key") on a different thread/request h3. Expected Results Returns null h3. Actual Results Returns "someValue" h3. Workaround Given the ActionContext is cached per instance of ActionContextCompatManager, constructing a new ActionContextCompatManager per request is a potential workaround. |
New:
h3. Issue Summary
In the case of Confluence 8.0/Struts, the ActionContext instance is retrieved and then cached upon first method call of an ActionContextCompatManager instance. This is problematic as the ActionContext instance should be unique per thread and thus request. It is cached per instance of ActionContextCompatManager. Affected version: confluence-compat-lib 1.5.3 h3. Steps to Reproduce # Construct an ActionContextCompatManager instance. # Call instance method put("key", "someValue") # Call instance method get("key") on a different thread/request h3. Expected Results Returns null h3. Actual Results Returns "someValue" h3. Workaround Given the ActionContext is cached per instance of ActionContextCompatManager, constructing a new ActionContextCompatManager per request is a potential workaround. |
Description |
Original:
h3. Issue Summary
The ActionContext instance is retrieved and then cached upon first method call of an ActionContextCompatManager instance. This is problematic as the ActionContext instance should be unique per thread and thus request. It is cached per instance of ActionContextCompatManager. Affected version: confluence-compat-lib 1.5.3 h3. Steps to Reproduce # Construct an ActionContextCompatManager instance. # Call an instance method such as getContextMap() and add a value # Call the same instance method on a different thread/request h3. Expected Results Returns a different map instance h3. Actual Results Returns the same map instance h3. Workaround Given the ActionContext is cached per instance of ActionContextCompatManager, constructing a new ActionContextCompatManager per request is a potential workaround. |
New:
h3. Issue Summary
The ActionContext instance is retrieved and then cached upon first method call of an ActionContextCompatManager instance. This is problematic as the ActionContext instance should be unique per thread and thus request. It is cached per instance of ActionContextCompatManager. Affected version: confluence-compat-lib 1.5.3 h3. Steps to Reproduce # Construct an ActionContextCompatManager instance. # Call instance method put("key", "someValue") # Call instance method get("key") on a different thread/request h3. Expected Results Returns null h3. Actual Results Returns "someValue" h3. Workaround Given the ActionContext is cached per instance of ActionContextCompatManager, constructing a new ActionContextCompatManager per request is a potential workaround. |
Fix Version/s | New: No-Version [ 66670 ] | |
QA Kickoff Status | Original: Not Done [ 14234 ] | New: Not Needed [ 14236 ] |
Testing Notes | New: Unit test coverage added and manually tested in product | |
Status | Original: In Progress [ 3 ] | New: In Review [ 10051 ] |
Remote Link | New: This issue links to "Pull request: confluence-compat-lib#13 (Web Link)" [ 723425 ] |
Remote Link |
New:
This issue links to "Confluence Bundled Libraries › Confluence Compatibility Library › issue- |
We have released version 1.5.4 of confluence-compat-lib which contains the fix.