aboutsummaryrefslogtreecommitdiff
path: root/src/launch
diff options
context:
space:
mode:
Diffstat (limited to 'src/launch')
-rw-r--r--src/launch/lombok/launch/ShadowClassLoader.java4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/launch/lombok/launch/ShadowClassLoader.java b/src/launch/lombok/launch/ShadowClassLoader.java
index f8f969ef..8cfd5e39 100644
--- a/src/launch/lombok/launch/ShadowClassLoader.java
+++ b/src/launch/lombok/launch/ShadowClassLoader.java
@@ -79,6 +79,8 @@ import java.util.jar.JarFile;
*/
class ShadowClassLoader extends ClassLoader {
private static final String SELF_NAME = "lombok/launch/ShadowClassLoader.class";
+ private volatile static Class<?> lombokPatcherSymbols;
+
private final String SELF_BASE;
private final File SELF_BASE_FILE;
private final int SELF_BASE_LENGTH;
@@ -360,6 +362,7 @@ class ShadowClassLoader extends ClassLoader {
if (alreadyLoaded != null) return alreadyLoaded;
}
+ if (lombokPatcherSymbols != null && name.equals("lombok.patcher.Symbols")) return lombokPatcherSymbols;
String fileNameOfClass = name.replace(".", "/") + ".class";
URL res = getResource_(fileNameOfClass, true);
if (res == null) {
@@ -392,6 +395,7 @@ class ShadowClassLoader extends ClassLoader {
}
Class<?> c = defineClass(name, b, 0, p);
+ if (name.equals("lombok.patcher.Symbols")) lombokPatcherSymbols = c;
if (resolve) resolveClass(c);
return c;
}