diff --git a/src/java.base/share/classes/sun/security/util/Debug.java b/src/java.base/share/classes/sun/security/util/Debug.java index 74d33c036ef..f6c0c523165 100644 --- a/src/java.base/share/classes/sun/security/util/Debug.java +++ b/src/java.base/share/classes/sun/security/util/Debug.java @@ -31,8 +31,6 @@ import java.time.Instant; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.HexFormat; -import java.util.regex.Pattern; -import java.util.regex.Matcher; import java.util.Locale; /** @@ -65,7 +63,7 @@ public class Debug { } if (args != null) { - args = marshal(args); + args = args.toLowerCase(Locale.ENGLISH); if (args.equals("help")) { Help(); } else if (args.contains("all")) { @@ -349,69 +347,6 @@ public class Debug { return sb.toString(); } - /** - * change a string into lower case except permission classes and URLs. - */ - private static String marshal(String args) { - if (args != null) { - StringBuilder target = new StringBuilder(); - StringBuilder source = new StringBuilder(args); - - // obtain the "permission=" options - // the syntax of classname: IDENTIFIER.IDENTIFIER - // the regular express to match a class name: - // "[a-zA-Z_$][a-zA-Z0-9_$]*([.][a-zA-Z_$][a-zA-Z0-9_$]*)*" - String keyReg = "[Pp][Ee][Rr][Mm][Ii][Ss][Ss][Ii][Oo][Nn]="; - String keyStr = "permission="; - String reg = keyReg + - "[a-zA-Z_$][a-zA-Z0-9_$]*([.][a-zA-Z_$][a-zA-Z0-9_$]*)*"; - Pattern pattern = Pattern.compile(reg); - Matcher matcher = pattern.matcher(source); - StringBuilder left = new StringBuilder(); - while (matcher.find()) { - String matched = matcher.group(); - target.append(matched.replaceFirst(keyReg, keyStr)); - target.append(" "); - - // delete the matched sequence - matcher.appendReplacement(left, ""); - } - matcher.appendTail(left); - source = left; - - // obtain the "codebase=" options - // the syntax of URL is too flexible, and here assumes that the - // URL contains no space, comma(','), and semicolon(';'). That - // also means those characters also could be used as separator - // after codebase option. - // However, the assumption is incorrect in some special situation - // when the URL contains comma or semicolon - keyReg = "[Cc][Oo][Dd][Ee][Bb][Aa][Ss][Ee]="; - keyStr = "codebase="; - reg = keyReg + "[^, ;]*"; - pattern = Pattern.compile(reg); - matcher = pattern.matcher(source); - left = new StringBuilder(); - while (matcher.find()) { - String matched = matcher.group(); - target.append(matched.replaceFirst(keyReg, keyStr)); - target.append(" "); - - // delete the matched sequence - matcher.appendReplacement(left, ""); - } - matcher.appendTail(left); - source = left; - - // convert the rest to lower-case characters - target.append(source.toString().toLowerCase(Locale.ENGLISH)); - - return target.toString(); - } - - return null; - } - public static String toString(byte[] b) { if (b == null) { return "(null)"; diff --git a/test/jdk/sun/security/util/Debug/MultiOptions.java b/test/jdk/sun/security/util/Debug/MultiOptions.java deleted file mode 100644 index 82987f4348a..00000000000 --- a/test/jdk/sun/security/util/Debug/MultiOptions.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2006, 2007, 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 - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -/* - * @test 1.1, 06/11/07 - * @author Xuelei Fan - * @bug 6466247 - * @summary java.security.debug permission= and codebase= - * options do not work - * @modules java.base/sun.security.util - * @run main/othervm -Djava.security.debug="stacknothing--=-30logincontextacCess:stack-domain,combiner;access:fAilure-jarpermission=sun.dummy.DummyPermission;peRmiSsion=sun.Dummy.DummyPermission2=permission=sun.dummy.DummyPermission3:codEbAse=/dir1/DIR2/Dir3/File.java,codebase=http://www.sun.com/search?q=SunMicro,codEbAse=/dir1/DIR2/Dir3/File.java;coDebase=www.sun.com;codebase=file:///C:/temp/foo%20more/a.txt" MultiOptions - */ -import sun.security.util.Debug; - -public class MultiOptions -{ - public static void main(String args[]) throws Exception { - - if (!Debug.isOn("access") || - !Debug.isOn("stack") || - !Debug.isOn("logincontext") || - !Debug.isOn("domain") || - !Debug.isOn("combiner") || - !Debug.isOn("failure") || - !Debug.isOn("jar") || - !Debug.isOn("permission=sun.dummy.DummyPermission") || - Debug.isOn("permission=sun.dummy.dummypermission") || - !Debug.isOn("permission=sun.Dummy.DummyPermission2") || - !Debug.isOn("permission=sun.dummy.DummyPermission3") || - !Debug.isOn("codebase=/dir1/DIR2/Dir3/File.java") || - Debug.isOn("codebase=/dir1/dir2/dir3/file.java") || - !Debug.isOn("codebase=www.sun.com") || - !Debug.isOn("codebase=file:///C:/temp/foo%20more/a.txt") || - !Debug.isOn("codebase=http://www.sun.com/search?q=SunMicro") ) { - throw new Exception("sun.security.Debug failed to parse options"); - } - } - -}