[ 
https://issues.apache.org/jira/browse/NETBEANS-3335?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16967805#comment-16967805
 ] 

Matthias Bläsing commented on NETBEANS-3335:
--------------------------------------------

I admit, that I did not read fully through the HTML lexer, but the changes that 
made the lexer recognize HTML5 style attributes, can lead to states that were 
previously not reached. The function that raises the NullPointerException can 
safely return false if it is called with a NULL value. In the worst case this 
will lead to false syntax highlighting, but will let the user still work 
normally with the file. See the referenced PR.

> NB 11.2 NullPointerException - Enter key doesn't work in editor in certain 
> files
> --------------------------------------------------------------------------------
>
>                 Key: NETBEANS-3335
>                 URL: https://issues.apache.org/jira/browse/NETBEANS-3335
>             Project: NetBeans
>          Issue Type: Bug
>          Components: web - HTML Editor
>    Affects Versions: 11.2
>         Environment: Windows 10 64-bit, JDK 11.0.1 and 13.0.1 
>            Reporter: Michal Koscielny
>            Priority: Critical
>              Labels: pull-request-available
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> I've just tried NetBeans 11.2 for PHP projects and this version appears to be 
> unusable for PHP due to lots of NPE errors, which in effect prevent the Enter 
> key from working in the editor. It looks like certain code structures trigger 
> the NPE's. So far I've come across them in js and tpl (Smarty) files. And I 
> have a way of reproducing the problem:
>  # Create a new PHP project or open an existing one.
>  # Create a new Smarty .tpl file (or open an existing one).
>  # In the editor paste this code:
> {code:java}
> <a {if $smarty.server.REQUEST_URI|strstr:"/new"}class="underline"{/if} 
> href="{url('new')}">{code}
>  # Try pressing Enter anywhere in the editor - an NPE comes up and the Enter 
> key does not work.
> There seem to be more code samples that trigger the error but for now I'm 
> reporting the first one that caught my attention. Here is the error:
> {code:java}
> java.lang.NullPointerExceptionjava.lang.NullPointerException at 
> org.netbeans.lib.html.lexer.HtmlLexer.equals(HtmlLexer.java:1557) at 
> org.netbeans.lib.html.lexer.HtmlLexer.nextToken(HtmlLexer.java:1051) at 
> org.netbeans.lib.lexer.LexerInputOperation.nextToken(LexerInputOperation.java:191)
>  at 
> org.netbeans.lib.lexer.BatchTokenList.tokenOrEmbeddingImpl(BatchTokenList.java:171)
>  at org.netbeans.lib.lexer.BatchTokenList.tokenCount(BatchTokenList.java:122) 
> at org.netbeans.api.lexer.TokenSequence.moveEnd(TokenSequence.java:607) at 
> org.netbeans.modules.html.editor.lib.ElementsParser.forTokenIndex(ElementsParser.java:106)
>  at 
> org.netbeans.modules.html.editor.lib.api.elements.ElementsIterator.<init>(ElementsIterator.java:63)
>  at 
> org.netbeans.modules.html.editor.lib.api.SyntaxAnalyzer.<init>(SyntaxAnalyzer.java:57)
>  at 
> org.netbeans.modules.html.editor.lib.api.SyntaxAnalyzer.create(SyntaxAnalyzer.java:53)
>  at 
> org.netbeans.modules.html.editor.indent.HtmlIndenter.<init>(HtmlIndenter.java:63)
>  at 
> org.netbeans.modules.html.editor.indent.HtmlIndentTask.<init>(HtmlIndentTask.java:40)
>  at 
> org.netbeans.modules.html.editor.indent.HtmlIndentTaskFactory.createTask(HtmlIndentTaskFactory.java:32)
>  at 
> org.netbeans.modules.editor.indent.TaskHandler$MimeItem.createTask(TaskHandler.java:531)
>  at 
> org.netbeans.modules.editor.indent.TaskHandler.addItem(TaskHandler.java:315) 
> at 
> org.netbeans.modules.editor.indent.TaskHandler.collectTasks(TaskHandler.java:133)
>  at 
> org.netbeans.modules.editor.indent.IndentImpl.indentLock(IndentImpl.java:136) 
> at org.netbeans.modules.editor.indent.api.Indent.lock(Indent.java:91) at 
> org.netbeans.editor.BaseKit$InsertBreakAction.actionPerformed(BaseKit.java:1518)
>  at org.netbeans.editor.BaseAction.actionPerformed(BaseAction.java:322) at 
> java.desktop/javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1810)
>  at 
> java.desktop/javax.swing.JComponent.processKeyBinding(JComponent.java:2900) 
> at 
> java.desktop/javax.swing.JComponent.processKeyBindings(JComponent.java:2948) 
> at java.desktop/javax.swing.JComponent.processKeyEvent(JComponent.java:2862) 
> at java.desktop/java.awt.Component.processEvent(Component.java:6413) at 
> java.desktop/java.awt.Container.processEvent(Container.java:2263) at 
> java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5012) at 
> java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) at 
> java.desktop/java.awt.Component.dispatchEvent(Component.java:4844) at 
> java.desktop/java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1950)
>  at 
> java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:870)
>  at 
> java.desktop/java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1139)
>  at 
> java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:1009)
>  at 
> java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:835)
>  at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4893) at 
> java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) at 
> java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2762) at 
> java.desktop/java.awt.Component.dispatchEvent(Component.java:4844) at 
> java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) at 
> java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at 
> java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) at 
> java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
>  at 
> java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
>  at 
> java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
>  at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) at 
> java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743) at 
> java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
>  at 
> java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
>  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){code}
> I'm using Windows 10 64-bit and the zipped Netbeans 11.2. I tried running on 
> jdk 11.0.1 and 13.0.1 - didn't make any difference. The error occurs even on 
> fresh NetBeans installation (without importing previous settings) without any 
> plugins apart from the default PHP plugins available under the "PHP" checkbox 
> under Plugins/Installed tab.
> I don't know exactly when the bug first appeared since I skipped 11.1. I'm 
> now back to 11.0.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

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

Reply via email to