# HG changeset patch # User serb # Date 1555961730 25200 # Node ID cd796dd640444a505471bb40d37b126a8a0e58ee # Parent 23ff4073267f44e4dd9a46b55adcdda415b3f97f 8216008: -Djavax.accessibility.assistive_technologies empty list leads to exception Reviewed-by: prr diff -r 23ff4073267f -r cd796dd64044 src/java.desktop/share/classes/java/awt/Toolkit.java --- a/src/java.desktop/share/classes/java/awt/Toolkit.java Mon Apr 22 18:54:19 2019 -0700 +++ b/src/java.desktop/share/classes/java/awt/Toolkit.java Mon Apr 22 12:35:30 2019 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1995, 2019, 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 @@ -503,11 +503,15 @@ * implementations of the AccessibilityProvider interface, not by the order * of provider names in the property list. When a provider is found its * accessibility implementation will be started by calling the provider's - * activate method. All errors are handled via an AWTError exception. + * activate method. If the list of assistive technology providers is the + * empty string or contains only + * {@linkplain Character#isWhitespace(int) white space} characters or + * {@code null} it is ignored. All other errors are handled via an AWTError + * exception. */ private static void loadAssistiveTechnologies() { // Load any assistive technologies - if (atNames != null) { + if (atNames != null && !atNames.isBlank()) { ClassLoader cl = ClassLoader.getSystemClassLoader(); Set names = Arrays.stream(atNames.split(",")) .map(String::trim) @@ -551,7 +555,13 @@ * {@code -Djavax.accessibility.assistive_technologies=MyServiceProvider}. * In addition to MyServiceProvider other service providers can be specified * using a comma separated list. Service providers are loaded after the AWT - * toolkit is created. All errors are handled via an AWTError exception. + * toolkit is created. + *

+ * If the list of assistive technology providers as provided through system + * property "{@systemProperty javax.accessibility.assistive_technologies}" + * is the empty string or contains only + * {@linkplain Character#isWhitespace(int) white space} characters it is + * ignored. All other errors are handled via an AWTError exception. *

* The names specified in the assistive_technologies property are used to query * each service provider implementation. If the requested name matches the diff -r 23ff4073267f -r cd796dd64044 test/jdk/javax/accessibility/AccessibilityProvider/basic.sh --- a/test/jdk/javax/accessibility/AccessibilityProvider/basic.sh Mon Apr 22 18:54:19 2019 -0700 +++ b/test/jdk/javax/accessibility/AccessibilityProvider/basic.sh Mon Apr 22 12:35:30 2019 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2015, 2019, 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 @@ -22,7 +22,7 @@ # # @test # @key headful -# @bug 8055160 +# @bug 8055160 8216008 # @summary Unit test for javax.accessibility.AccessibilitySPI # # @build Load FooProvider BarProvider UnusedProvider @@ -89,6 +89,13 @@ PROVIDER1="NoProvider" go fail $PROVIDER1 +# pass if none provider found +PROVIDER1= +go pass $PROVIDER1 + +PROVIDER1=" " +go pass $PROVIDER1 + # setup for two providers COMMA=","