jodd-core/src/main/java/jodd/util/cl/ClassLoaderLocal.java
public synchronized T get() {
		ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();

		if (contextClassLoader != null) {
			T value = weakMap.get(contextClassLoader);

			if ((value == null) && !weakMap.containsKey(contextClassLoader)) {
				value = initialValue();
				weakMap.put(contextClassLoader, value);
			}

			return value;
		}

		if (!initialized) {
			value = initialValue();
			initialized = true;
		}

		return value;
	}
public synchronized T get() {
		ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();

		if (contextClassLoader != null) {
			T value = weakMap.get(contextClassLoader);

			if ((value == null) && !weakMap.containsKey(contextClassLoader)) {
				value = initialValue();
				weakMap.put(contextClassLoader, value);
			}

			return value;
		}

		if (!initialized) {
			value = initialValue();
			initialized = true;
		}

		return value;
	}
Returns the value in the current classloader copy of this variable.
If the variable has no value for the current classloader, it is first initialized to the value returned
by an invocation of the initialValue() method.