Skip to content

javac assertion error during method rename #9056

Closed

Description

@mbien

Apache NetBeans version

Apache NetBeans 28

What happened

couldn't rename a method, turned out to be repeatable

Details
SEVERE [org.openide.util.Exceptions]
An error occurred during parsing of '/home/mbien/NetBeansProjects/netbeans/groovy/groovy.gsp/src/org/netbeans/modules/groovy/gsp/editor/indent/GspIndenter.java'. Please report a bug against java/source and attach dump file '/home/mbien/.netbeans/28/var/log/GspIndenter_6.dump'.
An error occurred during parsing of '/home/mbien/NetBeansProjects/netbeans/groovy/groovy.gsp/src/org/netbeans/modules/groovy/gsp/editor/indent/GspIndenter.java'. Please report a bug against java/source and attach dump file '/home/mbien/.netbeans/28/var/log/GspIndenter_6.dump'.
Caused: java.lang.AssertionError
	at com.sun.tools.javac.util.Assert.error(Assert.java:155)
	at com.sun.tools.javac.util.Assert.check(Assert.java:46)
	at com.sun.tools.javac.comp.Flow$AliveAnalyzer.clearPendingExits(Flow.java:632)
	at com.sun.tools.javac.comp.Flow$AliveAnalyzer.visitMethodDef(Flow.java:620)
	at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:960)
	at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:50)
	at com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:461)
	at com.sun.tools.javac.comp.Flow$AliveAnalyzer.visitClassDef(Flow.java:594)
	at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:859)
	at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:50)
	at com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:461)
	at com.sun.tools.javac.comp.Flow$AliveAnalyzer.analyzeTree(Flow.java:1343)
	at com.sun.tools.javac.comp.Flow$AliveAnalyzer.analyzeTree(Flow.java:1335)
	at com.sun.tools.javac.comp.Flow.analyzeTree(Flow.java:229)
	at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1406)
	at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1370)
	at com.sun.tools.javac.api.JavacTaskImpl.analyze(JavacTaskImpl.java:404)
	at com.sun.tools.javac.api.JavacTaskImpl.lambda$analyze$1(JavacTaskImpl.java:379)
	at com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)
	at com.sun.tools.javac.api.JavacTaskImpl.analyze(JavacTaskImpl.java:379)
Caused: java.lang.IllegalStateException
	at com.sun.tools.javac.api.JavacTaskImpl.analyze(JavacTaskImpl.java:383)
	at org.netbeans.modules.java.source.parsing.JavacParser.moveToPhase(JavacParser.java:765)
	at org.netbeans.modules.java.source.parsing.CompilationInfoImpl.toPhase(CompilationInfoImpl.java:425)
	at org.netbeans.api.java.source.CompilationController.toPhase(CompilationController.java:90)
	at org.netbeans.api.java.source.WorkingCopy.toPhase(WorkingCopy.java:195)
	at org.netbeans.modules.refactoring.java.spi.RefactoringVisitor.setWorkingCopy(RefactoringVisitor.java:111)
	at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin$TransformTask.run(JavaRefactoringPlugin.java:437)
	at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin$TransformTask.run(JavaRefactoringPlugin.java:420)
	at org.netbeans.modules.refactoring.java.spi.JavaRefactoringPlugin.lambda$processFiles$1(JavaRefactoringPlugin.java:325)
	at org.netbeans.api.java.source.JavaSource$1.run(JavaSource.java:671)
	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)

Language / Project Type / NetBeans Component

ant nb modules

How to reproduce

  1. check out https://github.com/mbien/netbeans/tree/rename-javac-ae and build
  2. open two projects ide/editor.document and groovy/groovy.gsp
  3. open GspIndenter and try to rename the marked method at L137 mbien@3717b4c

Did this work correctly in an earlier version?

No / Don't know

Operating System

linux

JDK

JDK 25.0.1

Apache NetBeans packaging

Apache NetBeans binary zip

Anything else

No response

Are you willing to submit a pull request?

No

Activity

  1. added
    kind:bugBug report or fix
    Java[ci] enable extra Java tests (java.completion, java.source.base, java.hints, refactoring.java, form)
    needs:triageRequires attention from one of the committers
    nb-javacRun nb-javac integration tests
    on Dec 1, 2025
  2. mbien commented on Dec 2, 2025

    @mbien
    MemberAuthor

    ran more tests:

    diff --git a/groovy/groovy.gsp/src/org/netbeans/modules/groovy/gsp/editor/indent/GspIndenter.java b/groovy/groovy.gsp/src/org/netbeans/modules/groovy/gsp/editor/indent/GspIndenter.java
    index defb7e0..05a59dd 100644
    --- a/groovy/groovy.gsp/src/org/netbeans/modules/groovy/gsp/editor/indent/GspIndenter.java
    +++ b/groovy/groovy.gsp/src/org/netbeans/modules/groovy/gsp/editor/indent/GspIndenter.java
    @@ -124,14 +124,14 @@
         protected int getPreservedLineInitialIndentation(JoinedTokenSequence<GspTokenId> ts) throws BadLocationException {
             int[] index = ts.index();
             boolean found = false;
    -        do {
    -            if (ts.token().id().isComment()) {
    -                found = true;
    -                break;
    -            } else {
    -                break;
    -            }
    -        } while (ts.movePrevious());
    +//        do {
    +//            if (ts.token().id().isComment()) {
    +//                found = true;
    +//                break;
    +//            } else {
    +//                break;
    +//            }
    +//        } while (ts.movePrevious());
             int indent = 0;
             if (found) {
                 int lineStart = LineDocumentUtils.getLineStart2(getDocument(), ts.offset());
    

    with the loop removed, NB is able to preview the rename refactoring, but interestingly, it would only show the method declaration as usage, not the method call, but its unclear if its related or not.

  3. removed
    needs:triageRequires attention from one of the committers
    on Dec 10, 2025
  4. added this to the NB29 milestone on Dec 12, 2025
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

    Java[ci] enable extra Java tests (java.completion, java.source.base, java.hints, refactoring.java, form)kind:bugBug report or fixnb-javacRun nb-javac integration tests

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions