Skip to content

Rename class with pattern matching instanceof fails with BINDING_PATTERN com.sun.tools.javac.tree.JCTree$JCBindingPattern #9645

Description

@williamgates108

Apache NetBeans version

Apache NetBeans 31

What happened

NetBeans 31, when renaming a class that has a JDK 16+ "pattern matching instanceof"

if (cp instanceof GrandProjectContextProvider gcp)

Image

INFO [org.netbeans.ui.indexing]: Indexing finished, indexing took 0 ms.
INFO [org.netbeans.modules.refactoring.spi.impl.ParametersPanel]: org.netbeans.modules.refactoring.api.AbstractRefactoring$ProgressL@2c1ed6fc called start multiple times
INFO [null]: Last record repeated again.
SEVERE [org.openide.util.Exceptions]
java.lang.AssertionError: BINDING_PATTERN com.sun.tools.javac.tree.JCTree$JCBindingPattern
at org.netbeans.modules.java.source.save.CasualDiff.treesMatch(CasualDiff.java:3484)
at org.netbeans.modules.java.source.save.CasualDiff.treesMatch(CasualDiff.java:3300)
at org.netbeans.modules.java.source.save.CasualDiff.matchTypeTest(CasualDiff.java:6137)
at org.netbeans.modules.java.source.save.CasualDiff.treesMatch(CasualDiff.java:3384)
at org.netbeans.modules.java.source.save.CasualDiff.treesMatch(CasualDiff.java:3300)
at org.netbeans.modules.java.source.save.CasualDiff.treesMatch(CasualDiff.java:3378)
at org.netbeans.modules.java.source.save.CasualDiff.treesMatch(CasualDiff.java:3300)
at org.netbeans.modules.java.source.save.CasualDiff.matchIf(CasualDiff.java:6077)
at org.netbeans.modules.java.source.save.CasualDiff.treesMatch(CasualDiff.java:3354)
at org.netbeans.modules.java.source.save.CasualDiff.treesMatch(CasualDiff.java:3300)
at org.netbeans.modules.java.source.save.CasualDiff.listsMatch(CasualDiff.java:6009)
at org.netbeans.modules.java.source.save.CasualDiff.matchBlock(CasualDiff.java:6023)
at org.netbeans.modules.java.source.save.CasualDiff.treesMatch(CasualDiff.java:3330)
at org.netbeans.modules.java.source.save.CasualDiff.treesMatch(CasualDiff.java:3300)
at org.netbeans.modules.java.source.save.CasualDiff.matchLambda(CasualDiff.java:6192)
at org.netbeans.modules.java.source.save.CasualDiff.treesMatch(CasualDiff.java:3456)
at org.netbeans.modules.java.source.save.CasualDiff.treesMatch(CasualDiff.java:3300)
at org.netbeans.modules.java.source.save.CasualDiff.listsMatch(CasualDiff.java:6009)
at org.netbeans.modules.java.source.save.CasualDiff.diffApply(CasualDiff.java:2494)
at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5787)
at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5603)
at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5530)
at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5501)
at org.netbeans.modules.java.source.save.CasualDiff.diffExec(CasualDiff.java:2385)
at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5766)
at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5603)
at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5530)
at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5501)
at org.netbeans.modules.java.source.save.CasualDiff.diffList(CasualDiff.java:4314)
at org.netbeans.modules.java.source.save.CasualDiff.diffBlock(CasualDiff.java:1805)
at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5727)
at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5603)
at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5530)
at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5501)
at org.netbeans.modules.java.source.save.CasualDiff.diffMethodDef(CasualDiff.java:1494)
at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5717)
at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5603)
at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5530)
at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5501)
at org.netbeans.modules.java.source.save.CasualDiff.diffList(CasualDiff.java:4314)
at org.netbeans.modules.java.source.save.CasualDiff.diffClassDef(CasualDiff.java:1204)
at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5714)
at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5603)
at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5530)
at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5501)
at org.netbeans.modules.java.source.save.CasualDiff.diffList(CasualDiff.java:4314)
at org.netbeans.modules.java.source.save.CasualDiff.diffTopLevel(CasualDiff.java:602)
at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5684)
at org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5603)
at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5530)
at org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5513)
at org.netbeans.modules.java.source.save.CasualDiff.diff(CasualDiff.java:358)
at org.netbeans.api.java.source.WorkingCopy.processCurrentCompilationUnit(WorkingCopy.java:889)
at org.netbeans.api.java.source.WorkingCopy.getChanges(WorkingCopy.java:1304)
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:341)
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:325)
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:340)
at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.createAndAddElements(JavaRefactoringPlugin.java:356)
at org.netbeans.modules.refactoring.java.plugins.RenameRefactoringPlugin.prepare(RenameRefactoringPlugin.java:613)
[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:1370)
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:1981)

Language / Project Type / NetBeans Component

No response

How to reproduce

Rename a class that has a reference using the pattern matching instanceof

Did this work correctly in an earlier version?

No / Don't know

Operating System

Ubuntu 22.04

JDK

JDK 26.0.2

Apache NetBeans packaging

Community provided installer

Anything else

Always i would say

Are you willing to submit a pull request?

No

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind:bugBug report or fixneeds:triageRequires attention from one of the committers

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions