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

8263412: ClassFileInstaller can't be used by classes outside of default package #2932

Closed
wants to merge 4 commits into from

Conversation

iignatev
Copy link
Member

@iignatev iignatev commented Mar 11, 2021

Hi all,

could you please review the patch which moves ClassFileInstaller class to jdk.test.lib.helpers package?
to reduce changes in the tests, ClassFileInstaller in the default package is kept w/ just main method that calls jdk.test.lib.helpers. ClassFileInstaller::main.

from JBS:

ClassFileInstaller is in the default package hence it's impossible to use it directly by classes in any other package. although ClassFileInstaller is mainly used directly from jtreg test description, there are cases when one needs to use it in another "driver" class (e.g. to reduce boilerplate), yet to do. that these driver classes have to either be in a default package or use reflection, both approaches have drawbacks.

to solve that, we can move ClassFileInstaller implementation to a package, and to avoid unneeded churn, keep package-less ClassFileInstaller class which will call package-full impl.

the need for this patch has raised as part of JDK-8254129.

testing:

  • :jdk_core against {macos,windows,linux}-x64
  • :jdk_svc against {macos,windows,linux}-x64
  • test/hotspot/jtreg w/o applications and vmTestbase directories against {macos,windows,linux}-x64

Thanks,
-- Igor


Progress

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

Issue

  • JDK-8263412: ClassFileInstaller can't be used by classes outside of default package

Reviewers

Download

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

@bridgekeeper
Copy link

@bridgekeeper bridgekeeper bot commented Mar 11, 2021

👋 Welcome back iignatyev! 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 openjdk bot changed the title 8263412 8263412: ClassFileInstaller can't be used by classes outside of default package Mar 11, 2021
@openjdk
Copy link

@openjdk openjdk bot commented Mar 11, 2021

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

  • core-libs
  • hotspot-runtime
  • security
  • serviceability

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 serviceability security hotspot-runtime core-libs labels Mar 11, 2021
@iignatev iignatev marked this pull request as ready for review Mar 11, 2021
@openjdk openjdk bot added the rfr label Mar 11, 2021
@mlbridge
Copy link

@mlbridge mlbridge bot commented Mar 11, 2021

Webrevs

iklam
iklam approved these changes Mar 11, 2021
Copy link
Member

@iklam iklam left a comment

The CDS test changes look good to me. It seems they are just adding a single line of import.

@openjdk
Copy link

@openjdk openjdk bot commented Mar 11, 2021

@iignatev 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:

8263412: ClassFileInstaller can't be used by classes outside of default package

Reviewed-by: iklam, coleenp, mseledtsov

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

  • cf1c021: 8263480: ProblemList two jpackage tests on Windows
  • f3bd801: 8263403: [JVMCI] output written to tty via HotSpotJVMCIRuntime can be garbled
  • b92abac: 8263433: Shenandoah: Don't expect forwarded objects in set_concurrent_mark_in_progress()
  • 15dacca: 8263465: JDK-8236847 causes tier1 build failure on linux-aarch64
  • 7ed46bd: 8241716: Jpackage functionality to let users choose whether to create shortcuts
  • 3820ab9: 8236847: CDS archive with 4K alignment unusable on machines with 64k pages
  • 273f8bd: 8263248: IGV: accept graphs without node categories
  • a9b4f03: 8263069: Exclude some failing tests from security/infra/java/security/cert/CertPathValidator
  • 470b150: 8143041: Unify G1CollectorPolicy::PauseKind and G1YCType
  • f6b4ba0: 8261931: IGV: quick search fails on multi-line node labels
  • ... and 1 more: https://git.openjdk.java.net/jdk/compare/32cbd193d9655825d10e07be50ab3b7550ecb401...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.

➡️ To integrate this PR with the above commit message to the master branch, type /integrate in a new comment.

@openjdk openjdk bot added the ready label Mar 11, 2021
Copy link
Contributor

@coleenp coleenp left a comment

Looks good. I looked at the RedefineClasses tests also.

@iignatev
Copy link
Member Author

@iignatev iignatev commented Mar 12, 2021

Ioi, Coleen, Misha, thanks for your reviews.

-- Igor

/integrate

@openjdk openjdk bot closed this Mar 12, 2021
@openjdk openjdk bot added integrated and removed ready rfr labels Mar 12, 2021
@openjdk
Copy link

@openjdk openjdk bot commented Mar 12, 2021

@iignatev Since your change was applied there have been 28 commits pushed to the master branch:

  • bf9b5fa: 8263501: compiler/oracle/TestInvalidCompileCommand.java fails with release VMs
  • 0c8350e: 8263460: DynamicArchiveRelocationTest.java fails in product VM
  • b2f7c58: 8263055: hsdb Command Line Debugger does not properly direct output for some commands
  • ecfa712: 8263326: Remove ReceiverTypeData check from serviceability/sa/TestPrintMdo.java
  • b932a62: 8263470: Consolidate copies of getClassBytes in various tests
  • 0ea48d9: 8194129: Regression automated Test '/open/test/jdk/java/awt/Window/ShapedAndTranslucentWindows/TranslucentChoice.java' fails
  • 4b5c664: 8178348: left_n_bits(0) invokes undefined behavior
  • 0b10c6b: 8263017: Read barriers are missing in nmethod printing code
  • a6e056f: 8263125: During deoptimization vectors should reassign scalarized payload after all objects are reallocated.
  • 65421fa: 8213177: GlobalCounter::CSContext could be an enum class
  • ... and 18 more: https://git.openjdk.java.net/jdk/compare/32cbd193d9655825d10e07be50ab3b7550ecb401...master

Your commit was automatically rebased without conflicts.

Pushed as commit e834f99.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core-libs hotspot-runtime integrated security serviceability
4 participants