protected static Object _javaWithCachingLock = new Object();
protected static JavaWithCaching getJavaWithCaching() {
synchronized (_javaWithCachingLock) {
// has the state of the ApplicationClassloader changed?
ApplicationClassloaderState currentApplicationClasloaderState = Yalp.classloader.currentState;
if (!currentApplicationClasloaderState.equals(_lastKnownApplicationClassloaderState)) {
// it has changed.
// we must drop our current _javaWithCaching and create a new one...
// and start the caching over again.
_lastKnownApplicationClassloaderState = currentApplicationClasloaderState;
_javaWithCaching = new JavaWithCaching();