Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
Add more tips on writing native applications #26676
Add more tips on writing native applications #26676
Changes from all commits
7d05cac
e3ca75b
a7cdbcf
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's important to add a comment that the field is not static here. Because if it was, you would have the same issue. Maybe with a callout?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you should make it extra clear that this is relevant only if these methods are doing funky things? Because in most cases, it's not a problem at all?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree this is a more subtle point - the key is that these methods are pulling in code that wouldn't otherwise be used. Simple straightforward
toString
/equals
is no problem. But the more additional formatters utils, etc that get pulled in, the more the image gets bloated by them.@galderz do you have some examples for this? It would help drive the right point home that it's "extra" code pulled in by these methods that are problematic.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@gsmet Indeed that's correct. I'll reiterate those points.
@DanHeidinga It's not only extra code that can be a problem. If implementations do reflection or use proxies, you could get a similar effect where your native image fails because there's some extra configuration missing. I'll add details on this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@DanHeidinga Oh, about examples. I don't have any right now. I think @Sanne might have since this came from a discussion I had with him a while back. IIRC some
toString()
impls in Hibernate (not sure if in the code itself, or in user provided entities) did something funky that caused the native image build to break.