apache / apache/netbeans

Refactor "Move Inner to Outer level and PullUp" on record drops the record details

Open
#7,044 4 comments 4 reactions 0 assignees View on GitHub
Editor Java kind:bug
Dominant language
Java
Stars
3.1k
Forks
935
Avg merge
2d 3h
Merged PRs (30d)
17

Description

### Apache NetBeans version

Apache NetBeans 20

### What happened

When you have an inner record like so;

```java
package example;
import java.time.LocalDate;
public class Example {
public record Studentje(int id, String fullName, LocalDate dob){}
}

```
and for some reason you want it to be an outer class in its own file, then
refactor Move Inner to Outer level, then the result in the that file is

```java
package example;
import java.time.LocalDate;
public class Studentje {
}
```
dropping all record details.

### Language / Project Type / NetBeans Component

java editor

### How to reproduce

make class as above with inner record and apply refactoring Move Inner to.
The resulting class is no longer a record, the record component parameters including parenthesis are dropped,
but the import (LocalDate) is handed over, but is useless because of the stripping.

### Did this work correctly in an earlier version?

No / Don't know

### Operating System

ubuntu 24.04, Windows 11

### JDK

java 21, Java 17 at least

### Apache NetBeans packaging

Apache NetBeans binary zip

### Anything else

occurs always.

### Are you willing to submit a pull request?

Yes, ~~I am at it, but stuck on the steps from parsetree to java code and possibly templates.~~

Contributor guide

Open the contributing guide

Research direction

Start with the Java editor's “Move Inner to Outer level” refactoring and reproduce the issue using the nested Studentje record shown in the report. Trace how the refactoring parses and generates the new file; done means the result remains a record with its component parameters and only relevant imports.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.