Skip to content

NETBEANS-9798 Fix PullUp/Move refactoring when a not initialized field is moved to an interface - #9802

Open
jherkel wants to merge 1 commit into
apache:masterfrom
jherkel:netbeans-9798
Open

jherkel wants to merge 1 commit into
apache:masterfrom
jherkel:netbeans-9798

Conversation

@jherkel

@jherkel jherkel commented Nov 13, 2026

Copy link
Copy Markdown
Contributor

^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).

LLMs, Commit messages and PR description:

  • Please make sure (eg. git log) that all commits have a valid name and email address for you in the Author field.
  • LLM assisted commits should be attributed with an Assisted-by: MODEL_NAME MODEL_VERSION line appended to the commit message.
    • Please mention coding assistance in the PR description too (eg. by adding the same Assisted-by line from above)
    • Please describe the changes in your own words - we'd like to know you understand the changes being made!

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)

@mbien mbien added Java [ci] enable extra Java tests (java.completion, java.source.base, java.hints, refactoring.java, form) ci:dev-build [ci] produce a dev-build zip artifact (7 days expiration, see link on workflow summary page) labels Nov 13, 2026
@mbien mbien modified the milestones: NB32, NB33 Nov 13, 2026

@mbien mbien left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

please mention in the commit msg and PR header what refactoring this is about since this becomes the title in the release notes.

e.g "Fix PullUp/Move refactoring when (...)"

thanks for working on this fix!

@jherkel jherkel changed the title NETBEANS-9798 fix refactoring when not initialized field is moved to interface NETBEANS-9798 Fix PullUp/Move refactoring when a not initialized field is moved to an interface Nov 13, 2026
ERR_CannotPullupDuplicateMembers=Cannot pull up two members with the same signature.
ERR_PullupNonPublicToInterface=Member "{0}" is being moved to interface, but is not public.
ERR_PullupStaticToInterface=Member "{0}" cannot be pulled up to interface, it is static.
ERR_PullupNonNotInitializedToInterface=Member "{0}" cannot be pulled up to interface, it is not initialized.

@wrprice wrprice Nov 14, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

IMO, this buries the lede here. Yes, the resulting syntax error is that the pulled-up field is not initialized, but that's because the refactoring has moved a non-static member field into an interface, which makes it implicitly public static final.

Making the moved field static is a much more significant change. If the proposal is to block the refactor operation then this (non-final non-static to static final) is the more important reason to surface. Suggesting to add an initializer avoids the syntax error but the developer may miss the larger semantic difference it creates.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:dev-build [ci] produce a dev-build zip artifact (7 days expiration, see link on workflow summary page) 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