I reported refactoring issues here more than a year(2?) ago. While
someone did respond and provided a fix, it seems like the "fix" was just
to suppress the issue(exceptions) and not fix the issue itself.
Refactoring on Netbeans is completely and utterly broken and has been
for a **VERY** long time now.
Along with the editor completely bugging out by highlighting errors that
don't actually exist and import/code completion breaking. A
multi-threading bug, maybe? But I digress.
On 7/2/21 9:51 AM, Marvin P. Warble Jr. wrote:
In all versions of Netbeans > 12.0, I regularly experience several
different problems when trying to refactor code. Anyone else running
into these issues?
1.When moving a class, NB will scramble the import statements of
classes that depend on the moved class.
2.When moving a class, NB will throw the following exception:
java.lang.NullPointerException: Cannot invoke
"java.util.Collection.contains(Object)" because "sourceFiles" is null
at com.sun.tools.javac.comp.Todo.retainFiles(Todo.java:98)
at
org.netbeans.modules.java.source.parsing.JavacParser.moveToPhase(JavacParser.java:727)
at
org.netbeans.modules.java.source.parsing.CompilationInfoImpl.toPhase(CompilationInfoImpl.java:399)
at
org.netbeans.api.java.source.CompilationController.toPhase(CompilationController.java:88)
at org.netbeans.api.java.source.WorkingCopy.toPhase(WorkingCopy.java:193)
at
org.netbeans.modules.refactoring.java.spi.RefactoringVisitor.setWorkingCopy(RefactoringVisitor.java:111)
at
org.netbeans.modules.refactoring.java.plugins.MoveTransformer.setWorkingCopy(MoveTransformer.java:74)
at
org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin$TransformTask.run(JavaRefactoringPlugin.java:435)
at
org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin$TransformTask.run(JavaRefactoringPlugin.java:418)
at
org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.lambda$processFiles$0(JavaRefactoringPlugin.java:323)
at org.netbeans.api.java.source.JavaSource$1.run(JavaSource.java:673)
at org.netbeans.api.java.source.JavaSource$1.run(JavaSource.java:663)
at
org.netbeans.api.java.source.JavaSource$MultiTask.run(JavaSource.java:502)
at
org.netbeans.modules.parsing.impl.TaskProcessor.callUserTask(TaskProcessor.java:586)
at
org.netbeans.modules.parsing.api.ParserManager$MultiUserTaskAction.run(ParserManager.java:166)
at
org.netbeans.modules.parsing.api.ParserManager$MultiUserTaskAction.run(ParserManager.java:138)
at
org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:181)
at
org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:178)
at
org.netbeans.modules.masterfs.filebasedfs.utils.FileChangedManager.priorityIO(FileChangedManager.java:153)
at
org.netbeans.modules.masterfs.providers.ProvidedExtensions.priorityIO(ProvidedExtensions.java:335)
at
org.netbeans.modules.parsing.nb.DataObjectEnvFactory.runPriorityIO(DataObjectEnvFactory.java:118)
at
org.netbeans.modules.parsing.impl.Utilities.runPriorityIO(Utilities.java:67)
at
org.netbeans.modules.parsing.impl.TaskProcessor.runUserTask(TaskProcessor.java:178)
at
org.netbeans.modules.parsing.api.ParserManager.parse(ParserManager.java:83)
at
org.netbeans.api.java.source.JavaSource.runUserActionTaskImpl(JavaSource.java:452)
at
org.netbeans.api.java.source.JavaSource.runUserActionTask(JavaSource.java:423)
at
org.netbeans.api.java.source.JavaSource.runModificationTask(JavaSource.java:684)
at
org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.processFiles(JavaRefactoringPlugin.java:321)
at
org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.processFiles(JavaRefactoringPlugin.java:264)
at
org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.processFiles(JavaRefactoringPlugin.java:246)
at
org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.createAndAddElements(JavaRefactoringPlugin.java:336)
at
org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.createAndAddElements(JavaRefactoringPlugin.java:352)
at
org.netbeans.modules.refactoring.java.plugins.MoveFileRefactoringPlugin.prepare(MoveFileRefactoringPlugin.java:571)
at
org.netbeans.modules.refactoring.api.AbstractRefactoring.pluginsPrepare2(AbstractRefactoring.java:417)
at
org.netbeans.modules.refactoring.api.AbstractRefactoring.pluginsPrepare(AbstractRefactoring.java:401)
at
org.netbeans.modules.refactoring.api.AbstractRefactoring.prepare(AbstractRefactoring.java:212)
at
org.netbeans.modules.refactoring.spi.impl.ParametersPanel$Prepare.run(ParametersPanel.java:1063)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418)
at
org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:278)
at
org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033)
3. When renaming a class, NB will sometimes rename the file, but fail
to rename the actual class.
The refactoring problems are making development quite difficult.