Skip to content

Can not refactor-rename class used in switch pattern #8296

Open
@errael

Description

@errael

Apache NetBeans version

Apache NetBeans 25

What happened

Refactoring: AssertionError: Diff not implemented: PATTERN_CASE_LABEL

Language / Project Type / NetBeans Component

Refactor

How to reproduce

With following code, place cursor on C in class C, Menu > Refactor > Rename...

package com.raelity.play.mav_refactpatterncaselabel;

public class Mav_RefactPatternCaseLabel {
    class C { }

    Object o;
    public void f() {
        switch(o) {
        case C c -> c.getClass();
        default -> {}
        }
    }
}

Did this work correctly in an earlier version?

No / Don't know

Operating System

Linux harmony 6.9.3-76060903-generic #202405300957173877096822.04~d5f7c84 SMP PREEMPT_DYNAMIC Wed F x86_64 x86_64 x86_64 GNU/Linux

JDK

openjdk 23.0.1 2024-10-15

Apache NetBeans packaging

Apache NetBeans binary zip

Anything else

Happens every time.

java.lang.AssertionError: Diff not implemented: PATTERN_CASE_LABEL com.sun.tools.javac.tree.JCTree$JCPatternCaseLabel
	at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5838)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5513)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5440)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5411)
	at org.netbeans.modules.java.source.save.CasualDiff.diffList2(CasualDiff.java:3470)
	at org.netbeans.modules.java.source.save.CasualDiff.diffCase(CasualDiff.java:2081)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5655)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5513)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5440)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5411)
	at org.netbeans.modules.java.source.save.CasualDiff.diffList(CasualDiff.java:4236)
	at org.netbeans.modules.java.source.save.CasualDiff.diffSwitch(CasualDiff.java:1991)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5652)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5513)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5440)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5411)
	at org.netbeans.modules.java.source.save.CasualDiff.diffList(CasualDiff.java:4236)
	at org.netbeans.modules.java.source.save.CasualDiff.diffBlock(CasualDiff.java:1750)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5634)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5513)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5440)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5411)
	at org.netbeans.modules.java.source.save.CasualDiff.diffMethodDef(CasualDiff.java:1439)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5624)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5513)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5440)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5411)
	at org.netbeans.modules.java.source.save.CasualDiff.diffList(CasualDiff.java:4236)
	at org.netbeans.modules.java.source.save.CasualDiff.diffClassDef(CasualDiff.java:1149)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5621)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5513)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5440)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5411)
	at org.netbeans.modules.java.source.save.CasualDiff.diffList(CasualDiff.java:4236)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTopLevel(CasualDiff.java:597)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5594)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5513)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5440)
	at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5423)
	at org.netbeans.modules.java.source.save.CasualDiff.diff(CasualDiff.java:353)
	at org.netbeans.api.java.source.WorkingCopy.processCurrentCompilationUnit(WorkingCopy.java:907)
	at org.netbeans.api.java.source.WorkingCopy.getChanges(WorkingCopy.java:1321)
	at org.netbeans.api.java.source.JavaSource$1.run(JavaSource.java:672)
	at org.netbeans.api.java.source.JavaSource$1.run(JavaSource.java:661)
	at org.netbeans.api.java.source.JavaSource$MultiTask.run(JavaSource.java:504)
	at org.netbeans.modules.parsing.impl.TaskProcessor.callUserTask(TaskProcessor.java:586)
	at org.netbeans.modules.parsing.api.ParserManager$MultiUserTaskAction.run(ParserManager.java:235)
	at org.netbeans.modules.parsing.api.ParserManager$MultiUserTaskAction.run(ParserManager.java:205)
	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:85)
	at org.netbeans.api.java.source.JavaSource.runUserActionTaskImpl(JavaSource.java:454)
	at org.netbeans.api.java.source.JavaSource.runUserActionTask(JavaSource.java:425)
	at org.netbeans.api.java.source.JavaSource.runModificationTask(JavaSource.java:680)
	at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.processFiles(JavaRefactoringPlugin.java:323)
	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:338)
	at org.netbeans.modules.refactoring.java.plugins.RenameRefactoringPlugin.prepare(RenameRefactoringPlugin.java:634)
[catch] 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:1403)
	at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
	at org.openide.util.lookup.Lookups.executeWith(Lookups.java:287)
	at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2018)

Are you willing to submit a pull request?

No

Metadata

Metadata

Assignees

No one assigned

    Labels

    EditorJava[ci] enable extra Java tests (java.completion, java.source.base, java.hints, refactoring.java, form)kind:bugBug report or fix

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions