Skip to content

8262161: Refactor manual I/O stream copying in java.desktop to use new convenience APIs #1856

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

Conversation

turbanoff
Copy link
Member

@turbanoff turbanoff commented Dec 21, 2020

Cleanup code to use new handy methods in java.io.InputStream/java.nio.file.Files instead of manual stream copy:

  1. java.io.InputStream#readAllBytes
  2. java.io.InputStream#transferTo
  3. java.nio.file.Files#copy

Progress

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

Issue

  • JDK-8262161: Refactor manual I/O stream copying in java.desktop to use new convenience APIs

Reviewers

Download

$ git fetch https://git.openjdk.java.net/jdk pull/1856/head:pull/1856
$ git checkout pull/1856

@bridgekeeper
Copy link

bridgekeeper bot commented Dec 21, 2020

👋 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 bot commented Dec 21, 2020

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

  • 2d
  • awt
  • sound
  • swing

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

@openjdk openjdk bot added 2d client-libs-dev@openjdk.org swing client-libs-dev@openjdk.org sound client-libs-dev@openjdk.org awt client-libs-dev@openjdk.org labels Dec 21, 2020
} catch (FileNotFoundException fnfe) {
notifyEvent(PrintJobEvent.JOB_FAILED);
throw new PrintException(fnfe.toString());
Files.copy(instream, Path.of(mDestination));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like the new code unlike the old one will throw an exception if the file is exists already. WIll it affect the printing functionality?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good catch! Added StandardCopyOption.REPLACE_EXISTING to preserve behavior.

@bridgekeeper
Copy link

bridgekeeper bot commented Jan 31, 2021

@turbanoff This pull request has been inactive for more than 4 weeks and will be automatically closed if another 4 weeks passes without any activity. To avoid this, simply add a new comment to the pull request. Feel free to ask for assistance if you need help with progressing this pull request towards integration!

…in java.desktop

1. update copyright year
2. use REPLACE_EXISTING to avoid exception in case if destination file is already exist
@mrserb
Copy link
Member

mrserb commented Feb 22, 2021

The changes look fine, I'll run the tests.

@mrserb
Copy link
Member

mrserb commented Feb 23, 2021

@turbanoff turbanoff changed the title [PATCH] Refactor manual I/O stream copying to new convinient methods in java.desktop JDK-8262161 Refactor manual I/O stream copying to new convinient methods in java.desktop Feb 23, 2021
@turbanoff turbanoff changed the title JDK-8262161 Refactor manual I/O stream copying to new convinient methods in java.desktop 8262161 Refactor manual I/O stream copying to new convinient methods in java.desktop Feb 23, 2021
@openjdk openjdk bot added the rfr Pull request is ready for review label Feb 23, 2021
@mlbridge
Copy link

mlbridge bot commented Feb 23, 2021

Webrevs

Copy link
Member

@mrserb mrserb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The direct replacement of the old API by the new one looks fine. The tests are green.

@openjdk
Copy link

openjdk bot commented Mar 7, 2021

@turbanoff This PR has not yet been marked as ready for integration.

@turbanoff turbanoff changed the title 8262161 Refactor manual I/O stream copying to new convinient methods in java.desktop 8262161: Refactor manual I/O stream copying to new convinient methods in java.desktop Mar 7, 2021
@turbanoff turbanoff changed the title 8262161: Refactor manual I/O stream copying to new convinient methods in java.desktop 8262161: Refactor manual I/O stream copying in java.desktop to use new convenience APIs Mar 8, 2021
@openjdk
Copy link

openjdk bot commented Mar 8, 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:

8262161: Refactor manual I/O stream copying in java.desktop to use new convenience APIs

Reviewed-by: serb, prr

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 967 new commits pushed to the master branch:

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 (@mrserb, @prrace) 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 Pull request is ready to be integrated label Mar 8, 2021
@turbanoff
Copy link
Member Author

/integrate

@openjdk openjdk bot added the sponsor Pull request is ready to be sponsored label Mar 8, 2021
@openjdk
Copy link

openjdk bot commented Mar 8, 2021

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

@mrserb
Copy link
Member

mrserb commented Mar 9, 2021

/sponsor

@openjdk openjdk bot closed this Mar 9, 2021
@openjdk openjdk bot added integrated Pull request has been integrated and removed sponsor Pull request is ready to be sponsored ready Pull request is ready to be integrated rfr Pull request is ready for review labels Mar 9, 2021
@openjdk
Copy link

openjdk bot commented Mar 9, 2021

@mrserb @turbanoff Since your change was applied there have been 985 commits pushed to the master branch:

  • 4e94760: 8263135: unique_ptr should not be used for types that are not pointers
  • f71b21b: 8263038: Optimize String.format for simple specifiers
  • 14cfbda: 8261366: Add discussion of IEEE 754 to BigDecimal
  • 414ee95: 8261462: GCM ByteBuffer decryption problems
  • eb4a8af: 8260664: Phaser.arrive() memory consistency effects
  • 9221540: 8213269: convert test/hotspot/jtreg/runtime/memory/RunUnitTestsConcurrently to gtest
  • 17853ee: 8263200: Add -XX:StressCCP to CTW
  • a2b8858: 8263041: Shenandoah: Cleanup C1 keep alive barrier check
  • 1f9ed90: 8219555: compiler/jvmci/compilerToVM/IsMatureTest.java fails with Unexpected isMature state for multiple times invoked method: expected false to equal true
  • bf9b74d: 8262446: DragAndDrop hangs on Windows
  • ... and 975 more: https://git.openjdk.java.net/jdk/compare/fa50877c2e86d1a4e00724dd29d934f52d51f42c...master

Your commit was automatically rebased without conflicts.

Pushed as commit 39b1113.

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

@turbanoff turbanoff deleted the use_transferTo_method_instead_of_manual_copy_in_java.desktop branch September 15, 2021 07:34
@openjdk openjdk bot added the client client-libs-dev@openjdk.org label Sep 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2d client-libs-dev@openjdk.org awt client-libs-dev@openjdk.org client client-libs-dev@openjdk.org integrated Pull request has been integrated sound client-libs-dev@openjdk.org swing client-libs-dev@openjdk.org
Development

Successfully merging this pull request may close these issues.

4 participants