diff --git a/src/org/violetlib/jnr/aqua/AquaNativeRendering.java b/src/org/violetlib/jnr/aqua/AquaNativeRendering.java index fa2fe4b..dd757d1 100644 --- a/src/org/violetlib/jnr/aqua/AquaNativeRendering.java +++ b/src/org/violetlib/jnr/aqua/AquaNativeRendering.java @@ -28,7 +28,7 @@ public class AquaNativeRendering { - private static boolean isInitialized; + private static volatile boolean isInitialized; private static @Nullable AquaUIPainter preferredPainter; @@ -100,9 +100,8 @@ public static void showVersion() { private static @NotNull String getStringResource(@NotNull String name) { - InputStream s = AquaNativeRendering.class.getResourceAsStream(name); - if (s != null) { - try { + try (InputStream s = AquaNativeRendering.class.getResourceAsStream(name)) { + if (s != null) { BufferedReader r = new BufferedReader(new InputStreamReader(s)); StringBuilder sb = new StringBuilder(); for (; ; ) { @@ -113,8 +112,8 @@ public static void showVersion() { sb.append((char) ch); } return sb.toString(); - } catch (IOException ex) { } + } catch (IOException ex) { } return "Unknown"; @@ -126,8 +125,6 @@ private static synchronized void findPainterClasses() return; } - isInitialized = true; - AquaUIPainter viewPainter; AquaUIPainter coreUIPainter; AquaUIPainter jrsPainter = null; @@ -171,6 +168,8 @@ private static synchronized void findPainterClasses() debug("Using JRS painter as preferred painter"); preferredPainter = jrsPainter; // last because it has the most limitations } + + isInitialized = true; } protected static void debug(@NotNull String s)