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

Fix class file invalidation issue when moving sources #1086

Merged
merged 5 commits into from
Nov 11, 2019

Conversation

jvican
Copy link
Contributor

@jvican jvican commented Nov 10, 2019

This commit fixes an invalidation issue that occured when moving sources
around projects and then compiling these projects independently. The
previous invalidation logic was only handling the case where users move
sources around when all projects involved are compiled together.
However, when they are compiled in different steps, the invalidation
logic was no longer acting correctly.

The fix included here uses the generated products in all dependent class
files to avoid invalidating class files mapped to symbols that have
already been found in at least one of the project dependencies. This fix
doesn't rely on any in-memory information and therefore correctly
handles the stepped compilation scenario.

There is more information about the fix in the source code via comments.

@jvican jvican added bug A defect or misbehaviour. task / compile labels Nov 10, 2019
This commit fixes an invalidation issue that occured when moving sources
around projects and then compiling these projects separately. The
previous invalidation logic was only handling the case where users move
sources around when all projects involved are compiled together.
However, when they are compiled in different steps, the invalidation
logic was no longer acting correctly.

The fix included here uses the generated products in all dependent class
files to avoid invalidating class files mapped to symbols that have
already been found in at least one of the project dependencies. This fix
doesn't rely on any in-memory information and therefore correctly
handles the stepped compilation scenario.

Unlike the preivous commit that fixed this via other means, this fix is
more general and should work in any scenario.
Let's make sure that even if the moved source changes its API, the
changes are picked up by upstream projects.
@jvican jvican force-pushed the topic/fix-invalidation-errors branch from ac66a21 to 702a699 Compare November 11, 2019 00:37
@jvican
Copy link
Contributor Author

jvican commented Nov 11, 2019

Error in CI is spurious, this is good to go!

@jvican jvican merged commit d541c02 into master Nov 11, 2019
@tgodzik tgodzik deleted the topic/fix-invalidation-errors branch September 7, 2021 16:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug A defect or misbehaviour. task / compile
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant