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.
Build: NetBeans IDE 8.1 (Build 20151212-e2c7bc09ac51) VM: Java HotSpot(TM) 64-Bit Server VM, 24.71-b01, Java(TM) SE Runtime Environment, 1.7.0_71-b14 OS: Linux User Comments: vkvashin: Opened a couple of simple test projects Stacktrace: java.lang.AssertionError: Cannot modify const object! at org.clank.support.AbstractArrayPointerType.$preDec(AbstractArrayPointerType.java:58) at org.clank.support.AbstractArrayPointerType.$preDec(AbstractArrayPointerType.java:18) at org.clang.lex.StringLiteralParser.init(StringLiteralParser.java:506) at org.clang.lex.StringLiteralParser.<init>(StringLiteralParser.java:133) at org.clang.lex.StringLiteralParser.<init>(StringLiteralParser.java:112) at org.clang.lex.Preprocessor.FinishLexStringLiteral(Preprocessor.java:2493)
Created attachment 157779 [details] stacktrace
*** Bug 257132 has been marked as a duplicate of this bug. ***
The code that produces assertion is // Strip the end quote. ThisTokEnd.$preDec(); in StringLiteralParser.init What is strange about that I pass the same line in tye following stack and the pointer is NOT const: "Code Model Parser 1: ONE FILE Reparsing /home/vkvashin/NetBeansProjects/iz_256626/iz_256626.c" at org.clang.lex.StringLiteralParser.init(StringLiteralParser.java:506) at org.clang.lex.StringLiteralParser.<init>(StringLiteralParser.java:133) at org.clang.lex.StringLiteralParser.<init>(StringLiteralParser.java:112) at org.clang.lex.Preprocessor.HandleDigitDirective(Preprocessor.java:7494) at org.clang.lex.Preprocessor.HandleDirective(Preprocessor.java:4256) at org.clang.lex.Lexer.LexTokenInternal(Lexer.java:2798) at org.clang.lex.Lexer.Lex(Lexer.java:378) at org.clang.lex.Preprocessor.Lex(Preprocessor.java:2367) at org.clang.tools.services.impl.PreprocessorSupport.ConsumePreprocessedInput(PreprocessorSupport.java:386) at org.clang.tools.services.impl.PreprocessorSupport.dumpPreprocessedEntry(PreprocessorSupport.java:296) at org.clang.tools.services.impl.PreprocessorSupport.preprocessEntries(PreprocessorSupport.java:233) at org.clang.tools.services.impl.PreprocessorSupport.preprocess(PreprocessorSupport.java:176) at org.clang.tools.services.ClankPreprocessorServices.preprocess(ClankPreprocessorServices.java:67) at org.netbeans.modules.cnd.apt.impl.support.clank.ClankDriverImpl.preprocessImpl(ClankDriverImpl.java:153) at org.netbeans.modules.cnd.apt.support.ClankDriver.preprocess(ClankDriver.java:120) at org.netbeans.modules.cnd.modelimpl.parser.clank.ClankTokenStreamProducer.preprocessWithHandler(ClankTokenStreamProducer.java:297) at org.netbeans.modules.cnd.modelimpl.parser.clank.ClankTokenStreamProducer.getPreprocessorOutputForInterestedFile(ClankTokenStreamProducer.java:273) at org.netbeans.modules.cnd.modelimpl.parser.clank.ClankTokenStreamProducer.preprocessAndGetFileTokenStream(ClankTokenStreamProducer.java:231) at org.netbeans.modules.cnd.modelimpl.parser.clank.ClankTokenStreamProducer.getTokenStreamForParsingAndCaching(ClankTokenStreamProducer.java:180) at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.doParse(FileImpl.java:1509) at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl._reparse(FileImpl.java:997) at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.ensureParsedImpl(FileImpl.java:784) at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.ensureParsed(FileImpl.java:641) at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread._run(ParserThread.java:148) at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread.run(ParserThread.java:74) at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThreadManager$Wrapper.run(ParserThreadManager.java:92) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1443) at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:68) at org.openide.util.lookup.Lookups.executeWith(Lookups.java:303) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2058)
to reproduce, get the file with the following line and a space after unclosed qupte: #pragma message "
fixed in sputnik: 2ab996cff41d
The fix was incomplete. If the line has trailing spaces, this leads to java.lang.ArrayIndexOutOfBoundsException: 22 at org.clank.support.aliases.char$ptr$array.$at(char$ptr$array.java:76) at org.clang.lex.StringLiteralParser.init(StringLiteralParser.java:569) at org.clang.lex.StringLiteralParser.<init>(StringLiteralParser.java:133) at org.clang.lex.StringLiteralParser.<init>(StringLiteralParser.java:112) at org.clang.lex.Preprocessor.FinishLexStringLiteral(Preprocessor.java:2493) at org.clang.lex.impl.PragmaStatics$PragmaMessageHandler.HandlePragma(PragmaStatics.java:413) at org.clang.lex.PragmaNamespace.HandlePragma(PragmaNamespace.java:146) at org.clang.lex.Preprocessor.HandlePragmaDirective(Preprocessor.java:8825) at org.clang.lex.Preprocessor.HandleDirective(Preprocessor.java:4316) at org.clang.lex.Lexer.LexTokenInternal(Lexer.java:2798) at org.clang.lex.Lexer.Lex(Lexer.java:378) at org.clang.lex.Preprocessor.Lex(Preprocessor.java:2367) at org.clang.tools.services.impl.PreprocessorSupport.ConsumePreprocessedInput(PreprocessorSupport.java:386) ...
Additional fix in sputnik (and test): c5512799b618 not closing as the binaries are not updated yet
Binaries update: ecc4c9530fa7
Integrated into 'main-silver', will be available in build *201512220002* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main-silver/rev/f71f4a88985a User: Vladimir Kvashin <vkvashin@netbeans.org> Log: updated binaries after fixing #256628, #257133 and #256629 (Bug 256628 - [newcodemodel] AssertionError: Invalid token lexed. #57133 - [newcodemodel] AssertionError: Cannot modify const object! and #Bug 256629 - [newcodemodel] StringIndexOutOfBoundsException: String index out of range: -8) (transplanted from ecc4c9530fa77a51bd0c0ac1c32ec8a993aaf4b1)
Fixes of this bug: http://hg.netbeans.org/releases/rev/ecc4c9530fa7
Verified in NetBeans IDE 8.1 (Build 201601300101)