提交 4b8e480a 编写于 作者: S serb

8022119: test api/javax_sound/sampled/spi/MixerProvider/indexTGF_MixerProviderTests fails

Reviewed-by: art, anthony
上级 b4f12418
......@@ -187,9 +187,18 @@ final class JSSecurityManager {
static <T> List<T> getProviders(final Class<T> providerClass) {
List<T> p = new ArrayList<>();
// ServiceLoader creates "lazy" iterator instance, so it doesn't,
// require do be called from privileged section
final Iterator<T> ps = ServiceLoader.load(providerClass).iterator();
// ServiceLoader creates "lazy" iterator instance, but it ensures that
// next/hasNext run with permissions that are restricted by whatever
// creates the ServiceLoader instance, so it requires to be called from
// privileged section
final PrivilegedAction<Iterator<T>> psAction =
new PrivilegedAction<Iterator<T>>() {
@Override
public Iterator<T> run() {
return ServiceLoader.load(providerClass).iterator();
}
};
final Iterator<T> ps = AccessController.doPrivileged(psAction);
// the iterator's hasNext() method looks through classpath for
// the provider class names, so it requires read permissions
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册