diff --git a/lib/sdk/server/src/main/java/com/launchdarkly/sdk/server/integrations/FileDataSourceParsing.java b/lib/sdk/server/src/main/java/com/launchdarkly/sdk/server/integrations/FileDataSourceParsing.java index 9571c44..81ff8cd 100644 --- a/lib/sdk/server/src/main/java/com/launchdarkly/sdk/server/integrations/FileDataSourceParsing.java +++ b/lib/sdk/server/src/main/java/com/launchdarkly/sdk/server/integrations/FileDataSourceParsing.java @@ -72,14 +72,24 @@ static final class FlagFileRep { } static abstract class FlagFileParser { - private static final FlagFileParser jsonParser = new JsonFlagFileParser(); - private static final FlagFileParser yamlParser = new YamlFlagFileParser(); + static class JsonParserHolder { + private static final JsonFlagFileParser INSTANCE = new JsonFlagFileParser(); + static JsonFlagFileParser getInstance() { + return INSTANCE; + } + } + static class YamlParserHolder { + private static final YamlFlagFileParser INSTANCE = new YamlFlagFileParser(); + static YamlFlagFileParser getInstance() { + return INSTANCE; + } + } public abstract FlagFileRep parse(InputStream input) throws FileDataException, IOException; public static FlagFileParser selectForContent(byte[] data) { Reader r = new InputStreamReader(new ByteArrayInputStream(data)); - return detectJson(r) ? jsonParser : yamlParser; + return detectJson(r) ? JsonParserHolder.getInstance() : YamlParserHolder.getInstance(); } private static boolean detectJson(Reader r) {