static Object call(ContextFactory factory, ContextAction action)
public static Object call(ContextAction action)
    static Object call(ContextFactory factory, ContextAction action)    {        Context[] storage = getThreadContextStorage();        Context cx;        if (storage != null) {            cx = storage[0];        } else {            cx = getCurrentContext_jdk11();        }        if (cx != null) {            if (cx.factory != null) {                return action.run(cx);            } else {                cx.factory = factory;                try {                    return action.run(cx);                } finally {                    cx.factory = null;                }            }        }        cx = prepareNewContext(factory, storage);        try {            return action.run(cx);        } finally {            releaseContext(storage, cx);        }    }