[
https://issues.apache.org/jira/browse/ATLAS-1014?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Madhan Neethiraj resolved ATLAS-1014.
-------------------------------------
Resolution: Done
> Unnecessary locking and double checked locking for a threadlocal in
> RequestContext.
> -----------------------------------------------------------------------------------
>
> Key: ATLAS-1014
> URL: https://issues.apache.org/jira/browse/ATLAS-1014
> Project: Atlas
> Issue Type: Task
> Reporter: Satish Duggana
> Priority: Major
>
> {code:java}
> public static RequestContext get() {
> if (CURRENT_CONTEXT.get() == null) {
> synchronized (RequestContext.class) {
> if (CURRENT_CONTEXT.get() == null) {
> createContext();
> }
> }
> }
> return CURRENT_CONTEXT.get();
> }
> {code}
> There is no need to have double checked locking and synchronization for
> setting a threadlocal state. That logic can be removed by adding the below
> code while instantiating CURRENT_CONTEXT.
> {code:java}
> private static final ThreadLocal<RequestContext> CURRENT_CONTEXT = new
> ThreadLocal<RequestContext>() {
> @Override
> protected RequestContext initialValue() {
> RequestContext context = new RequestContext();
> context.requestTime = System.currentTimeMillis();
> return context;
> }
> };
> {code}
> RequestContext#createContext usages can be changed to RequestContext#get
--
This message was sent by Atlassian Jira
(v8.3.4#803005)