Explorar el Código

99861 temp fix for deadlock when Sun' Unsafe.defineClass API is used (deadlock in JVMTI obviously, not tied to AJ, but bothers Ron)

tags/PRE_ANDY
avasseur hace 19 años
padre
commit
aff35a1175
Se han modificado 1 ficheros con 8 adiciones y 6 borrados
  1. 8
    6
      loadtime/src/org/aspectj/weaver/loadtime/Aj.java

+ 8
- 6
loadtime/src/org/aspectj/weaver/loadtime/Aj.java Ver fichero

private static Map weavingAdaptors = new WeakHashMap(); private static Map weavingAdaptors = new WeakHashMap();


static WeavingAdaptor getWeaver(ClassLoader loader) { static WeavingAdaptor getWeaver(ClassLoader loader) {
synchronized (weavingAdaptors) {
WeavingAdaptor weavingAdaptor = (WeavingAdaptor) weavingAdaptors.get(loader);
if (weavingAdaptor == null) {
weavingAdaptor = new ClassLoaderWeavingAdaptor(loader);
weavingAdaptors.put(loader, weavingAdaptor);
synchronized(loader) {//FIXME AV - temp fix for #99861
synchronized (weavingAdaptors) {
WeavingAdaptor weavingAdaptor = (WeavingAdaptor) weavingAdaptors.get(loader);
if (weavingAdaptor == null) {
weavingAdaptor = new ClassLoaderWeavingAdaptor(loader);
weavingAdaptors.put(loader, weavingAdaptor);
}
return weavingAdaptor;
} }
return weavingAdaptor;
} }
} }
} }

Cargando…
Cancelar
Guardar