niabot opened a new issue, #8174:
URL: https://github.com/apache/netbeans/issues/8174

   ### Apache NetBeans version
   
   Apache NetBeans 24
   
   ### What happened
   
   When editing TOML files for Gradle projects the editor hangs if there is a 
temporary syntax error in the files. At first the editor won't let me type 
anything within unmatched curly braces. Deleting the braces is also not 
possible. Under some circumstances the entire editor (and netbeans) hangs 
(endless loop). I get the following or similar exceptions:
   
   ```
   java.lang.IllegalStateException: Lexer 
org.netbeans.modules.languages.toml.TomlLexer@4eeb0fe6
     returned null token but lexerInput.readLength()=2
     lexer-state: -1
     tokenStartOffset=1778, readOffset=1780, lookaheadOffset=1781
     Chars: "\n\n" - these characters need to be tokenized.
   Fix the lexer to not return null token in this state.
        at 
org.netbeans.lib.lexer.LexerInputOperation.checkLexerInputFinished(LexerInputOperation.java:435)
        at 
org.netbeans.lib.lexer.LexerInputOperation.nextToken(LexerInputOperation.java:193)
        at 
org.netbeans.lib.lexer.inc.IncTokenList.tokenOrEmbeddingImpl(IncTokenList.java:170)
        at 
org.netbeans.lib.lexer.inc.IncTokenList.tokenOrEmbedding(IncTokenList.java:165)
        at org.netbeans.api.lexer.TokenSequence.moveNext(TokenSequence.java:458)
        at 
org.netbeans.modules.textmate.lexer.SyntaxHighlighting$TSInfo.moveNextToken(SyntaxHighlighting.java:785)
        at 
org.netbeans.modules.textmate.lexer.SyntaxHighlighting$HSImpl.moveTheSequence(SyntaxHighlighting.java:482)
        at 
org.netbeans.modules.textmate.lexer.SyntaxHighlighting$HSImpl.moveNext(SyntaxHighlighting.java:431)
        at 
org.netbeans.modules.editor.lib2.highlighting.DirectMergeContainer$Wrapper.fetchNextHighlight(DirectMergeContainer.java:600)
        at 
org.netbeans.modules.editor.lib2.highlighting.DirectMergeContainer$HlSequence.updateMergeVars(DirectMergeContainer.java:337)
        at 
org.netbeans.modules.editor.lib2.highlighting.DirectMergeContainer$HlSequence.nextMerge(DirectMergeContainer.java:303)
        at 
org.netbeans.modules.editor.lib2.highlighting.DirectMergeContainer$HlSequence.moveNext(DirectMergeContainer.java:234)
        at 
org.netbeans.modules.editor.lib2.highlighting.HighlightsReader.readUntil(HighlightsReader.java:59)
        at 
org.netbeans.modules.editor.lib2.view.HighlightsViewFactory.restart(HighlightsViewFactory.java:168)
        at 
org.netbeans.modules.editor.lib2.view.ViewBuilder$FactoryState.init(ViewBuilder.java:1299)
        at 
org.netbeans.modules.editor.lib2.view.ViewBuilder.createViews(ViewBuilder.java:699)
        at 
org.netbeans.modules.editor.lib2.view.ViewBuilder.createReplaceRepaintViews(ViewBuilder.java:660)
        at 
org.netbeans.modules.editor.lib2.view.ViewUpdates.reinitAllViews(ViewUpdates.java:189)
        at 
org.netbeans.modules.editor.lib2.view.DocumentViewOp.checkViewsInited(DocumentViewOp.java:621)
        at 
org.netbeans.modules.editor.lib2.view.DocumentView.getPreferredSpan(DocumentView.java:226)
        at 
java.desktop/javax.swing.plaf.basic.BasicTextUI$RootView.getPreferredSpan(BasicTextUI.java:1454)
        at 
java.desktop/javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:950)
        at 
java.desktop/javax.swing.JComponent.getPreferredSize(JComponent.java:1734)
        at 
java.desktop/javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1390)
        at 
org.netbeans.modules.editor.NbEditorUI$LayeredEditorPane.getPreferredSize(NbEditorUI.java:454)
        at 
java.desktop/javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:799)
        at 
com.formdev.flatlaf.ui.FlatScrollPaneUI$FlatScrollPaneLayout.layoutContainer(FlatScrollPaneUI.java:563)
        at java.desktop/java.awt.Container.layout(Container.java:1541)
        at java.desktop/java.awt.Container.doLayout(Container.java:1530)
        at java.desktop/java.awt.Container.validateTree(Container.java:1725)
        at java.desktop/java.awt.Container.validateTree(Container.java:1734)
        at java.desktop/java.awt.Container.validateTree(Container.java:1734)
        at java.desktop/java.awt.Container.validateTree(Container.java:1734)
        at java.desktop/java.awt.Container.validateTree(Container.java:1734)
        at java.desktop/java.awt.Container.validateTree(Container.java:1734)
        at java.desktop/java.awt.Container.validateTree(Container.java:1734)
        at java.desktop/java.awt.Container.validateTree(Container.java:1734)
        at java.desktop/java.awt.Container.validateTree(Container.java:1734)
        at java.desktop/java.awt.Container.validateTree(Container.java:1734)
        at java.desktop/java.awt.Container.validateTree(Container.java:1734)
        at java.desktop/java.awt.Container.validateTree(Container.java:1734)
        at java.desktop/java.awt.Container.validateTree(Container.java:1734)
        at java.desktop/java.awt.Container.validate(Container.java:1660)
        at 
org.netbeans.core.windows.view.ui.DesktopImpl$LayeredLayout.layoutContainer(DesktopImpl.java:529)
        at java.desktop/java.awt.Container.layout(Container.java:1541)
        at java.desktop/java.awt.Container.doLayout(Container.java:1530)
        at java.desktop/java.awt.Container.validateTree(Container.java:1725)
        at java.desktop/java.awt.Container.validateTree(Container.java:1734)
        at java.desktop/java.awt.Container.validateTree(Container.java:1734)
        at java.desktop/java.awt.Container.validateTree(Container.java:1734)
        at java.desktop/java.awt.Container.validateTree(Container.java:1734)
        at java.desktop/java.awt.Container.validate(Container.java:1660)
        at 
java.desktop/javax.swing.RepaintManager$3.run(RepaintManager.java:757)
        at 
java.desktop/javax.swing.RepaintManager$3.run(RepaintManager.java:755)
        at 
java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
        at 
java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
        at 
java.desktop/javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:754)
        at 
java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1896)
        at 
java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
        at 
java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
        at 
java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
        at 
java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
        at 
org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
   [catch] at 
java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at 
java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at 
java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at 
java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at 
java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at 
java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
   ```
   
   
   ### Language / Project Type / NetBeans Component
   
   Gradle multi-project
   
   ### How to reproduce
   
   Copy the following content in the editor (*.toml) and delete the last brace. 
It wont get deleted because of an exception. Worse can happen if the you add or 
delete other braces.
   
   ```
   [plugins]
   jooq-codegen = { id = "org.jooq.jooq-codegen-gradle", version.ref="jooq" }
   ```
   
   ### Did this work correctly in an earlier version?
   
   No / Don't know
   
   ### Operating System
   
   Windows 10
   
   ### JDK
   
   Java 21
   
   ### Apache NetBeans packaging
   
   Apache NetBeans binary zip
   
   ### Anything else
   
   _No response_
   
   ### Are you willing to submit a pull request?
   
   No


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to