class CallContext {

    public Object getContextParameter(Object key) {
        Object value = context.get(key);
        //check if the value is present in the toString value of the key
        //due to a bug in the way we update the key by serializing and deserializing, it sometimes gets toString value of the key. @see com.cloud.api.ApiAsyncJobDispatcher#runJob
        if(value == null ) {
            value = context.get(key.toString());
        }
        return value;
    }

    protected  CallContext();
    protected  CallContext(long userId, long accountId, String contextId);
    protected  CallContext(User user, Account account, String contextId);

}