From b63b7ddf607ba742dce54d40d0b6500e997e8660 Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Thu, 24 Jan 2013 16:59:17 -0800 Subject: [PATCH] UserContext: Threadsafe singleton, inject using ComponentContext, spring di failsafe Signed-off-by: Rohit Yadav --- api/src/com/cloud/user/UserContext.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/api/src/com/cloud/user/UserContext.java b/api/src/com/cloud/user/UserContext.java index 0e276144b05..bcb33b5edeb 100644 --- a/api/src/com/cloud/user/UserContext.java +++ b/api/src/com/cloud/user/UserContext.java @@ -16,12 +16,10 @@ // under the License. package com.cloud.user; +import com.cloud.utils.component.ComponentContext; import javax.inject.Inject; - public class UserContext { - @Inject AccountService _accountMgr; - private static ThreadLocal s_currentContext = new ThreadLocal(); private long userId; @@ -30,9 +28,10 @@ public class UserContext { private long startEventId = 0; private long accountId; private String eventDetails; - private boolean apiServer; + @Inject private AccountService _accountMgr = null; + public UserContext() { } @@ -48,6 +47,9 @@ public class UserContext { } public User getCallerUser() { + if (_accountMgr == null) { + _accountMgr = ComponentContext.getComponent(AccountService.class); + } return _accountMgr.getActiveUser(userId); }