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

Summary: [newcodemodel] java.lang.NullPointerException
Product: cnd Reporter: Alexander Simon <alexvsimon>
Component: Code ModelAssignee: Vladimir Kvashin <vkvashin>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P3    
Version: 8.1   
Hardware: PC   
OS: Solaris   
Issue Type: DEFECT Exception Reporter:

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