Community
Participate
Working Groups
When indexing 'SString.cpp', 'Logging_Strategy.cpp', 'Log_Record.cpp', 'Log_Msg.cpp' or 'IOStream.cpp' of the ACE-5.5 source(http://www.cs.wustl.edu/~schmidt/ACE.html) the following NPE is thrown: java.lang.NullPointerException at org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPSpecialization.matchesArguments(PDOMCPPSpecialization.java:164) at org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPClassTemplate$InstanceFinder.visit(PDOMCPPClassTemplate.java:303) at org.eclipse.cdt.internal.core.pdom.db.PDOMNodeLinkedList.accept(PDOMNodeLinkedList.java:51) at org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPClassTemplate.getInstance(PDOMCPPClassTemplate.java:325) at org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPClassTemplate.deferredInstance(PDOMCPPClassTemplate.java:285) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTemplates.instantiateTemplate(CPPTemplates.java:1568) at org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPClassTemplate.instantiate(PDOMCPPClassTemplate.java:349) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTemplates.createBinding(CPPTemplates.java:278) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTTemplateId.resolveBinding(CPPASTTemplateId.java:78) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor.getBaseType(CPPVisitor.java:1620) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor.createType(CPPVisitor.java:1582) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor.createType(CPPVisitor.java:1573) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTypedef.getType(CPPTypedef.java:108) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPSemantics.getUltimateType(CPPSemantics.java:2884) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPSemantics.getAssociatedScopes(CPPSemantics.java:847) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPSemantics.createLookupData(CPPSemantics.java:835) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPSemantics.resolveBinding(CPPSemantics.java:618) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor.resolveBinding(CPPVisitor.java:976) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor.createBinding(CPPVisitor.java:189) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTName.resolveBinding(CPPASTName.java:73) at org.eclipse.cdt.internal.core.pdom.PDOMWriter.addSymbols(PDOMWriter.java:130)
A PDOM specialization gets its template arguments by mapping its template parameters to the appropriate types through an ObjectMap. The PDOM template parameters, however, do not have hashCode() properly implemented (depends on Bug #180784), so each template argument is null instead.
Created attachment 63094 [details] proposed patch The patch for Bug #180784 addresses one way one encountering this exception. However, there is another way: if template arguments are problem bindings. In this case, there simply needs to be a check for null in the appropriate place.
Simple enough. Patch applied.
Thanks, the NPEs are gone. With CDT as of 20070410 I get 77 PDOMNotImplementedErrors when parsing ACE/TAO. The problem is already reported in bug 181015, though.
Setting to milestone 4.0 so we can generate a report of all bugs fixed in 4.0.
assigning
done