Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

8274755: Replace 'while' cycles with iterator with enhanced-for in jdk.jdi #5577

Conversation

turbanoff
Copy link
Member

@turbanoff turbanoff commented Sep 18, 2021

There are few places in code where manual while loop is used with Iterator to iterate over Collection.
Instead of manual while cycles it's preferred to use enhanced-for cycle instead: it's less verbose, makes code easier to read and it's less error-prone.
It doesn't have any performance impact: java compiler generates similar code when compiling enhanced-for cycle.

Similar cleanups:


Progress

  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • Change must be properly reviewed

Issue

  • JDK-8274755: Replace 'while' cycles with iterator with enhanced-for in jdk.jdi

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/jdk pull/5577/head:pull/5577
$ git checkout pull/5577

Update a local copy of the PR:
$ git checkout pull/5577
$ git pull https://git.openjdk.java.net/jdk pull/5577/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 5577

View PR using the GUI difftool:
$ git pr show -t 5577

Using diff file

Download this PR as a diff file:
https://git.openjdk.java.net/jdk/pull/5577.diff

@bridgekeeper
Copy link

@bridgekeeper bridgekeeper bot commented Sep 18, 2021

👋 Welcome back turbanoff! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk
Copy link

@openjdk openjdk bot commented Sep 18, 2021

@turbanoff The following label will be automatically applied to this pull request:

  • serviceability

When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command.

@openjdk openjdk bot added the serviceability label Sep 18, 2021
@turbanoff turbanoff changed the title [PATCH] Replace 'while' cycles with iterator with enhanced-for in jdk.jdi 8274755: Replace 'while' cycles with iterator with enhanced-for in jdk.jdi Oct 5, 2021
@openjdk openjdk bot added the rfr label Oct 5, 2021
@mlbridge
Copy link

@mlbridge mlbridge bot commented Oct 5, 2021

Webrevs

Copy link
Contributor

@AlanBateman AlanBateman left a comment

This code pre-dates for-each, the changes look okay.

@openjdk
Copy link

@openjdk openjdk bot commented Oct 5, 2021

@turbanoff This change now passes all automated pre-integration checks.

ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details.

After integration, the commit message for the final commit will be:

8274755: Replace 'while' cycles with iterator with enhanced-for in jdk.jdi

Reviewed-by: alanb, amenkov, sspitsyn, cjplummer

You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.

At the time when this comment was updated there had been 242 new commits pushed to the master branch:

  • 4e960fe: 8274497: Unnecessary Vector usage in AquaFileSystemModel
  • c833b4d: 8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern
  • d57fb6f: 8274456: Remove jtreg tag manual=yesno java/awt/print/PrinterJob/PageDialogTest.java
  • 734d1fb: 8274211: Test man page that options are documented
  • 9561fea: 8273102: Delete deprecated for removal the empty finalize() in java.desktop module
  • 9945f7a: 8274318: Replace 'for' cycles with iterator with enhanced-for in java.management
  • 754bc82: 8274525: Replace uses of StringBuffer with StringBuilder in java.xml
  • 4e7d7ca: 8273711: Remove redundant stream() call before forEach in jdk.jlink
  • f3cedbe: 8274464: Remove redundant stream() call before forEach in java.* modules
  • c10de35: 8262944: Improve exception message when automatic module lists provider class not in JAR file
  • ... and 232 more: https://git.openjdk.java.net/jdk/compare/bb9d142759ece7665329b124a8ea0b16049b024a...master

As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.

As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@AlanBateman, @alexmenkov, @sspitsyn, @plummercj) but any other Committer may sponsor as well.

➡️ To flag this PR as ready for integration with the above commit message, type /integrate in a new comment. (Afterwards, your sponsor types /sponsor in a new comment to perform the integration).

@openjdk openjdk bot added the ready label Oct 5, 2021
Copy link
Contributor

@sspitsyn sspitsyn left a comment

Hi Andrey,
It looks good in general but I've inlined one comment.
Also, I need to mention it again that the formatting rules for casts do not require space as in here:
(InterfaceTypeImpl) interfaceType
Additional rule is at least to follow the local style in each file.
There are plenty of such spaces added in this PR.
Could you, please, fix them?
Thanks,
Serguei

@turbanoff
Copy link
Member Author

@turbanoff turbanoff commented Oct 6, 2021

There are plenty of such spaces added in this PR.
Could you, please, fix them?

Thank you for review. Done.

@turbanoff
Copy link
Member Author

@turbanoff turbanoff commented Oct 6, 2021

/integrate

@openjdk openjdk bot added the sponsor label Oct 6, 2021
@openjdk
Copy link

@openjdk openjdk bot commented Oct 6, 2021

@turbanoff
Your change (at version 1de15c2) is now ready to be sponsored by a Committer.

Copy link
Contributor

@sspitsyn sspitsyn left a comment

There are still extra space in the file InvokableTypeImpl.java.

…k.jdi

remove empty space before casts in InvokableTypeImpl too
@turbanoff
Copy link
Member Author

@turbanoff turbanoff commented Oct 6, 2021

There are still extra space in the file InvokableTypeImpl.java.

updated InvokableTypeImpl.java too

@openjdk openjdk bot removed the sponsor label Oct 6, 2021
@plummercj
Copy link
Contributor

@plummercj plummercj commented Oct 6, 2021

I also was going to comment on the space after each cast, but then I went in search of an openjdk java style guide and found this:

http://cr.openjdk.java.net/~alundblad/styleguide/index-v6.html

Which says to use a single space "After the closing parenthesis of a cast". Personally I don't like it, and I don't know if this is an official guide, but it's the only openjdk style guide I could find. I did also find the following, which says the same, but is not specifically for openjdk:

https://google.github.io/styleguide/javaguide.html#s4.6-whitespace

@sspitsyn
Copy link
Contributor

@sspitsyn sspitsyn commented Oct 7, 2021

We had HotSpot convention about it. Not sure where it is located now.
One of the important rules was to follow the file (area) local style if possible.

@sspitsyn
Copy link
Contributor

@sspitsyn sspitsyn commented Oct 7, 2021

/sponsor

@openjdk
Copy link

@openjdk openjdk bot commented Oct 7, 2021

@sspitsyn The PR has been updated since the change author (@turbanoff) issued the integrate command - the author must perform this command again.

@turbanoff
Copy link
Member Author

@turbanoff turbanoff commented Oct 7, 2021

/integrate

@openjdk openjdk bot added the sponsor label Oct 7, 2021
@openjdk
Copy link

@openjdk openjdk bot commented Oct 7, 2021

@turbanoff
Your change (at version 669f2a3) is now ready to be sponsored by a Committer.

@sspitsyn
Copy link
Contributor

@sspitsyn sspitsyn commented Oct 7, 2021

/sponsor

@openjdk
Copy link

@openjdk openjdk bot commented Oct 7, 2021

Going to push as commit d5ccfa2.
Since your change was applied there have been 244 commits pushed to the master branch:

  • 29dcbb7: 8274716: JDWP Spec: the description for the Dispose command confuses suspend with resume.
  • 5762ec2: 8274780: ChannelInputStream.readNBytes(int) incorrectly calls readAllBytes()
  • 4e960fe: 8274497: Unnecessary Vector usage in AquaFileSystemModel
  • c833b4d: 8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern
  • d57fb6f: 8274456: Remove jtreg tag manual=yesno java/awt/print/PrinterJob/PageDialogTest.java
  • 734d1fb: 8274211: Test man page that options are documented
  • 9561fea: 8273102: Delete deprecated for removal the empty finalize() in java.desktop module
  • 9945f7a: 8274318: Replace 'for' cycles with iterator with enhanced-for in java.management
  • 754bc82: 8274525: Replace uses of StringBuffer with StringBuilder in java.xml
  • 4e7d7ca: 8273711: Remove redundant stream() call before forEach in jdk.jlink
  • ... and 234 more: https://git.openjdk.java.net/jdk/compare/bb9d142759ece7665329b124a8ea0b16049b024a...master

Your commit was automatically rebased without conflicts.

@openjdk openjdk bot closed this Oct 7, 2021
@openjdk openjdk bot added integrated and removed ready rfr sponsor labels Oct 7, 2021
@openjdk
Copy link

@openjdk openjdk bot commented Oct 7, 2021

@sspitsyn @turbanoff Pushed as commit d5ccfa2.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

@turbanoff turbanoff deleted the use_enhanced_for_instead_of_while_in_jdk.jdi branch Feb 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
integrated serviceability
5 participants