Hi All, Forgot to mention these are IDE warnings I am trying to fix, need a sponsor for this.
Regards, Vipin > On May 3, 2020, at 8:40 PM, Vipin Sharma <vipinsharm...@gmail.com> wrote: > > Hi All, > > I have fixed some warnings in java.base module, following are 3 type of code > changes in this patch: > > ! stream().filter(...).findFirst().isPresent() replaced with > stream().noneMatch(...)) > stream.filter(...).findFirst().isPresent() replaced with stream.anyMatch(...) > stream.collect(Collectors.joining(",")) replaced with String.join(",", > stringList) > > This patch improves performance as well, jmh results available at > https://gist.github.com/Vipin-Sharma/00f1d6da6b8e0e0bc7bec2e33bce85ed > <https://gist.github.com/Vipin-Sharma/00f1d6da6b8e0e0bc7bec2e33bce85ed>, end > of gist file you can see results. Need a sponsor for this patch. > > Patch: > > --- old/src/java.base/share/classes/java/lang/invoke/MethodHandles.java > 2020-05-03 19:44:09.519289354 +0530 > +++ new/src/java.base/share/classes/java/lang/invoke/MethodHandles.java > 2020-05-03 19:44:09.087294954 +0530 > @@ -6349,7 +6349,7 @@ > loopReturnType + ")"); > } > > - if (!pred.stream().filter(Objects::nonNull).findFirst().isPresent()) > { > + if (pred.stream().noneMatch(Objects::nonNull)) { > throw newIllegalArgumentException("no predicate found", pred); > } > if > (pred.stream().filter(Objects::nonNull).map(MethodHandle::type).map(MethodType::returnType). > --- old/src/java.base/share/classes/java/util/Locale.java 2020-05-03 > 19:44:10.915271183 +0530 > +++ new/src/java.base/share/classes/java/util/Locale.java 2020-05-03 > 19:44:10.487276766 +0530 > @@ -1,5 +1,5 @@ > /* > - * Copyright (c) 1996, 2019, Oracle and/or its affiliates. All rights > reserved. > + * Copyright (c) 1996, 2020, 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 > @@ -2250,7 +2250,7 @@ > // If we have no list patterns, compose the list in a simple, > // non-localized way. > if (pattern == null) { > - return > Arrays.stream(stringList).collect(Collectors.joining(",")); > + return String.join(",", stringList); > } > > switch (stringList.length) { > --- old/src/java.base/share/classes/jdk/internal/module/DefaultRoots.java > 2020-05-03 19:44:11.911258115 +0530 > +++ new/src/java.base/share/classes/jdk/internal/module/DefaultRoots.java > 2020-05-03 19:44:11.479263786 +0530 > @@ -1,5 +1,5 @@ > /* > - * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights > reserved. > + * Copyright (c) 2017, 2020, 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 > @@ -74,8 +74,6 @@ > private static boolean exportsAPI(ModuleDescriptor descriptor) { > return descriptor.exports() > .stream() > - .filter(e -> !e.isQualified()) > - .findAny() > - .isPresent(); > + .anyMatch(e -> !e.isQualified()); > } > } > --- old/src/java.base/share/classes/sun/launcher/LauncherHelper.java > 2020-05-03 19:44:12.863245549 +0530 > +++ new/src/java.base/share/classes/sun/launcher/LauncherHelper.java > 2020-05-03 19:44:12.427251308 +0530 > @@ -1142,7 +1142,7 @@ > ostream.format("uses %s%n", s); > } > for (Provides ps : md.provides()) { > - String names = > ps.providers().stream().collect(Collectors.joining(" ")); > + String names = String.join(" ", ps.providers()); > ostream.format("provides %s with %s%n", ps.service(), names); > > } > @@ -1150,7 +1150,7 @@ > // qualified exports > for (Exports e : md.exports()) { > if (e.isQualified()) { > - String who = > e.targets().stream().collect(Collectors.joining(" ")); > + String who = String.join(" ", e.targets()); > ostream.format("qualified exports %s to %s%n", e.source(), > who); > } > } > @@ -1164,7 +1164,7 @@ > .collect(Collectors.joining(" ")); > ostream.format("opens %s", sourceAndMods); > if (opens.isQualified()) { > - String who = > opens.targets().stream().collect(Collectors.joining(" ")); > + String who = String.join(" ", opens.targets()); > ostream.format(" to %s", who); > } > ostream.println(); > --- old/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/JShellTool.java > 2020-05-03 19:44:14.143228540 +0530 > +++ new/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/JShellTool.java > 2020-05-03 19:44:13.711234292 +0530 > @@ -380,7 +380,7 @@ > return parse(oset); > } catch (OptionException ex) { > if (ex.options().isEmpty()) { > - msg("jshell.err.opt.invalid", > stream(args).collect(joining(", "))); > + msg("jshell.err.opt.invalid", String.join(", ", args)); > } else { > boolean isKnown = > parser.recognizedOptions().containsKey(ex.options().iterator().next()); > msg(isKnown > @@ -2041,16 +2041,14 @@ > if (matches.length == 0) { > // There are no matching sub-commands > errormsg("jshell.err.arg", cmd, sub); > - fluffmsg("jshell.msg.use.one.of", Arrays.stream(subs) > - .collect(Collectors.joining(", ")) > + fluffmsg("jshell.msg.use.one.of", String.join(", ", subs) > ); > return null; > } > if (matches.length > 1) { > // More than one sub-command matches the initial characters > provided > errormsg("jshell.err.sub.ambiguous", cmd, sub); > - fluffmsg("jshell.msg.use.one.of", Arrays.stream(matches) > - .collect(Collectors.joining(", ")) > + fluffmsg("jshell.msg.use.one.of", String.join(", ", matches) > ); > return null; > } > > > Regards, > Vipin