Переглянути джерело

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 19 роки тому
джерело
коміт
aff35a1175
1 змінених файлів з 8 додано та 6 видалено
  1. 8
    6
      loadtime/src/org/aspectj/weaver/loadtime/Aj.java

+ 8
- 6
loadtime/src/org/aspectj/weaver/loadtime/Aj.java Переглянути файл

@@ -74,13 +74,15 @@ public class Aj implements ClassPreProcessor {
private static Map weavingAdaptors = new WeakHashMap();

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;
}
}
}

Завантаження…
Відмінити
Зберегти