diff --git a/aQute.libg/src/aQute/lib/converter/Converter.java b/aQute.libg/src/aQute/lib/converter/Converter.java index 5dbb1441bf..4c0b870ac6 100644 --- a/aQute.libg/src/aQute/lib/converter/Converter.java +++ b/aQute.libg/src/aQute/lib/converter/Converter.java @@ -28,6 +28,7 @@ import java.util.HashSet; import java.util.LinkedList; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Optional; import java.util.Stack; @@ -280,7 +281,7 @@ Object convertT(Type type, Object o) throws Exception { try { return Enum.valueOf((Class) resultType, input); } catch (Exception e) { - input = input.toUpperCase(); + input = input.toUpperCase(Locale.ROOT); return Enum.valueOf((Class) resultType, input); } } diff --git a/aQute.libg/src/aQute/lib/getopt/CommandLine.java b/aQute.libg/src/aQute/lib/getopt/CommandLine.java index c78fdebaff..4fbfc0918b 100644 --- a/aQute.libg/src/aQute/lib/getopt/CommandLine.java +++ b/aQute.libg/src/aQute/lib/getopt/CommandLine.java @@ -13,6 +13,7 @@ import java.util.Formatter; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; @@ -627,7 +628,7 @@ private String getTypeDescriptor(Type type) { return ""; // Is a flag return "<" + lastPart(clazz.getName() - .toLowerCase()) + ">"; + .toLowerCase(Locale.ROOT)) + ">"; } public Object getResult() { diff --git a/aQute.libg/src/aQute/lib/xpath/XPathParser.java b/aQute.libg/src/aQute/lib/xpath/XPathParser.java index 6910334743..52ed6214bf 100644 --- a/aQute.libg/src/aQute/lib/xpath/XPathParser.java +++ b/aQute.libg/src/aQute/lib/xpath/XPathParser.java @@ -9,6 +9,7 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Modifier; import java.util.List; +import java.util.Locale; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.xpath.XPath; @@ -73,7 +74,7 @@ public void parse(Node node, X dto) throws Exception { if (f.getType() .isAnnotation()) - value = value.toUpperCase(); + value = value.toUpperCase(Locale.ROOT); Object o = Converter.cnv(f.getGenericType(), value); try { diff --git a/aQute.libg/src/aQute/libg/classdump/ClassDumper.java b/aQute.libg/src/aQute/libg/classdump/ClassDumper.java index 4e013f73ec..81fa989f24 100644 --- a/aQute.libg/src/aQute/libg/classdump/ClassDumper.java +++ b/aQute.libg/src/aQute/libg/classdump/ClassDumper.java @@ -7,6 +7,7 @@ import java.io.PrintStream; import java.lang.reflect.Modifier; import java.nio.file.Paths; +import java.util.Locale; import aQute.lib.io.IO; @@ -381,7 +382,7 @@ protected void printHex(byte[] code) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < 16 && index < code.length; i++) { String s = Integer.toHexString((0xFF & code[index++])) - .toUpperCase(); + .toUpperCase(Locale.ROOT); if (s.length() == 1) sb.append("0"); sb.append(s); diff --git a/aQute.libg/src/aQute/libg/shacache/ShaCache.java b/aQute.libg/src/aQute/libg/shacache/ShaCache.java index bcd661b807..93cf9183bf 100644 --- a/aQute.libg/src/aQute/libg/shacache/ShaCache.java +++ b/aQute.libg/src/aQute/libg/shacache/ShaCache.java @@ -3,6 +3,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.util.Locale; import java.util.regex.Pattern; import aQute.lib.io.IO; @@ -81,7 +82,7 @@ public InputStream getStream(String sha, ShaSource... sources) throws Exception // and copy it. // - File tmp = IO.createTempFile(root, sha.toLowerCase(), ".shacache"); + File tmp = IO.createTempFile(root, sha.toLowerCase(Locale.ROOT), ".shacache"); IO.copy(in, tmp); String digest = SHA1.digest(tmp) .asHex(); @@ -141,7 +142,7 @@ public File getFile(String sha, ShaSource... sources) throws Exception { try { InputStream in = s.get(sha); if (in != null) { - File tmp = IO.createTempFile(root, sha.toLowerCase(), ".shacache"); + File tmp = IO.createTempFile(root, sha.toLowerCase(Locale.ROOT), ".shacache"); IO.copy(in, tmp); String digest = SHA1.digest(tmp) .asHex(); diff --git a/aQute.libg/test/aQute/lib/hex/HexTest.java b/aQute.libg/test/aQute/lib/hex/HexTest.java index 1bde6cf1fe..8de99968d4 100644 --- a/aQute.libg/test/aQute/lib/hex/HexTest.java +++ b/aQute.libg/test/aQute/lib/hex/HexTest.java @@ -7,6 +7,7 @@ import java.nio.ByteBuffer; import java.util.Arrays; +import java.util.Locale; import org.junit.jupiter.api.Test; @@ -50,7 +51,7 @@ public void testHexOddCount() { public void testHex() { byte[] bytes = Hex.toByteArray("b10a8db164e0754105b7a99be72e3fe5"); String s = Hex.toHexString(bytes); - assertEquals("b10a8db164e0754105b7a99be72e3fe5", s.toLowerCase()); + assertEquals("b10a8db164e0754105b7a99be72e3fe5", s.toLowerCase(Locale.ROOT)); } @Test diff --git a/biz.aQute.bnd.exporters/src/aQute/bnd/exporter/subsystem/ContainerType.java b/biz.aQute.bnd.exporters/src/aQute/bnd/exporter/subsystem/ContainerType.java index 8a24f5ae1d..5f54160083 100644 --- a/biz.aQute.bnd.exporters/src/aQute/bnd/exporter/subsystem/ContainerType.java +++ b/biz.aQute.bnd.exporters/src/aQute/bnd/exporter/subsystem/ContainerType.java @@ -1,7 +1,8 @@ package aQute.bnd.exporter.subsystem; import java.io.File; -import java.util.stream.Stream; +import java.util.Arrays; +import java.util.Locale; import org.osgi.framework.Constants; import org.osgi.service.subsystem.SubsystemConstants;; @@ -111,9 +112,10 @@ public static ContainerType byFile(File file) { return null; } String filename = file.getName() - .toLowerCase(); - return Stream.of(ContainerType.values()) - .filter(c -> filename.endsWith("." + c.getExtension())) + .toLowerCase(Locale.ROOT); + return Arrays.stream(ContainerType.values()) + .filter(c -> filename.endsWith(".".concat(c.getExtension() + .toLowerCase(Locale.ROOT)))) .findFirst() .orElse(null); } diff --git a/biz.aQute.bnd.exporters/src/aQute/bnd/exporter/subsystem/EsaArchiveType.java b/biz.aQute.bnd.exporters/src/aQute/bnd/exporter/subsystem/EsaArchiveType.java index 0a1814c452..ef9aedef4e 100644 --- a/biz.aQute.bnd.exporters/src/aQute/bnd/exporter/subsystem/EsaArchiveType.java +++ b/biz.aQute.bnd.exporters/src/aQute/bnd/exporter/subsystem/EsaArchiveType.java @@ -1,5 +1,7 @@ package aQute.bnd.exporter.subsystem; +import java.util.Locale; + public enum EsaArchiveType { NONE, CONTENT, @@ -10,7 +12,7 @@ public static EsaArchiveType byParameter(String archiveContent) { return CONTENT; // default } try { - return valueOf(archiveContent.toUpperCase()); + return valueOf(archiveContent.toUpperCase(Locale.ROOT)); } catch (IllegalArgumentException e) { return null; } diff --git a/biz.aQute.bnd.runtime/src/aQute/bnd/runtime/gogo/Log.java b/biz.aQute.bnd.runtime/src/aQute/bnd/runtime/gogo/Log.java index 043977a35e..12dab6b5cc 100644 --- a/biz.aQute.bnd.runtime/src/aQute/bnd/runtime/gogo/Log.java +++ b/biz.aQute.bnd.runtime/src/aQute/bnd/runtime/gogo/Log.java @@ -7,6 +7,7 @@ import java.util.ArrayList; import java.util.Enumeration; import java.util.List; +import java.util.Locale; import java.util.WeakHashMap; import org.apache.felix.service.command.CommandSession; @@ -118,7 +119,7 @@ public List linfo(@Parameter(names = { } private List log0(String level, int number) { - Level l = Level.valueOf(level.toUpperCase()); + Level l = Level.valueOf(level.toUpperCase(Locale.ROOT)); List result = new ArrayList<>(); for (int i = entries.size() - 1; i >= 0 && result.size() <= number; i--) { LogEntry entry = entries.get(i); diff --git a/biz.aQute.bnd.runtime/src/aQute/bnd/runtime/snapshot/Snapshot.java b/biz.aQute.bnd.runtime/src/aQute/bnd/runtime/snapshot/Snapshot.java index 2dea8bb734..e946742c6a 100644 --- a/biz.aQute.bnd.runtime/src/aQute/bnd/runtime/snapshot/Snapshot.java +++ b/biz.aQute.bnd.runtime/src/aQute/bnd/runtime/snapshot/Snapshot.java @@ -10,6 +10,7 @@ import java.time.format.DateTimeFormatter; import java.util.Hashtable; import java.util.LinkedHashMap; +import java.util.Locale; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; @@ -156,7 +157,7 @@ private File flush(Map top, String name) throws IOException, Exc if (className != null) { int x = className.lastIndexOf('.'); className = className.substring(x + 1); - name = className.toLowerCase() + "-" + name; + name = className.toLowerCase(Locale.ROOT) + "-" + name; } name += ".json"; } else diff --git a/biz.aQute.bnd/src/aQute/bnd/main/BaselineCommands.java b/biz.aQute.bnd/src/aQute/bnd/main/BaselineCommands.java index 1c7b3e529d..6c07f7943d 100644 --- a/biz.aQute.bnd/src/aQute/bnd/main/BaselineCommands.java +++ b/biz.aQute.bnd/src/aQute/bnd/main/BaselineCommands.java @@ -14,6 +14,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.Set; @@ -47,6 +48,7 @@ import aQute.bnd.service.diff.Delta; import aQute.bnd.service.diff.Diff; import aQute.bnd.service.diff.Tree; +import aQute.bnd.unmodifiable.Lists; import aQute.bnd.version.Version; import aQute.lib.collections.MultiMap; import aQute.lib.collections.SortedList; @@ -55,7 +57,6 @@ import aQute.lib.getopt.Options; import aQute.lib.io.IO; import aQute.lib.tag.Tag; -import aQute.bnd.unmodifiable.Lists; import aQute.lib.xml.XML; /** @@ -245,7 +246,8 @@ protected void doPackageDiff(Diff diff) { protected void doDiff(Diff diff, StringBuilder sb) { String type = String.valueOf(diff.getType()); - String output = String.format("%s%-5s %-10s %s", sb, getShortDelta(diff.getDelta()), type.toLowerCase(), + String output = String.format("%s%-5s %-10s %s", sb, getShortDelta(diff.getDelta()), + type.toLowerCase(Locale.ROOT), diff.getName()); bnd.out.println(output); diff --git a/biz.aQute.bnd/src/aQute/bnd/main/bnd.java b/biz.aQute.bnd/src/aQute/bnd/main/bnd.java index 4c6070d09d..a787c3237f 100644 --- a/biz.aQute.bnd/src/aQute/bnd/main/bnd.java +++ b/biz.aQute.bnd/src/aQute/bnd/main/bnd.java @@ -31,6 +31,7 @@ import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.Objects; @@ -690,7 +691,7 @@ public void _extract(extractOptions opts) throws Exception { for (String path : selected) { if (opts.verbose()) err.printf("%8s: %s\n", compression.toString() - .toLowerCase(), path); + .toLowerCase(Locale.ROOT), path); File f = getFile(store, path); File pf = f.getParentFile(); @@ -3746,7 +3747,7 @@ public void _copy(CopyOptions options) throws Exception { .entrySet()) { String header = e.getKey() .toString() - .toLowerCase(); + .toLowerCase(Locale.ROOT); if (header.startsWith("bundle-")) continue; diff --git a/biz.aQute.bndlib.comm.tests/test/aQute/bnd/comm/tests/SettingsParserTest.java b/biz.aQute.bndlib.comm.tests/test/aQute/bnd/comm/tests/SettingsParserTest.java index f4a3a925af..2b737ba9d8 100644 --- a/biz.aQute.bndlib.comm.tests/test/aQute/bnd/comm/tests/SettingsParserTest.java +++ b/biz.aQute.bndlib.comm.tests/test/aQute/bnd/comm/tests/SettingsParserTest.java @@ -9,6 +9,7 @@ import java.net.Proxy.Type; import java.net.URL; import java.util.List; +import java.util.Locale; import org.junit.jupiter.api.Test; @@ -118,7 +119,7 @@ public void testProxies() throws Exception { ProxyDTO p = settings.proxies.get(0); assertEquals("http-proxy", p.id); assertEquals(true, p.active); - assertEquals(Type.HTTP.name(), p.protocol.toUpperCase()); + assertEquals(Type.HTTP.name(), p.protocol.toUpperCase(Locale.ROOT)); assertEquals("localhost", p.host); assertEquals(80, p.port); assertEquals(null, p.nonProxyHosts); @@ -128,7 +129,7 @@ public void testProxies() throws Exception { p = settings.proxies.get(1); assertEquals("https-proxy", p.id); assertEquals(true, p.active); - assertEquals("HTTPS", p.protocol.toUpperCase()); + assertEquals("HTTPS", p.protocol.toUpperCase(Locale.ROOT)); assertEquals("localhost", p.host); assertEquals(443, p.port); assertEquals(null, p.nonProxyHosts); @@ -143,7 +144,7 @@ public void testSocksAuth() throws Exception { ProxyDTO p = settings.proxies.get(0); assertEquals("myproxy", p.id); assertEquals(true, p.active); - assertEquals(Type.SOCKS.name(), p.protocol.toUpperCase()); + assertEquals(Type.SOCKS.name(), p.protocol.toUpperCase(Locale.ROOT)); assertEquals(1080, p.port); assertEquals(null, p.nonProxyHosts); assertEquals("proxyuser", p.username); @@ -157,7 +158,7 @@ public void testSocksNoAuth() throws Exception { ProxyDTO p = settings.proxies.get(0); assertEquals("myproxy", p.id); assertEquals(true, p.active); - assertEquals(Type.SOCKS.name(), p.protocol.toUpperCase()); + assertEquals(Type.SOCKS.name(), p.protocol.toUpperCase(Locale.ROOT)); assertEquals(1080, p.port); assertEquals(null, p.nonProxyHosts); assertEquals(null, p.username); @@ -171,7 +172,7 @@ public void testNonProxyHost() throws Exception { ProxyDTO p = settings.proxies.get(0); assertEquals("myproxy", p.id); assertEquals(true, p.active); - assertEquals(Type.SOCKS.name(), p.protocol.toUpperCase()); + assertEquals(Type.SOCKS.name(), p.protocol.toUpperCase(Locale.ROOT)); assertEquals(1080, p.port); assertEquals("*.google.com|ibiblio.org", p.nonProxyHosts); assertEquals(null, p.username); diff --git a/biz.aQute.bndlib.tests/test/test/lib/NanoHTTPD.java b/biz.aQute.bndlib.tests/test/test/lib/NanoHTTPD.java index 0086f4df78..2b775de812 100644 --- a/biz.aQute.bndlib.tests/test/test/lib/NanoHTTPD.java +++ b/biz.aQute.bndlib.tests/test/test/lib/NanoHTTPD.java @@ -239,7 +239,7 @@ public static void main(String[] args) { port = Integer.parseInt(args[i + 1]); else if (args[i].equalsIgnoreCase("-d")) wwwroot = new File(args[i + 1]).getAbsoluteFile(); - else if (args[i].toLowerCase() + else if (args[i].toLowerCase(Locale.ROOT) .endsWith("licence")) { myOut.println(LICENCE + "\n"); break; @@ -460,7 +460,7 @@ private void decodeHeader(BufferedReader in, Properties pre, Properties parms, P if (p >= 0) header.put(line.substring(0, p) .trim() - .toLowerCase(), + .toLowerCase(Locale.ROOT), line.substring(p + 1) .trim()); line = in.readLine(); @@ -496,7 +496,7 @@ private void decodeMultipartData(String boundary, byte[] fbuf, BufferedReader in if (p != -1) item.put(mpline.substring(0, p) .trim() - .toLowerCase(), + .toLowerCase(Locale.ROOT), mpline.substring(p + 1) .trim()); mpline = in.readLine(); @@ -515,7 +515,7 @@ private void decodeMultipartData(String boundary, byte[] fbuf, BufferedReader in if (p != -1) disposition.put(token.substring(0, p) .trim() - .toLowerCase(), + .toLowerCase(Locale.ROOT), token.substring(p + 1) .trim()); } @@ -869,7 +869,7 @@ else if (len < 1024 * 1024) if (dot >= 0) mime = theMimeTypes.get(f.getCanonicalPath() .substring(dot + 1) - .toLowerCase()); + .toLowerCase(Locale.ROOT)); if (mime == null) mime = MIME_DEFAULT_BINARY; diff --git a/biz.aQute.bndlib/src/aQute/bnd/build/Project.java b/biz.aQute.bndlib/src/aQute/bnd/build/Project.java index e4e8deee3a..83ec94e480 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/build/Project.java +++ b/biz.aQute.bndlib/src/aQute/bnd/build/Project.java @@ -29,6 +29,7 @@ import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.Optional; @@ -980,7 +981,7 @@ public boolean getRunBuilds() { String runBuildsStr = getProperty(Constants.RUNBUILDS); if (runBuildsStr == null) result = !getPropertiesFile().getName() - .toLowerCase() + .toLowerCase(Locale.ROOT) .endsWith(Constants.DEFAULT_BNDRUN_EXTENSION); else result = Boolean.parseBoolean(runBuildsStr); diff --git a/biz.aQute.bndlib/src/aQute/bnd/build/Workspace.java b/biz.aQute.bndlib/src/aQute/bnd/build/Workspace.java index 94d7e278de..a543577ac8 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/build/Workspace.java +++ b/biz.aQute.bndlib/src/aQute/bnd/build/Workspace.java @@ -1232,7 +1232,7 @@ public boolean addPlugin(Class plugin, String alias, Map para alias = ann.name(); else { alias = Strings.getLastSegment(plugin.getName()) - .toLowerCase(); + .toLowerCase(Locale.ROOT); if (alias.endsWith("plugin")) { alias = alias.substring(0, alias.length() - "plugin".length()); } diff --git a/biz.aQute.bndlib/src/aQute/bnd/build/model/BndEditModel.java b/biz.aQute.bndlib/src/aQute/bnd/build/model/BndEditModel.java index 130e4b7139..e35e346f9a 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/build/model/BndEditModel.java +++ b/biz.aQute.bndlib/src/aQute/bnd/build/model/BndEditModel.java @@ -17,6 +17,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.Properties; @@ -1007,9 +1008,9 @@ public void setEE(EE ee) { } public void setRunFramework(String clause) { - assert (Constants.RUNFRAMEWORK_SERVICES.equals(clause.toLowerCase() + assert (Constants.RUNFRAMEWORK_SERVICES.equals(clause.toLowerCase(Locale.ROOT) .trim()) || Constants.RUNFRAMEWORK_NONE.equals( - clause.toLowerCase() + clause.toLowerCase(Locale.ROOT) .trim())); String oldValue = getRunFramework(); doSetObject(Constants.RUNFRAMEWORK, oldValue, clause, newlineEscapeFormatter); diff --git a/biz.aQute.bndlib/src/aQute/bnd/compatibility/Access.java b/biz.aQute.bndlib/src/aQute/bnd/compatibility/Access.java index fa4e37e6b4..ef64f75c72 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/compatibility/Access.java +++ b/biz.aQute.bndlib/src/aQute/bnd/compatibility/Access.java @@ -1,6 +1,7 @@ package aQute.bnd.compatibility; import java.lang.reflect.Modifier; +import java.util.Locale; /** * Access modifier @@ -25,6 +26,6 @@ public static Access modifier(int mod) { @Override public String toString() { - return super.toString().toLowerCase(); + return super.toString().toLowerCase(Locale.ROOT); } } diff --git a/biz.aQute.bndlib/src/aQute/bnd/compatibility/Kind.java b/biz.aQute.bndlib/src/aQute/bnd/compatibility/Kind.java index 99b72b4150..fde04f4bda 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/compatibility/Kind.java +++ b/biz.aQute.bndlib/src/aQute/bnd/compatibility/Kind.java @@ -1,5 +1,7 @@ package aQute.bnd.compatibility; +import java.util.Locale; + /** * The kind of thing we scope */ @@ -13,6 +15,6 @@ public enum Kind { @Override public String toString() { - return super.toString().toLowerCase(); + return super.toString().toLowerCase(Locale.ROOT); } } diff --git a/biz.aQute.bndlib/src/aQute/bnd/component/HeaderReader.java b/biz.aQute.bndlib/src/aQute/bnd/component/HeaderReader.java index 1930891fb9..2ae0dc4d6e 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/component/HeaderReader.java +++ b/biz.aQute.bndlib/src/aQute/bnd/component/HeaderReader.java @@ -8,6 +8,7 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.StringTokenizer; @@ -29,9 +30,9 @@ import aQute.bnd.osgi.Descriptors.TypeRef; import aQute.bnd.osgi.Processor; import aQute.bnd.osgi.Verifier; +import aQute.bnd.unmodifiable.Sets; import aQute.bnd.version.Version; import aQute.lib.tag.Tag; -import aQute.bnd.unmodifiable.Sets; public class HeaderReader extends Processor { private final static Pattern PROPERTY_PATTERN = Pattern @@ -64,7 +65,7 @@ public Tag createComponentTag(String name, String impl, Map info cd.immediate = Boolean.valueOf(info.get(COMPONENT_IMMEDIATE)); if (info.get(COMPONENT_CONFIGURATION_POLICY) != null) cd.configurationPolicy = ConfigurationPolicy.valueOf(info.get(COMPONENT_CONFIGURATION_POLICY) - .toUpperCase()); + .toUpperCase(Locale.ROOT)); cd.activate = checkIdentifier(COMPONENT_ACTIVATE, info.get(COMPONENT_ACTIVATE)); cd.deactivate = checkIdentifier(COMPONENT_DEACTIVATE, info.get(COMPONENT_DEACTIVATE)); cd.modified = checkIdentifier(COMPONENT_MODIFIED, info.get(COMPONENT_MODIFIED)); diff --git a/biz.aQute.bndlib/src/aQute/bnd/connection/settings/ConnectionSettings.java b/biz.aQute.bndlib/src/aQute/bnd/connection/settings/ConnectionSettings.java index a30eea6440..ccb4bafbb8 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/connection/settings/ConnectionSettings.java +++ b/biz.aQute.bndlib/src/aQute/bnd/connection/settings/ConnectionSettings.java @@ -21,6 +21,7 @@ import java.util.Arrays; import java.util.Formatter; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.regex.Matcher; @@ -232,7 +233,7 @@ static String normalize(String id) { } String scheme = m.group(1) - .toLowerCase(); + .toLowerCase(Locale.ROOT); String host = m.group(2); String port = m.group(3); @@ -365,7 +366,7 @@ private static final class SettingsProxyHandler implements ProxyHandler { public ProxySetup forURL(URL url) throws Exception { Proxy.Type type; - switch (proxyDTO.protocol.toUpperCase()) { + switch (proxyDTO.protocol.toUpperCase(Locale.ROOT)) { case "DIRECT" : type = Type.DIRECT; diff --git a/biz.aQute.bndlib/src/aQute/bnd/http/HttpClient.java b/biz.aQute.bndlib/src/aQute/bnd/http/HttpClient.java index 9e2ea0767d..07bd4e027a 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/http/HttpClient.java +++ b/biz.aQute.bndlib/src/aQute/bnd/http/HttpClient.java @@ -48,6 +48,7 @@ import org.slf4j.LoggerFactory; import aQute.bnd.connection.settings.ConnectionSettings; +import aQute.bnd.exceptions.Exceptions; import aQute.bnd.http.URLCache.Info; import aQute.bnd.osgi.Processor; import aQute.bnd.service.Registry; @@ -62,7 +63,6 @@ import aQute.bnd.stream.MapStream; import aQute.bnd.util.home.Home; import aQute.lib.date.Dates; -import aQute.bnd.exceptions.Exceptions; import aQute.lib.io.IO; import aQute.lib.json.JSONCodec; import aQute.libg.reporter.ReporterAdapter; @@ -895,7 +895,7 @@ public String validateURI(URI u) { if (scheme == null) { return "Invalid uri, no scheme: " + u; } - switch (scheme.toLowerCase()) { + switch (scheme.toLowerCase(Locale.ROOT)) { case "http" : case "https" : case "file" : diff --git a/biz.aQute.bndlib/src/aQute/bnd/http/HttpRequest.java b/biz.aQute.bndlib/src/aQute/bnd/http/HttpRequest.java index 9e35288052..9e532f36e2 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/http/HttpRequest.java +++ b/biz.aQute.bndlib/src/aQute/bnd/http/HttpRequest.java @@ -6,6 +6,7 @@ import java.net.URI; import java.net.URL; import java.util.HashMap; +import java.util.Locale; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -83,7 +84,7 @@ public HttpRequest get(Type type) { public HttpRequest verb(String verb) { this.verb = verb; - switch (verb.toUpperCase()) { + switch (verb.toUpperCase(Locale.ROOT)) { case "GET" : case "HEAD" : case "PUT" : diff --git a/biz.aQute.bndlib/src/aQute/bnd/maven/MavenDependencyGraph.java b/biz.aQute.bndlib/src/aQute/bnd/maven/MavenDependencyGraph.java index 29b4167a84..2c9892e786 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/maven/MavenDependencyGraph.java +++ b/biz.aQute.bndlib/src/aQute/bnd/maven/MavenDependencyGraph.java @@ -6,6 +6,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import javax.xml.parsers.DocumentBuilder; @@ -63,7 +64,7 @@ public Artifact(URL url) throws Exception { optional = (Boolean) xpath.evaluate("optinal", node, XPathConstants.BOOLEAN); String scope = xpath.evaluate("scope", node); if (scope != null && scope.length() > 0) { - this.scope = Scope.valueOf(scope.toUpperCase()); + this.scope = Scope.valueOf(scope.toUpperCase(Locale.ROOT)); } NodeList evaluate = (NodeList) xpath.evaluate("//dependencies/dependency", doc, XPathConstants.NODESET); diff --git a/biz.aQute.bndlib/src/aQute/bnd/maven/support/MavenEntry.java b/biz.aQute.bndlib/src/aQute/bnd/maven/support/MavenEntry.java index f4ada10974..2a9800d072 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/maven/support/MavenEntry.java +++ b/biz.aQute.bndlib/src/aQute/bnd/maven/support/MavenEntry.java @@ -9,6 +9,7 @@ import java.net.URL; import java.security.MessageDigest; import java.util.HashMap; +import java.util.Locale; import java.util.Map; import java.util.Properties; import java.util.concurrent.FutureTask; @@ -305,9 +306,9 @@ private boolean verify(URI repo, String path, String algorithm) throws Exception IO.copy(actualFile, md); byte[] digest = md.digest(); String source = IO.collect(digestFile) - .toUpperCase(); + .toUpperCase(Locale.ROOT); String hex = Hex.toHexString(digest) - .toUpperCase(); + .toUpperCase(Locale.ROOT); if (source.startsWith(hex)) { System.err.println("Verified ok " + actualFile + " digest " + algorithm); return true; diff --git a/biz.aQute.bndlib/src/aQute/bnd/osgi/Analyzer.java b/biz.aQute.bndlib/src/aQute/bnd/osgi/Analyzer.java index 4736c89d9d..9d9ac8efc0 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/osgi/Analyzer.java +++ b/biz.aQute.bndlib/src/aQute/bnd/osgi/Analyzer.java @@ -2841,7 +2841,7 @@ public Collection getClasses(String... args) throws Exception { Set matched = new HashSet<>(classspace.values()); for (int i = 1; i < args.length; i++) { - String typeName = args[i].toUpperCase(); + String typeName = args[i].toUpperCase(Locale.ROOT); Clazz.QUERY type; switch (typeName) { case "EXTENDING" : @@ -2894,7 +2894,7 @@ public Collection getPackages(Packages scope, String... args) throws queryType = null; instr = null; } else if (args.length >= 2) { - queryType = Packages.QUERY.valueOf(args[1].toUpperCase()); + queryType = Packages.QUERY.valueOf(args[1].toUpperCase(Locale.ROOT)); if (args.length > 2) instr = new Instruction(args[2]); else @@ -3612,7 +3612,7 @@ public boolean check(Check key) { break; } - Check c = Check.valueOf(k.toUpperCase() + Check c = Check.valueOf(k.toUpperCase(Locale.ROOT) .replace('-', '_')); checks.add(c); diff --git a/biz.aQute.bndlib/src/aQute/bnd/osgi/AnnotationHeaders.java b/biz.aQute.bndlib/src/aQute/bnd/osgi/AnnotationHeaders.java index b4c6410287..368eb37150 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/osgi/AnnotationHeaders.java +++ b/biz.aQute.bndlib/src/aQute/bnd/osgi/AnnotationHeaders.java @@ -467,8 +467,8 @@ private void handleAttributeOrDirective(Annotation a) { .getFQN() .equals(STD_REQUIREMENT_RESOLUTION)) { - o = String.valueOf(o) - .toLowerCase(); + o = o.toString() + .toLowerCase(Locale.ROOT); } attributesAndDirectives.putTyped(attributeName, o); @@ -518,14 +518,14 @@ private Object getOrDefault(MethodDef method) { object = current.getClassName(); } - String returnFQN = method.getType() - .getFQN(); - - if ((object != null) && (returnFQN.equals(CARDINALITY) || returnFQN.equals(RESOLUTION) - || returnFQN.equals(STD_REQUIREMENT_CARDINALITY) || returnFQN.equals(STD_REQUIREMENT_RESOLUTION))) { - - object = String.valueOf(object) - .toLowerCase(); + if (object != null) { + String returnFQN = method.getType() + .getFQN(); + if ((returnFQN.equals(CARDINALITY) || returnFQN.equals(RESOLUTION) + || returnFQN.equals(STD_REQUIREMENT_CARDINALITY) || returnFQN.equals(STD_REQUIREMENT_RESOLUTION))) { + object = object.toString() + .toLowerCase(Locale.ROOT); + } } return object; diff --git a/biz.aQute.bndlib/src/aQute/bnd/osgi/Builder.java b/biz.aQute.bndlib/src/aQute/bnd/osgi/Builder.java index cb6a27e5c2..0fbb191ece 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/osgi/Builder.java +++ b/biz.aQute.bndlib/src/aQute/bnd/osgi/Builder.java @@ -17,6 +17,7 @@ import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.Objects; @@ -1938,7 +1939,7 @@ public String _githead(String[] args) throws IOException { } } return content.trim() - .toUpperCase(); + .toUpperCase(Locale.ROOT); } /** diff --git a/biz.aQute.bndlib/src/aQute/bnd/osgi/Domain.java b/biz.aQute.bndlib/src/aQute/bnd/osgi/Domain.java index 6056ac7f5a..dfeafe7f37 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/osgi/Domain.java +++ b/biz.aQute.bndlib/src/aQute/bnd/osgi/Domain.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.io.InputStream; import java.util.Iterator; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.Properties; @@ -34,13 +35,13 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipException; +import aQute.bnd.exceptions.Exceptions; import aQute.bnd.header.Attrs; import aQute.bnd.header.OSGiHeader; import aQute.bnd.header.Parameters; import aQute.bnd.maven.PomParser; import aQute.bnd.version.Version; import aQute.lib.converter.Converter; -import aQute.bnd.exceptions.Exceptions; import aQute.lib.io.ByteBufferInputStream; import aQute.lib.io.IO; import aQute.lib.utf8properties.UTF8Properties; @@ -518,7 +519,7 @@ public static Domain domain(File file) throws IOException { } } catch (ZipException e) { if (file.getName() - .toLowerCase() + .toLowerCase(Locale.ROOT) .endsWith(".jar")) throw new ZipException("invalid jar format: " + file); } diff --git a/biz.aQute.bndlib/src/aQute/bnd/osgi/Macro.java b/biz.aQute.bndlib/src/aQute/bnd/osgi/Macro.java index 45c765a8b0..1f08112e06 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/osgi/Macro.java +++ b/biz.aQute.bndlib/src/aQute/bnd/osgi/Macro.java @@ -1972,7 +1972,7 @@ private String toString(double eval) { public String _toupper(String[] args) throws Exception { verifyCommand(args, _tolowerHelp, null, 2, 2); - return args[1].toUpperCase(); + return args[1].toUpperCase(Locale.ROOT); } static final String _tolowerHelp = "${tolower;}"; @@ -1980,7 +1980,7 @@ public String _toupper(String[] args) throws Exception { public String _tolower(String[] args) throws Exception { verifyCommand(args, _tolowerHelp, null, 2, 2); - return args[1].toLowerCase(); + return args[1].toLowerCase(Locale.ROOT); } static final String _compareHelp = "${compare;;}"; diff --git a/biz.aQute.bndlib/src/aQute/bnd/osgi/OSInformation.java b/biz.aQute.bndlib/src/aQute/bnd/osgi/OSInformation.java index 166f720f74..e1f78c6d06 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/osgi/OSInformation.java +++ b/biz.aQute.bndlib/src/aQute/bnd/osgi/OSInformation.java @@ -355,7 +355,7 @@ public static OSNameVersion getOperatingSystemAliases(String sysPropOsName, Stri nc.osversion = convertUnixKernelVersion(sysPropOsVersion); nc.osnames = "MacOSX,Mac OS X"; return nc; - } else if (sysPropOsName.toLowerCase() + } else if (sysPropOsName.toLowerCase(Locale.ROOT) .startsWith("linux")) { nc.osversion = convertUnixKernelVersion(sysPropOsVersion); nc.osnames = "Linux"; diff --git a/biz.aQute.bndlib/src/aQute/bnd/osgi/PermissionGenerator.java b/biz.aQute.bndlib/src/aQute/bnd/osgi/PermissionGenerator.java index e7721390c6..9ea88a48d0 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/osgi/PermissionGenerator.java +++ b/biz.aQute.bndlib/src/aQute/bnd/osgi/PermissionGenerator.java @@ -5,6 +5,7 @@ import java.util.Collections; import java.util.EnumSet; import java.util.HashSet; +import java.util.Locale; import java.util.Objects; import java.util.Set; import java.util.TreeSet; @@ -186,7 +187,7 @@ private static EnumSet parseParams(Builder builder, final String... a EnumSet parameters = EnumSet.noneOf(Parameter.class); // Skip the key name, so start at index 1 for (int ix = 1; ix < args.length; ix++) { - String name = args[ix].toUpperCase(); + String name = args[ix].toUpperCase(Locale.ROOT); try { parameters.add(Parameter.valueOf(name)); } catch (IllegalArgumentException ex) { diff --git a/biz.aQute.bndlib/src/aQute/bnd/osgi/Processor.java b/biz.aQute.bndlib/src/aQute/bnd/osgi/Processor.java index 6b454c87ac..3a62dffa87 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/osgi/Processor.java +++ b/biz.aQute.bndlib/src/aQute/bnd/osgi/Processor.java @@ -951,7 +951,7 @@ public void doIncludeFile(File file, boolean overwrite, Properties target, Strin updateModified(file.lastModified(), file.toString()); Properties sub; if (file.getName() - .toLowerCase() + .toLowerCase(Locale.ROOT) .endsWith(".mf")) { try (InputStream in = IO.stream(file)) { sub = getManifestAsProperties(in); diff --git a/biz.aQute.bndlib/src/aQute/bnd/osgi/Verifier.java b/biz.aQute.bndlib/src/aQute/bnd/osgi/Verifier.java index 5b5f2e96e5..bb05961cf1 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/osgi/Verifier.java +++ b/biz.aQute.bndlib/src/aQute/bnd/osgi/Verifier.java @@ -7,6 +7,7 @@ import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.Optional; @@ -307,7 +308,7 @@ public void doNative(String nc) { if (del == '=') value = qt.nextToken(); - String key = name.toLowerCase(); + String key = name.toLowerCase(Locale.ROOT); if (key.equals("osname")) { // ... } else if (key.equals("osversion")) { diff --git a/biz.aQute.bndlib/src/aQute/bnd/resource/repository/ResourceRepositoryImpl.java b/biz.aQute.bndlib/src/aQute/bnd/resource/repository/ResourceRepositoryImpl.java index 550d5e281d..ab8a62c179 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/resource/repository/ResourceRepositoryImpl.java +++ b/biz.aQute.bndlib/src/aQute/bnd/resource/repository/ResourceRepositoryImpl.java @@ -19,6 +19,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.SortedSet; import java.util.TreeSet; @@ -30,6 +31,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import aQute.bnd.exceptions.Exceptions; import aQute.bnd.service.RepositoryPlugin; import aQute.bnd.service.RepositoryPlugin.DownloadListener; import aQute.bnd.service.repository.ResourceRepository; @@ -38,7 +40,6 @@ import aQute.bnd.url.DefaultURLConnectionHandler; import aQute.bnd.version.VersionRange; import aQute.lib.collections.MultiMap; -import aQute.bnd.exceptions.Exceptions; import aQute.lib.hex.Hex; import aQute.lib.io.IO; import aQute.lib.json.JSONCodec; @@ -429,7 +430,7 @@ void download0(URI url, File path, byte[] sha) throws Exception { String deflate = http.getHeaderField("Content-Encoding"); in = http.getInputStream(); - if (deflate != null && deflate.toLowerCase() + if (deflate != null && deflate.toLowerCase(Locale.ROOT) .contains("deflate")) { in = new InflaterInputStream(in); logger.debug("inflate"); diff --git a/biz.aQute.launcher/src/aQute/launcher/SimplePermissionPolicy.java b/biz.aQute.launcher/src/aQute/launcher/SimplePermissionPolicy.java index 18d6097674..fb869f271c 100644 --- a/biz.aQute.launcher/src/aQute/launcher/SimplePermissionPolicy.java +++ b/biz.aQute.launcher/src/aQute/launcher/SimplePermissionPolicy.java @@ -104,7 +104,7 @@ public void setPermissions(Bundle bundle) { public PermissionInfo[] getPermissions(Bundle bundle) { URL url = bundle.getEntry("/OSGI-INF/permissions.perm"); if (url == null) - url = bundle.getEntry("/OSGI-INF/permissions.perm".toUpperCase()); + url = bundle.getEntry("/OSGI-INF/PERMISSIONS.PERM"); PermissionInfo[] info = null; if (url != null) diff --git a/biz.aQute.repository/src/aQute/bnd/deployer/repository/LocalIndexedRepo.java b/biz.aQute.repository/src/aQute/bnd/deployer/repository/LocalIndexedRepo.java index a3e19b35e8..3b43b37e04 100644 --- a/biz.aQute.repository/src/aQute/bnd/deployer/repository/LocalIndexedRepo.java +++ b/biz.aQute.repository/src/aQute/bnd/deployer/repository/LocalIndexedRepo.java @@ -18,6 +18,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.regex.Matcher; @@ -252,7 +253,7 @@ private synchronized void generateIndex(File indexFile, IRepositoryContentProvid MessageDigest md = MessageDigest.getInstance(SHA256.ALGORITHM); md.update(data); IO.store(Hex.toHexString(md.digest()) - .toLowerCase(), shaFile); + .toLowerCase(Locale.ROOT), shaFile); } } diff --git a/biz.aQute.repository/src/aQute/bnd/repository/maven/provider/IndexFile.java b/biz.aQute.repository/src/aQute/bnd/repository/maven/provider/IndexFile.java index 1b24409c76..42bb9a4bd0 100644 --- a/biz.aQute.repository/src/aQute/bnd/repository/maven/provider/IndexFile.java +++ b/biz.aQute.repository/src/aQute/bnd/repository/maven/provider/IndexFile.java @@ -13,6 +13,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.Objects; @@ -321,7 +322,7 @@ private boolean isMulti(String name) { if (multi.isEmpty()) return false; - String[] extension = Strings.extension(name.toLowerCase()); + String[] extension = Strings.extension(name.toLowerCase(Locale.ROOT)); return extension.length == 2 && multi.contains(extension[1]); } diff --git a/biz.aQute.repository/src/aQute/bnd/repository/maven/provider/MavenBndRepository.java b/biz.aQute.repository/src/aQute/bnd/repository/maven/provider/MavenBndRepository.java index bac037de84..ebf0dc5707 100644 --- a/biz.aQute.repository/src/aQute/bnd/repository/maven/provider/MavenBndRepository.java +++ b/biz.aQute.repository/src/aQute/bnd/repository/maven/provider/MavenBndRepository.java @@ -954,7 +954,7 @@ private File trySources(String sourceBsn, Version version, DownloadListener... l } public File getIndexFile() { - return IO.getFile(base, configuration.index(name.toLowerCase() + ".mvn")); + return IO.getFile(base, configuration.index(name.toLowerCase(Locale.ROOT) + ".mvn")); } public Set getArchives() { diff --git a/biz.aQute.repository/src/aQute/maven/api/MavenScope.java b/biz.aQute.repository/src/aQute/maven/api/MavenScope.java index 9aa7ec61af..3b055c2cc4 100644 --- a/biz.aQute.repository/src/aQute/maven/api/MavenScope.java +++ b/biz.aQute.repository/src/aQute/maven/api/MavenScope.java @@ -1,5 +1,7 @@ package aQute.maven.api; +import java.util.Locale; + public enum MavenScope { /** * compile - this is the default scope, used if none is specified. Compile @@ -48,7 +50,7 @@ public boolean isTransitive() { } public static MavenScope getScope(String scope) { - switch (scope.toLowerCase()) { + switch (scope.toLowerCase(Locale.ROOT)) { case "import" : return MavenScope.import_; diff --git a/biz.aQute.repository/src/aQute/maven/provider/POM.java b/biz.aQute.repository/src/aQute/maven/provider/POM.java index 0af9aff8ea..bd38866bb1 100644 --- a/biz.aQute.repository/src/aQute/maven/provider/POM.java +++ b/biz.aQute.repository/src/aQute/maven/provider/POM.java @@ -11,6 +11,7 @@ import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.Properties; @@ -112,7 +113,8 @@ private static InputStream processEntities(ByteBuffer bb) { for (int j = i + 1; j < jlimit; j++) { c = (char) array[j]; if (c == ';') { - String entity = new String(array, i + 1, j - (i + 1), StandardCharsets.US_ASCII).toLowerCase(); + String entity = new String(array, i + 1, j - (i + 1), StandardCharsets.US_ASCII) + .toLowerCase(Locale.ROOT); switch (entity) { case "lt" : case "gt" : diff --git a/biz.aQute.repository/test/aQute/bnd/deployer/repository/CachingUriResourceHandlerTest.java b/biz.aQute.repository/test/aQute/bnd/deployer/repository/CachingUriResourceHandlerTest.java index e61b236dc8..4b7593b23d 100644 --- a/biz.aQute.repository/test/aQute/bnd/deployer/repository/CachingUriResourceHandlerTest.java +++ b/biz.aQute.repository/test/aQute/bnd/deployer/repository/CachingUriResourceHandlerTest.java @@ -10,6 +10,7 @@ import java.net.URLEncoder; import java.util.Arrays; import java.util.List; +import java.util.Locale; import org.junit.jupiter.api.Test; @@ -20,7 +21,7 @@ public class CachingUriResourceHandlerTest { private static final String EXPECTED_SHA = "d0002141a722ef03ecd8fd2e0d3e4d3bc680ba91483cb4962f68a41a12dd01ab" - .toUpperCase(); + .toUpperCase(Locale.ROOT); static File currentDir = new File(System.getProperty("user.dir")); diff --git a/biz.aQute.repository/test/aQute/bnd/repository/p2/provider/P2IndexerTest.java b/biz.aQute.repository/test/aQute/bnd/repository/p2/provider/P2IndexerTest.java index 9458908c4d..43dc2afc30 100644 --- a/biz.aQute.repository/test/aQute/bnd/repository/p2/provider/P2IndexerTest.java +++ b/biz.aQute.repository/test/aQute/bnd/repository/p2/provider/P2IndexerTest.java @@ -9,6 +9,7 @@ import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Locale; import java.util.Set; import java.util.concurrent.Semaphore; import java.util.concurrent.atomic.AtomicReference; @@ -89,7 +90,7 @@ public void testFile() throws Throwable { .getRepository(); RequirementBuilder rb = new RequirementBuilder("osgi.content"); - rb.addDirective("filter", "(osgi.content~=" + sha256.toLowerCase() + ")"); + rb.addDirective("filter", "(osgi.content~=" + sha256.toLowerCase(Locale.ROOT) + ")"); Requirement req = rb.synthetic(); Collection collection = repository.findProviders(Collections.singleton(req)) @@ -204,7 +205,7 @@ public void testTargetPlatform() throws Throwable { .getRepository(); RequirementBuilder rb = new RequirementBuilder("osgi.content"); - rb.addDirective("filter", "(osgi.content~=" + sha256.toLowerCase() + ")"); + rb.addDirective("filter", "(osgi.content~=" + sha256.toLowerCase(Locale.ROOT) + ")"); Requirement req = rb.synthetic(); Collection collection = repository.findProviders(Collections.singleton(req)) diff --git a/biz.aQute.repository/test/aQute/maven/provider/RemoteRepoTest.java b/biz.aQute.repository/test/aQute/maven/provider/RemoteRepoTest.java index 70c862f8b6..6754862d8b 100644 --- a/biz.aQute.repository/test/aQute/maven/provider/RemoteRepoTest.java +++ b/biz.aQute.repository/test/aQute/maven/provider/RemoteRepoTest.java @@ -7,6 +7,7 @@ import java.io.File; import java.util.Arrays; +import java.util.Locale; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -162,7 +163,7 @@ public void testLowercaseChecksum() throws Exception { remoteFoobar.getParentFile() .mkdirs(); IO.store("bla", remoteFoobar); - IO.store(" FFA6706FF2127A749973072756F83C532E43ED02\r\n".toLowerCase(), remoteFoobarSha1); + IO.store(" FFA6706FF2127A749973072756F83C532E43ED02\r\n".toLowerCase(Locale.ROOT), remoteFoobarSha1); assertEquals(State.UPDATED, repo.fetch("foo/bar", localFoobar) .getState()); diff --git a/biz.aQute.repository/test/test/lib/NanoHTTPD.java b/biz.aQute.repository/test/test/lib/NanoHTTPD.java index d5e4229442..e6f795c0cd 100644 --- a/biz.aQute.repository/test/test/lib/NanoHTTPD.java +++ b/biz.aQute.repository/test/test/lib/NanoHTTPD.java @@ -306,7 +306,7 @@ else if (args[i].equalsIgnoreCase("--keyStore")) keyStoreFile = new File(args[i + 1]).getAbsoluteFile(); else if (args[i].equalsIgnoreCase("--keyStorePass")) keyStorePass = args[i + 1]; - else if (args[i].toLowerCase() + else if (args[i].toLowerCase(Locale.ROOT) .endsWith("licence")) { myOut.println(LICENCE + "\n"); break; @@ -540,7 +540,7 @@ private void decodeHeader(BufferedReader in, Properties pre, Properties parms, P if (p >= 0) header.put(line.substring(0, p) .trim() - .toLowerCase(), + .toLowerCase(Locale.ROOT), line.substring(p + 1) .trim()); line = in.readLine(); @@ -576,7 +576,7 @@ private void decodeMultipartData(String boundary, byte[] fbuf, BufferedReader in if (p != -1) item.put(mpline.substring(0, p) .trim() - .toLowerCase(), + .toLowerCase(Locale.ROOT), mpline.substring(p + 1) .trim()); mpline = in.readLine(); @@ -595,7 +595,7 @@ private void decodeMultipartData(String boundary, byte[] fbuf, BufferedReader in if (p != -1) disposition.put(token.substring(0, p) .trim() - .toLowerCase(), + .toLowerCase(Locale.ROOT), token.substring(p + 1) .trim()); } @@ -950,7 +950,7 @@ else if (len < 1024 * 1024) if (dot >= 0) mime = theMimeTypes.get(f.getCanonicalPath() .substring(dot + 1) - .toLowerCase()); + .toLowerCase(Locale.ROOT)); if (mime == null) mime = MIME_DEFAULT_BINARY; diff --git a/bndtools.core/src/bndtools/editor/contents/GeneralInfoPart.java b/bndtools.core/src/bndtools/editor/contents/GeneralInfoPart.java index ccd9f54550..be30a29843 100644 --- a/bndtools.core/src/bndtools/editor/contents/GeneralInfoPart.java +++ b/bndtools.core/src/bndtools/editor/contents/GeneralInfoPart.java @@ -8,6 +8,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Set; import org.bndtools.api.ILogger; @@ -297,8 +298,8 @@ protected List doGenerateProposals(String contents, int positi ITypeHierarchy hierarchy = activatorType.newTypeHierarchy(javaProject, monitor); for (IType subType : hierarchy.getAllSubtypes(activatorType)) { if (!Flags.isAbstract(subType.getFlags()) && subType.getElementName() - .toLowerCase() - .contains(prefix.toLowerCase())) { + .toLowerCase(Locale.ROOT) + .contains(prefix.toLowerCase(Locale.ROOT))) { result.add(new JavaTypeContentProposal(subType)); } } @@ -327,8 +328,8 @@ protected List doGenerateProposals(String contents, int positi protected boolean match(String contents, int position, IContentProposal proposal) { String prefix = contents.substring(0, position); return ((JavaTypeContentProposal) proposal).getTypeName() - .toLowerCase() - .startsWith(prefix.toLowerCase()); + .toLowerCase(Locale.ROOT) + .startsWith(prefix.toLowerCase(Locale.ROOT)); } } } diff --git a/bndtools.core/src/bndtools/editor/pkgpatterns/PkgPatternsProposalProvider.java b/bndtools.core/src/bndtools/editor/pkgpatterns/PkgPatternsProposalProvider.java index 25501d11b0..1465ccb2ad 100644 --- a/bndtools.core/src/bndtools/editor/pkgpatterns/PkgPatternsProposalProvider.java +++ b/bndtools.core/src/bndtools/editor/pkgpatterns/PkgPatternsProposalProvider.java @@ -4,6 +4,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Comparator; +import java.util.Locale; import java.util.TreeSet; import org.bndtools.api.ILogger; @@ -114,8 +115,8 @@ protected boolean match(String contents, int position, IContentProposal proposal final String prefix = contents.substring(0, position); return ((PkgPatternProposal) proposal).getPackageFragment() .getElementName() - .toLowerCase() - .indexOf(prefix.toLowerCase()) > -1; + .toLowerCase(Locale.ROOT) + .indexOf(prefix.toLowerCase(Locale.ROOT)) > -1; } } diff --git a/bndtools.core/src/bndtools/refactor/PkgRenameParticipant.java b/bndtools.core/src/bndtools/refactor/PkgRenameParticipant.java index 7cae3abea3..d02a39a5ba 100644 --- a/bndtools.core/src/bndtools/refactor/PkgRenameParticipant.java +++ b/bndtools.core/src/bndtools/refactor/PkgRenameParticipant.java @@ -6,6 +6,7 @@ import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.Set; @@ -103,7 +104,7 @@ public Change createChange(IProgressMonitor pm) throws CoreException, OperationC } if (!((proxy.getType() == IResource.FILE) && proxy.getName() - .toLowerCase() + .toLowerCase(Locale.ROOT) .endsWith(".bnd"))) { return false; } diff --git a/bndtools.core/src/bndtools/views/resolution/ResolutionView.java b/bndtools.core/src/bndtools/views/resolution/ResolutionView.java index b4fda82d77..6adc7b9360 100644 --- a/bndtools.core/src/bndtools/views/resolution/ResolutionView.java +++ b/bndtools.core/src/bndtools/views/resolution/ResolutionView.java @@ -6,6 +6,7 @@ import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Set; @@ -151,11 +152,11 @@ private boolean setLoaders(Set newLoaders) { private CapReqLoader getLoaderForFile(File file) { CapReqLoader loader; if (file.getName() - .toLowerCase() + .toLowerCase(Locale.ROOT) .endsWith(".bnd")) { loader = new BndFileCapReqLoader(file); } else if (file.getName() - .toLowerCase() + .toLowerCase(Locale.ROOT) .endsWith(".jar")) { loader = new JarFileCapReqLoader(file); } else { diff --git a/bndtools.core/src/bndtools/wizards/repo/RepoBundleSelectionWizardPage.java b/bndtools.core/src/bndtools/wizards/repo/RepoBundleSelectionWizardPage.java index 73ecf01619..c6dd9aa604 100644 --- a/bndtools.core/src/bndtools/wizards/repo/RepoBundleSelectionWizardPage.java +++ b/bndtools.core/src/bndtools/wizards/repo/RepoBundleSelectionWizardPage.java @@ -7,6 +7,7 @@ import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import org.bndtools.api.ILogger; @@ -73,7 +74,7 @@ public boolean select(Viewer viewer, Object parentElement, Object element) { String search = selectionSearchTxt .getText() - .toLowerCase(); + .toLowerCase(Locale.ROOT); String bsn = null; if (element instanceof RepositoryBundle) { @@ -86,7 +87,7 @@ public boolean select(Viewer viewer, if (bsn != null) { if (search.length() > 0 - && bsn.toLowerCase() + && bsn.toLowerCase(Locale.ROOT) .indexOf(search) == -1) { return false; } diff --git a/bndtools.core/test/org/bndtools/core/templating/repobased/ReposTemplateLoaderTest.java b/bndtools.core/test/org/bndtools/core/templating/repobased/ReposTemplateLoaderTest.java index 58bcbe0f25..8806dad698 100644 --- a/bndtools.core/test/org/bndtools/core/templating/repobased/ReposTemplateLoaderTest.java +++ b/bndtools.core/test/org/bndtools/core/templating/repobased/ReposTemplateLoaderTest.java @@ -9,6 +9,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; @@ -96,7 +97,7 @@ public void testProcessTemplate() throws Exception { byte[] digest = digestStream.getMessageDigest() .digest(); assertEquals("ea5d770bc2deddb1f9a20df3ad337bdc1490ba7b35fa41c33aa4e9a534e82ada", Hex.toHexString(digest) - .toLowerCase()); + .toLowerCase(Locale.ROOT)); entry = iter.next(); assertEquals("src/main/java/", entry.getKey()); @@ -146,7 +147,7 @@ public void testAlternateDelimiters() throws Exception { byte[] digest = digestStream.getMessageDigest() .digest(); assertEquals("ea5d770bc2deddb1f9a20df3ad337bdc1490ba7b35fa41c33aa4e9a534e82ada", Hex.toHexString(digest) - .toLowerCase()); + .toLowerCase(Locale.ROOT)); entry = iter.next(); assertEquals("src/main/java/", entry.getKey()); @@ -212,7 +213,7 @@ public void testExtendUnprocessedPatternAndIgnore() throws Exception { byte[] digest = digestStream.getMessageDigest() .digest(); assertEquals("ea5d770bc2deddb1f9a20df3ad337bdc1490ba7b35fa41c33aa4e9a534e82ada", Hex.toHexString(digest) - .toLowerCase()); + .toLowerCase(Locale.ROOT)); } } diff --git a/bndtools.jareditor/src/bndtools/jareditor/internal/JARPrintPage.java b/bndtools.jareditor/src/bndtools/jareditor/internal/JARPrintPage.java index a76057e99d..a7e6fff363 100644 --- a/bndtools.jareditor/src/bndtools/jareditor/internal/JARPrintPage.java +++ b/bndtools.jareditor/src/bndtools/jareditor/internal/JARPrintPage.java @@ -7,6 +7,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.Locale; import java.util.concurrent.CopyOnWriteArrayList; import org.eclipse.core.filesystem.EFS; @@ -342,8 +343,8 @@ private List findOccurances(String content, String findText) { if (findText == null || findText.isEmpty()) return Collections.emptyList(); - content = content.toLowerCase(); - findText = findText.toLowerCase(); + content = content.toLowerCase(Locale.ROOT); + findText = findText.toLowerCase(Locale.ROOT); List indexes = new ArrayList<>(); int index = 0; int wordLength = 0; diff --git a/bndtools.release/src/bndtools/release/ui/InfoLabelProvider.java b/bndtools.release/src/bndtools/release/ui/InfoLabelProvider.java index d9c4d49133..5c712a3942 100644 --- a/bndtools.release/src/bndtools/release/ui/InfoLabelProvider.java +++ b/bndtools.release/src/bndtools/release/ui/InfoLabelProvider.java @@ -1,5 +1,7 @@ package bndtools.release.ui; +import java.util.Locale; + import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.swt.graphics.Image; @@ -32,14 +34,14 @@ public Image getImage(Object element) { } return BundleTreeImages.resolveImage("bundle", apiDiff.getDelta() //$NON-NLS-1$ .toString() - .toLowerCase(), null, null); + .toLowerCase(Locale.ROOT), null, null); } if (element instanceof Info) { Info tree = (Info) element; String type = "package"; //$NON-NLS-1$ String delta = "changed" + '_' + tree.packageDiff.getDelta() //$NON-NLS-1$ .toString() - .toLowerCase(); + .toLowerCase(Locale.ROOT); String impExp = "export"; //$NON-NLS-1$ return BundleTreeImages.resolveImage(type, delta, impExp, null); } diff --git a/bndtools.release/src/bndtools/release/ui/TreeLabelProvider.java b/bndtools.release/src/bndtools/release/ui/TreeLabelProvider.java index 8f4ef324c6..10dc4916a2 100644 --- a/bndtools.release/src/bndtools/release/ui/TreeLabelProvider.java +++ b/bndtools.release/src/bndtools/release/ui/TreeLabelProvider.java @@ -1,5 +1,7 @@ package bndtools.release.ui; +import java.util.Locale; + import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.swt.graphics.Image; @@ -56,13 +58,13 @@ public Image getImage(Object element) { return BundleTreeImages.resolveImage("bundle", ((Baseline) element).getDiff() //$NON-NLS-1$ .getDelta() .toString() - .toLowerCase(), null, null); + .toLowerCase(Locale.ROOT), null, null); } if (element instanceof Diff) { Diff tree = (Diff) element; String type = tree.getType() .toString() - .toLowerCase(); + .toLowerCase(Locale.ROOT); String strDelta = getDeltaString(tree); String impExp = null; @@ -81,7 +83,7 @@ public Image getImage(Object element) { Tree tree = (Tree) element; String type = tree.getType() .toString() - .toLowerCase(); + .toLowerCase(Locale.ROOT); String impExp = null; if (tree.getType() == Type.PACKAGE) { impExp = "export"; //$NON-NLS-1$ @@ -100,7 +102,7 @@ public Image getImage(Object element) { private static String getDeltaString(Diff diff) { return diff.getDelta() .toString() - .toLowerCase(); + .toLowerCase(Locale.ROOT); } }