This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Summary: | Invalid state of lexer after fixes of issue 87014 | ||
---|---|---|---|
Product: | editor | Reporter: | Marek Fukala <mfukala> |
Component: | Lexer | Assignee: | Miloslav Metelka <mmetelka> |
Status: | RESOLVED FIXED | ||
Severity: | blocker | CC: | blaha, jsedek, mschovanek, pjiricka, vstejskal |
Priority: | P1 | ||
Version: | 6.x | ||
Hardware: | All | ||
OS: | All | ||
Issue Type: | DEFECT | Exception Reporter: | |
Attachments: | AssertionError metioned by Marek |
Description
Marek Fukala
2007-09-04 12:52:24 UTC
Yes, I've already found a cause of this problem yesterday and I have the fix almost finished. I've also made some refactoring of the lexer's updating process. I plan to integrate it today. Apologies, I there was one thing that delayed me. The exception should no longer occur now. As a side effect of the fix I have also improved debugging of the TokenHierarchy i.e. TH.toString(). It now outputs list of existing token list lists (for TH.tokenSequenceList()). Ruby tests should pass as well. Checking in lexer/src/org/netbeans/lib/lexer/TokenHierarchyOperation.java; /cvs/lexer/src/org/netbeans/lib/lexer/TokenHierarchyOperation.java,v <-- TokenHierarchyOperation.java new revision: 1.21; previous revision: 1.20 done Checking in lexer/src/org/netbeans/lib/lexer/LexerUtilsConstants.java; /cvs/lexer/src/org/netbeans/lib/lexer/LexerUtilsConstants.java,v <-- LexerUtilsConstants.java new revision: 1.17; previous revision: 1.16 done Checking in lexer/src/org/netbeans/lib/lexer/TokenListList.java; /cvs/lexer/src/org/netbeans/lib/lexer/TokenListList.java,v <-- TokenListList.java new revision: 1.5; previous revision: 1.4 done Checking in lexer/src/org/netbeans/lib/lexer/EmbeddedTokenList.java; /cvs/lexer/src/org/netbeans/lib/lexer/EmbeddedTokenList.java,v <-- EmbeddedTokenList.java new revision: 1.11; previous revision: 1.10 done RCS file: /cvs/lexer/src/org/netbeans/lib/lexer/TokenHierarchyUpdate.java,v done Checking in lexer/src/org/netbeans/lib/lexer/TokenHierarchyUpdate.java; /cvs/lexer/src/org/netbeans/lib/lexer/TokenHierarchyUpdate.java,v <-- TokenHierarchyUpdate.java initial revision: 1.1 done Checking in lexer/src/org/netbeans/lib/lexer/EmbeddingContainer.java; /cvs/lexer/src/org/netbeans/lib/lexer/EmbeddingContainer.java,v <-- EmbeddingContainer.java new revision: 1.13; previous revision: 1.12 done Checking in lexer/src/org/netbeans/lib/lexer/inc/TokenListUpdater.java; /cvs/lexer/src/org/netbeans/lib/lexer/inc/TokenListUpdater.java,v <-- TokenListUpdater.java new revision: 1.18; previous revision: 1.17 done Checking in lexer/src/org/netbeans/lib/lexer/inc/IncTokenList.java; /cvs/lexer/src/org/netbeans/lib/lexer/inc/IncTokenList.java,v <-- IncTokenList.java new revision: 1.12; previous revision: 1.11 done Checking in lexer/src/org/netbeans/lib/lexer/inc/TokenHierarchyEventInfo.java; /cvs/lexer/src/org/netbeans/lib/lexer/inc/TokenHierarchyEventInfo.java,v <-- TokenHierarchyEventInfo.java new revision: 1.6; previous revision: 1.5 done Checking in editor/util/src/org/netbeans/lib/editor/util/CharSequenceUtilities.java; /cvs/editor/util/src/org/netbeans/lib/editor/util/CharSequenceUtilities.java,v <-- CharSequenceUtilities.java new revision: 1.8; previous revision: 1.7 done Checking in lexer/test/unit/src/org/netbeans/lib/lexer/test/LexerTestUtilities.java; /cvs/lexer/test/unit/src/org/netbeans/lib/lexer/test/LexerTestUtilities.java,v <-- LexerTestUtilities.java new revision: 1.12; previous revision: 1.11 done Checking in lexer/test/unit/src/org/netbeans/lib/lexer/JoinSectionsTest.java; /cvs/lexer/test/unit/src/org/netbeans/lib/lexer/JoinSectionsTest.java,v <-- JoinSectionsTest.java new revision: 1.5; previous revision: 1.4 done Checking in lexer/src/org/netbeans/api/lexer/TokenUtilities.java; /cvs/lexer/src/org/netbeans/api/lexer/TokenUtilities.java,v <-- TokenUtilities.java new revision: 1.4; previous revision: 1.3 done Checking in lexer/src/org/netbeans/api/lexer/TokenSequence.java; /cvs/lexer/src/org/netbeans/api/lexer/TokenSequence.java,v <-- TokenSequence.java new revision: 1.14; previous revision: 1.13 done Oops, I've got one more exc :( Reopening. java.lang.NullPointerException at org.netbeans.lib.lexer.TokenHierarchyUpdate$TLLInfo.doMarking(TokenHierarchyUpdate.java:524) at org.netbeans.lib.lexer.TokenHierarchyUpdate$TLLInfo.markRemoved(TokenHierarchyUpdate.java:377) at org.netbeans.lib.lexer.TokenHierarchyUpdate.markRemovedEmbeddings(TokenHierarchyUpdate.java:279) at org.netbeans.lib.lexer.TokenHierarchyUpdate.processNonBoundsChange(TokenHierarchyUpdate.java:222) Additional fix of the NPE and token list list initialization. Checking in EmbeddedTokenList.java; /cvs/lexer/src/org/netbeans/lib/lexer/EmbeddedTokenList.java,v <-- EmbeddedTokenList.java new revision: 1.12; previous revision: 1.11 done Checking in TokenHierarchyUpdate.java; /cvs/lexer/src/org/netbeans/lib/lexer/TokenHierarchyUpdate.java,v <-- TokenHierarchyUpdate.java new revision: 1.2; previous revision: 1.1 done Removing EmbeddedLexerInputOperation.java; /cvs/lexer/src/org/netbeans/lib/lexer/EmbeddedLexerInputOperation.java,v <-- EmbeddedLexerInputOperation.java new revision: delete; previous revision: 1.1 done Checking in TokenListList.java; /cvs/lexer/src/org/netbeans/lib/lexer/TokenListList.java,v <-- TokenListList.java new revision: 1.6; previous revision: 1.5 done After commiting fixes to Checking in web/jspsyntax/lexer/src/org/netbeans/lib/jsp/lexer/JspLexer.java; new revision: 1.27; previous revision: 1.26 Checking in html/lexer/src/org/netbeans/lib/html/lexer/HTMLLexer.java; new revision: 1.18; previous revision: 1.17 the JSP editor is almost unusable, this seems not to be regressions of the fixes, they just probably revealed other problems in the infrastructure. Just try to open any JSP and type <%@ ... you will got some exceptions, the editor text is disappearing, you have to close the file :-|. I tend to think this is a P1... Created attachment 48254 [details]
AssertionError metioned by Marek
But the steps to reproduce on my box are little different: 1) type in a .jsp <% out.print("AA"); % 2) save it 3) type > 4) undo or remove the last > ERROR: IDE throws the AssertionError Agree with Marek's opinion, it is Beta1 stopper. Increasing priority to P1. Hopefully fixed. The assertion should no longer occur in the mentioned case. I did not experience any assertions during jsp editing so far. Syntax coloring of <a href="aa${xbb}aa"/> seems to be updated fine. However I'm experiencing a repaint problem (text not shown) when opening a ruby file with just a single line with a comment. First I thought it's because of the lexer but I did not find any inconsistency. Later I've reproduced the same behavior with the .properties file which does not use the lexer so it should be somewhere else than in the lexer. I will investigate it further. Checking in TokenHierarchyOperation.java; /cvs/lexer/src/org/netbeans/lib/lexer/TokenHierarchyOperation.java,v <-- TokenHierarchyOperation.java new revision: 1.22; previous revision: 1.21 done Checking in LexerUtilsConstants.java; /cvs/lexer/src/org/netbeans/lib/lexer/LexerUtilsConstants.java,v <-- LexerUtilsConstants.java new revision: 1.18; previous revision: 1.17 done Checking in TokenHierarchyUpdate.java; /cvs/lexer/src/org/netbeans/lib/lexer/TokenHierarchyUpdate.java,v <-- TokenHierarchyUpdate.java new revision: 1.3; previous revision: 1.2 done Checking in EmbeddingContainer.java; /cvs/lexer/src/org/netbeans/lib/lexer/EmbeddingContainer.java,v <-- EmbeddingContainer.java new revision: 1.14; previous revision: 1.13 done Checking in TokenListList.java; /cvs/lexer/src/org/netbeans/lib/lexer/TokenListList.java,v <-- TokenListList.java new revision: 1.7; previous revision: 1.6 done Checking in inc/TokenListChange.java; /cvs/lexer/src/org/netbeans/lib/lexer/inc/TokenListChange.java,v <-- TokenListChange.java new revision: 1.12; previous revision: 1.11 *** Issue 114647 has been marked as a duplicate of this issue. *** Integrated into release60_beta1: Checking in lexer/src/org/netbeans/api/lexer/TokenSequence.java; /cvs/lexer/src/org/netbeans/api/lexer/TokenSequence.java,v <-- TokenSequence.java new revision: 1.13.2.1; previous revision: 1.13 done Checking in lexer/src/org/netbeans/api/lexer/TokenUtilities.java; /cvs/lexer/src/org/netbeans/api/lexer/TokenUtilities.java,v <-- TokenUtilities.java new revision: 1.3.14.1; previous revision: 1.3 done Removing lexer/src/org/netbeans/lib/lexer/EmbeddedLexerInputOperation.java; /cvs/lexer/src/org/netbeans/lib/lexer/Attic/EmbeddedLexerInputOperation.java,v <-- EmbeddedLexerInputOperation.java new revision: delete; previous revision: 1.1.2 done Checking in lexer/src/org/netbeans/lib/lexer/EmbeddedTokenList.java; /cvs/lexer/src/org/netbeans/lib/lexer/EmbeddedTokenList.java,v <-- EmbeddedTokenList.java new revision: 1.10.2.1; previous revision: 1.10 done Checking in lexer/src/org/netbeans/lib/lexer/EmbeddingContainer.java; /cvs/lexer/src/org/netbeans/lib/lexer/EmbeddingContainer.java,v <-- EmbeddingContainer.java new revision: 1.12.2.1; previous revision: 1.12 done Checking in lexer/src/org/netbeans/lib/lexer/LexerUtilsConstants.java; /cvs/lexer/src/org/netbeans/lib/lexer/LexerUtilsConstants.java,v <-- LexerUtilsConstants.java new revision: 1.16.2.1; previous revision: 1.16 done Checking in lexer/src/org/netbeans/lib/lexer/TokenHierarchyOperation.java; /cvs/lexer/src/org/netbeans/lib/lexer/TokenHierarchyOperation.java,v <-- TokenHierarchyOperation.java new revision: 1.20.2.1; previous revision: 1.20 done Checking in lexer/src/org/netbeans/lib/lexer/TokenHierarchyUpdate.java; /cvs/lexer/src/org/netbeans/lib/lexer/TokenHierarchyUpdate.java,v <-- TokenHierarchyUpdate.java new revision: 1.3.2.1; previous revision: 1.3 done Checking in lexer/src/org/netbeans/lib/lexer/TokenListList.java; /cvs/lexer/src/org/netbeans/lib/lexer/TokenListList.java,v <-- TokenListList.java new revision: 1.4.2.1; previous revision: 1.4 done Checking in lexer/src/org/netbeans/lib/lexer/inc/IncTokenList.java; /cvs/lexer/src/org/netbeans/lib/lexer/inc/IncTokenList.java,v <-- IncTokenList.java new revision: 1.11.2.1; previous revision: 1.11 done Checking in lexer/src/org/netbeans/lib/lexer/inc/TokenHierarchyEventInfo.java; /cvs/lexer/src/org/netbeans/lib/lexer/inc/TokenHierarchyEventInfo.java,v <-- TokenHierarchyEventInfo.java new revision: 1.5.10.1; previous revision: 1.5 done Checking in lexer/src/org/netbeans/lib/lexer/inc/TokenListChange.java; /cvs/lexer/src/org/netbeans/lib/lexer/inc/TokenListChange.java,v <-- TokenListChange.java new revision: 1.11.6.1; previous revision: 1.11 done Checking in lexer/src/org/netbeans/lib/lexer/inc/TokenListUpdater.java; /cvs/lexer/src/org/netbeans/lib/lexer/inc/TokenListUpdater.java,v <-- TokenListUpdater.java new revision: 1.17.2.1; previous revision: 1.17 done Checking in lexer/test/unit/src/org/netbeans/lib/lexer/JoinSectionsTest.java; /cvs/lexer/test/unit/src/org/netbeans/lib/lexer/JoinSectionsTest.java,v <-- JoinSectionsTest.java new revision: 1.4.2.1; previous revision: 1.4 done Checking in lexer/test/unit/src/org/netbeans/lib/lexer/test/LexerTestUtilities.java; /cvs/lexer/test/unit/src/org/netbeans/lib/lexer/test/LexerTestUtilities.java,v <-- LexerTestUtilities.java new revision: 1.11.10.1; previous revision: 1.11 done Checking in editor/util/src/org/netbeans/lib/editor/util/CharSequenceUtilities.java; /cvs/editor/util/src/org/netbeans/lib/editor/util/CharSequenceUtilities.java,v <-- CharSequenceUtilities.java new revision: 1.7.14.1; previous revision: 1.7 I did not integrate JspLexer and HTMLLexer updates into release60_beta1 - I'll talk to Marek regarding it ASAP. Reopennig till Marek integrates JspLexer and HTMLLexer updates into release60_beta1 Checking in html/lexer/src/org/netbeans/lib/html/lexer/HTMLLexer.java; /cvs/html/lexer/src/org/netbeans/lib/html/lexer/HTMLLexer.java,v <-- HTMLLexer.java new revision: 1.17.6.1; previous revision: 1.17 done Checking in web/jspsyntax/lexer/src/org/netbeans/api/jsp/lexer/JspTokenId.java; /cvs/web/jspsyntax/lexer/src/org/netbeans/api/jsp/lexer/JspTokenId.java,v <-- JspTokenId.java new revision: 1.13.10.1; previous revision: 1.13 done Checking in web/jspsyntax/lexer/src/org/netbeans/lib/jsp/lexer/JspLexer.java; /cvs/web/jspsyntax/lexer/src/org/netbeans/lib/jsp/lexer/JspLexer.java,v <-- JspLexer.java new revision: 1.26.2.1; previous revision: 1.26 |