diff --git a/src/java.desktop/share/classes/com/sun/media/sound/JARSoundbankReader.java b/src/java.desktop/share/classes/com/sun/media/sound/JARSoundbankReader.java index e01bc10cf39..16749e99b89 100644 --- a/src/java.desktop/share/classes/com/sun/media/sound/JARSoundbankReader.java +++ b/src/java.desktop/share/classes/com/sun/media/sound/JARSoundbankReader.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -48,6 +48,13 @@ */ public final class JARSoundbankReader extends SoundbankReader { + /* + * Name of the system property that enables the Jar soundbank loading + * true if jar sound bank is allowed to be loaded + * default is false + */ + private final static String JAR_SOUNDBANK_ENABLED = "jdk.sound.jarsoundbank"; + private static boolean isZIP(URL url) { boolean ok = false; try { @@ -73,8 +80,10 @@ private static boolean isZIP(URL url) { @SuppressWarnings("deprecation") public Soundbank getSoundbank(URL url) throws InvalidMidiDataException, IOException { - if (!isZIP(url)) + Objects.requireNonNull(url); + if (!Boolean.getBoolean(JAR_SOUNDBANK_ENABLED) || !isZIP(url)) return null; + ArrayList soundbanks = new ArrayList<>(); URLClassLoader ucl = URLClassLoader.newInstance(new URL[]{url}); InputStream stream = ucl.getResourceAsStream( @@ -124,6 +133,7 @@ public Soundbank getSoundbank(InputStream stream) @Override public Soundbank getSoundbank(File file) throws InvalidMidiDataException, IOException { + Objects.requireNonNull(file); return getSoundbank(file.toURI().toURL()); } }