--- old/src/java.desktop/share/classes/java/awt/Toolkit.java 2019-01-21 22:37:30.146021300 +0530 +++ new/src/java.desktop/share/classes/java/awt/Toolkit.java 2019-01-21 22:37:28.312019000 +0530 @@ -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 @@ -504,14 +504,18 @@ * 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. + * + * Additionally, if the provided assistive technology providers list is empty + * then none of the assistive technology providers will be loaded and + * will return without error. */ private static void loadAssistiveTechnologies() { // Load any assistive technologies - if (atNames != null) { + if (atNames != null && !atNames.trim().isEmpty()) { ClassLoader cl = ClassLoader.getSystemClassLoader(); Set names = Arrays.stream(atNames.split(",")) - .map(String::trim) - .collect(Collectors.toSet()); + .map(String::trim) + .collect(Collectors.toSet()); final Map providers = new HashMap<>(); AccessController.doPrivileged((PrivilegedAction) () -> { try { @@ -528,8 +532,8 @@ return null; }); names.stream() - .filter(n -> !providers.containsKey(n)) - .forEach(Toolkit::fallbackToLoadClassForAT); + .filter(n -> !providers.containsKey(n)) + .forEach(Toolkit::fallbackToLoadClassForAT); } }