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.

Bug 256541 - [newcodemodel] java.lang.NullPointerException
Summary: [newcodemodel] java.lang.NullPointerException
Status: RESOLVED FIXED
Alias: None
Product: cnd
Classification: Unclassified
Component: Code Model (show other bugs)
Version: 8.1
Hardware: PC Solaris
: P3 normal (vote)
Assignee: Vladimir Kvashin
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-11-12 10:47 UTC by Alexander Simon
Modified: 2016-01-28 14:27 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Simon 2015-11-12 10:47:01 UTC
NPE in log:

INFO [dlight.libs.common.logger]
java.lang.NullPointerException
	at org.clang.lex.impl.EvaluateValueHelper.$destroy(EvaluateValueHelper.java:46)
	at org.clang.lex.Preprocessor.$releasePPValue(Preprocessor.java:9651)
	at org.clang.lex.Preprocessor.EvaluateDirectiveExpression(Preprocessor.java:5808)
	at org.clang.lex.Preprocessor.HandleIfDirective(Preprocessor.java:8633)
	at org.clang.lex.Preprocessor.HandleDirective(Preprocessor.java:4262)
	at org.clang.lex.Lexer.LexTokenInternal(Lexer.java:2800)
	at org.clang.lex.Lexer.Lex(Lexer.java:378)
	at org.clang.lex.Preprocessor.Lex(Preprocessor.java:2362)
	at org.clang.lex.Preprocessor.LexUnexpandedToken(Preprocessor.java:2533)
	at org.clang.lex.Preprocessor.ReadFunctionLikeMacroArgs(Preprocessor.java:6313)
	at org.clang.lex.Preprocessor.ReadFunctionLikeMacroArgs(Preprocessor.java:6270)
	at org.clang.lex.Preprocessor.HandleMacroExpandedIdentifier(Preprocessor.java:5973)
	at org.clang.lex.Preprocessor.HandleIdentifier(Preprocessor.java:3812)
	at org.clang.lex.Lexer.LexIdentifier(Lexer.java:3513)
	at org.clang.lex.Lexer.LexTokenInternal(Lexer.java:2198)
	at org.clang.lex.Lexer.Lex(Lexer.java:378)
	at org.clang.lex.Preprocessor.Lex(Preprocessor.java:2362)
	at org.clang.tools.services.impl.PreprocessorSupport.ConsumePreprocessedInput(PreprocessorSupport.java:404)
	at org.clang.tools.services.impl.PreprocessorSupport.dumpPreprocessedEntry(PreprocessorSupport.java:292)
	at org.clang.tools.services.impl.PreprocessorSupport.preprocessEntries(PreprocessorSupport.java:232)
	at org.clang.tools.services.impl.PreprocessorSupport.preprocess(PreprocessorSupport.java:175)
	at org.clang.tools.services.ClankPreprocessorServices.preprocess(ClankPreprocessorServices.java:67)
	at org.netbeans.modules.cnd.apt.impl.support.clank.ClankDriverImpl.preprocessImpl(ClankDriverImpl.java:158)
	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.getTokenStreamForParsing(ClankTokenStreamProducer.java:196)
	at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.doParse(FileImpl.java:1519)
	at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl._parse(FileImpl.java:1150)
	at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.ensureParsedImpl(FileImpl.java:726)
	at org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.ensureParsed(FileImpl.java:641)
[catch] 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)
Comment 1 Alexander Simon 2015-11-12 10:59:04 UTC
Source code is gcc trunk:
https://codeload.github.com/gcc-mirror/gcc/zip/master
Was unconfigured project.
Comment 2 Vladimir Kvashin 2015-12-18 17:21:28 UTC
I parsed unconfigured gcc-master on Ubuntu Linux and on Solaris, with GNU and Studio 12.4 tool chains (on both OS) and this exception never repeated.

Code analysis shows that the only reason for this NPE to happen is possible another exception in Preprocessor.EvaluateDirectiveExpression before $getPPValue(BitWidth) is called.

(That's because $getPPValue(BitWidth) never returns null, as null can never get into EvaluateValueHelper.$PPValues). 

And that's how it was on Nov 12 when the bug was filed.

So the remedy is just to add "if (ResVal != null) { ..."

Sputnik
 bddd002445b7
Comment 3 ilia 2016-01-28 14:27:57 UTC
There is no change for this bug in cnd-main. Seems it was filtered out because binaries-list file was overridden