Skip to content

Conversation

@lahodaj
Copy link
Contributor

@lahodaj lahodaj commented Nov 26, 2025

Seeing the failure here:
https://github.com/apache/netbeans/actions/runs/19711486484/attempts/1#summary-56473993246

it reminded me a similar problem elsewhere, so I took a look at the hint. In general, hint analysis and fix application may run in different javac contexts (different javac instances). It probably does not happen commonly, but it might, and it most likely happened in the test run above. And the Fix is keeping a TypeMirror from the analysis javac context, and tries to work with in the application context, which fails.

This PR is handling that using a TypeMirrorHandle.

As a follow-up work, we could try to enhance the test frameworks to always use a different javac instance for analysis and fix application, to avoid trouble like this.


^Add meaningful description above

Click to collapse/expand PR instructions

By opening a pull request you confirm that, unless explicitly stated otherwise, the changes -

  • are all your own work, and you have the right to contribute them.
  • are contributed solely under the terms and conditions of the Apache License 2.0 (see section 5 of the license for more information).

Please make sure (eg. git log) that all commits have a valid name and email address for you in the Author field.

If you're a first time contributor, see the Contributing guidelines for more information.

If you're a committer, please label the PR before pressing "Create pull request" so that the right test jobs can run.

PR approval and merge checklist:

  1. Was this PR correctly labeled, did the right tests run? When did they run?
  2. Is this PR squashed?
  3. Are author name / email address correct? Are co-authors correctly listed? Do the commit messages need updates?
  4. Does the PR title and description still fit after the Nth iteration? Is the description sufficient to appear in the release notes?

If this PR targets the delivery branch: don't merge. (full wiki article)

@lahodaj lahodaj added this to the NB29 milestone Nov 26, 2025
@lahodaj lahodaj added the Java [ci] enable extra Java tests (java.completion, java.source.base, java.hints, refactoring.java, form) label Nov 26, 2025
Copy link
Member

@mbien mbien left a comment

Choose a reason for hiding this comment

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

great find!

@matthiasblaesing
Copy link
Contributor

This looks suspiciously like a similar problem in PR #9005. @lahodaj would you mind having a look at that PR?

@mbien
Copy link
Member

mbien commented Dec 9, 2025

This PR is handling that using a TypeMirrorHandle.

now I know why this felt like a dejavu! I did something similar before and checked all JavaFix implementations for missing TreePathHandle creation in their constructors #8860 (comment),

looked through it quickly again and checked TypeMirrors found one more copy/pasted issue:

private final TypeElement element;
private final AnnotationMirror annotation;

private final TypeElement element;
private final AnnotationMirror annotation;

TypeElement needs to be wrapped. There doesn't seem to be a handle class for AnnotationMirror, but the usage there is a simple string comparison, so the string could be eagerly initialized in the constructor?

@matthiasblaesing
Copy link
Contributor

Eyeballed this and makes sense. @lahodaj would it make sense to merge now, to get this into NB29?

@lahodaj
Copy link
Contributor Author

lahodaj commented Jan 8, 2026

I am looking into the web.jsf fixes, but I probably would prefer to do it separately from this patch, as my understanding of the code there is much lower, and hence possibly more testing is needed.

@lahodaj lahodaj merged commit 233a70f into apache:master Jan 9, 2026
35 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Java [ci] enable extra Java tests (java.completion, java.source.base, java.hints, refactoring.java, form)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants