diff --git a/src/main/java/xyz/wagyourtail/jvmdg/ClassDowngrader.java b/src/main/java/xyz/wagyourtail/jvmdg/ClassDowngrader.java index 8d29498..46943e6 100644 --- a/src/main/java/xyz/wagyourtail/jvmdg/ClassDowngrader.java +++ b/src/main/java/xyz/wagyourtail/jvmdg/ClassDowngrader.java @@ -52,6 +52,9 @@ protected ClassDowngrader(@NotNull Flags flags) { } public int maxVersion() { + if (downgraders == null) { + return -1; + } if (maxVersion == -1) { synchronized (this) { if (maxVersion == -1) { diff --git a/src/main/java/xyz/wagyourtail/jvmdg/classloader/DowngradingClassLoader.java b/src/main/java/xyz/wagyourtail/jvmdg/classloader/DowngradingClassLoader.java index 8369f29..2a55552 100644 --- a/src/main/java/xyz/wagyourtail/jvmdg/classloader/DowngradingClassLoader.java +++ b/src/main/java/xyz/wagyourtail/jvmdg/classloader/DowngradingClassLoader.java @@ -119,13 +119,17 @@ public byte[] apply(String s) { @Override protected Enumeration findResources(final String name) { - if (name.equals("META-INF/services/" + VersionProvider.class.getName())) { - return super.findResources(name); - } if (multiVersionList.isEmpty()) { synchronized (this) { if (multiVersionList.isEmpty()) { - for (int i = holder.maxVersion(); i >= 52; i--) { + + int max = holder.maxVersion(); + // still initializing? + if (max == -1) { + return super.findResources(name); + } + + for (int i = max; i >= 52; i--) { multiVersionList.add(i); } multiVersionList.add(-1);