Community
Participate
Working Groups
Getting following persistent exception in log. Latest Hudson build for the HEAD. Error in CDT UI during reconcile java.lang.NullPointerException at org.eclipse.cdt.internal.core.parser.scanner.ImageLocationInfo$MacroImageLocationInfo.createLocation(ImageLocationInfo.java:45) at org.eclipse.cdt.internal.core.parser.scanner.ASTMacroReferenceName.getImageLocation(ASTPreprocessorName.java:187) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler$PositionCollector.addNameLocation(SemanticHighlightingReconciler.java:216) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler$PositionCollector.visitNode(SemanticHighlightingReconciler.java:197) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler$PositionCollector.visit(SemanticHighlightingReconciler.java:108) at org.eclipse.cdt.internal.core.dom.parser.ASTTranslationUnit.accept(ASTTranslationUnit.java:271) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler.reconcilePositions(SemanticHighlightingReconciler.java:402) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler.reconciled(SemanticHighlightingReconciler.java:357) at org.eclipse.cdt.internal.ui.editor.CEditor.reconciled(CEditor.java:3065) at org.eclipse.cdt.internal.ui.text.CReconcilingStrategy.reconcile(CReconcilingStrategy.java:105) at org.eclipse.cdt.internal.ui.text.CReconcilingStrategy.reconcile(CReconcilingStrategy.java:71) at org.eclipse.cdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:84) at org.eclipse.cdt.internal.ui.text.CCompositeReconcilingStrategy.reconcile(CCompositeReconcilingStrategy.java:90) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:77) at org.eclipse.cdt.internal.ui.text.CReconciler.process(CReconciler.java:408) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:206)
Also that one but that one appears only once in the log: Unhandled event loop exception java.lang.NullPointerException at org.eclipse.cdt.internal.core.parser.scanner.ImageLocationInfo$MacroImageLocationInfo.createLocation(ImageLocationInfo.java:45) at org.eclipse.cdt.internal.core.parser.scanner.LocationCtxMacroExpansion.getImageLocation(LocationCtxMacroExpansion.java:98) at org.eclipse.cdt.internal.core.parser.scanner.ASTMacroExpansionLocation.getImageLocation(ASTPreprocessorNode.java:679) at org.eclipse.cdt.internal.core.parser.scanner.LocationMap.getImageLocation(LocationMap.java:491) at org.eclipse.cdt.internal.core.dom.parser.ASTNode.getImageLocation(ASTNode.java:148) at org.eclipse.cdt.internal.core.parser.scanner.FindNodeByImageLocation.processNode(FindNodeByImageLocation.java:53) at org.eclipse.cdt.internal.core.parser.scanner.FindNodeByImageLocation.visit(FindNodeByImageLocation.java:75) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTName.accept(CPPASTName.java:165) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTQualifiedName.accept(CPPASTQualifiedName.java:197) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTIdExpression.accept(CPPASTIdExpression.java:101) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTFunctionCallExpression.accept(CPPASTFunctionCallExpression.java:180) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTExpressionStatement.accept(CPPASTExpressionStatement.java:71) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTCompoundStatement.accept(CPPASTCompoundStatement.java:79) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTFunctionDefinition.accept(CPPASTFunctionDefinition.java:187) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTCompositeTypeSpecifier.accept(CPPASTCompositeTypeSpecifier.java:172) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTSimpleDeclaration.accept(CPPASTSimpleDeclaration.java:96) at org.eclipse.cdt.internal.core.dom.parser.ASTTranslationUnit.accept(ASTTranslationUnit.java:279) at org.eclipse.cdt.internal.core.parser.scanner.LocationMap.findPreprocessorNode(LocationMap.java:532) at org.eclipse.cdt.internal.core.dom.parser.ASTNodeSelector.getNode(ASTNodeSelector.java:98) at org.eclipse.cdt.internal.core.dom.parser.ASTNodeSelector.findNode(ASTNodeSelector.java:89) at org.eclipse.cdt.internal.core.dom.parser.ASTNodeSelector.findNode(ASTNodeSelector.java:51) at org.eclipse.cdt.internal.core.dom.parser.ASTNodeSelector.findEnclosingName(ASTNodeSelector.java:159) at org.eclipse.cdt.internal.ui.editor.CElementHyperlinkDetector$1.runOnAST(CElementHyperlinkDetector.java:78) at org.eclipse.cdt.internal.core.model.ASTCache.runOnAST(ASTCache.java:223) at org.eclipse.cdt.internal.ui.editor.ASTProvider.runOnAST(ASTProvider.java:347) at org.eclipse.cdt.internal.ui.editor.CElementHyperlinkDetector.detectHyperlinks(CElementHyperlinkDetector.java:71) at org.eclipse.ui.texteditor.HyperlinkDetectorRegistry$HyperlinkDetectorDelegate.detectHyperlinks(HyperlinkDetectorRegistry.java:80) at org.eclipse.jface.text.hyperlink.HyperlinkManager.findHyperlinks(HyperlinkManager.java:286) at org.eclipse.jface.text.hyperlink.HyperlinkManager.findHyperlinks(HyperlinkManager.java:258) at org.eclipse.jface.text.hyperlink.HyperlinkManager.mouseMove(HyperlinkManager.java:462) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:211) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4150) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3739) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
I just got this too: java.lang.NullPointerException at org.eclipse.cdt.internal.core.parser.scanner.ImageLocationInfo$MacroImageLocationInfo.createLocation(ImageLocationInfo.java:45) at org.eclipse.cdt.internal.core.parser.scanner.LocationCtxMacroExpansion.getImageLocation(LocationCtxMacroExpansion.java:98) at org.eclipse.cdt.internal.core.parser.scanner.ASTMacroExpansionLocation.getImageLocation(ASTPreprocessorNode.java:679) at org.eclipse.cdt.internal.core.parser.scanner.LocationMap.getImageLocation(LocationMap.java:491) at org.eclipse.cdt.internal.core.dom.parser.ASTNode.getImageLocation(ASTNode.java:148) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler$PositionCollector.addNameLocation(SemanticHighlightingReconciler.java:216) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler$PositionCollector.visitNode(SemanticHighlightingReconciler.java:197) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler$PositionCollector.visit(SemanticHighlightingReconciler.java:184) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTName.accept(CPPASTName.java:165) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTTemplateId.accept(CPPASTTemplateId.java:166) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTNamedTypeSpecifier.accept(CPPASTNamedTypeSpecifier.java:93) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTSimpleDeclaration.accept(CPPASTSimpleDeclaration.java:96) at org.eclipse.cdt.internal.core.dom.parser.ASTTranslationUnit.accept(ASTTranslationUnit.java:279) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler.reconcilePositions(SemanticHighlightingReconciler.java:402) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler.reconciled(SemanticHighlightingReconciler.java:357) at org.eclipse.cdt.internal.ui.editor.CEditor.reconciled(CEditor.java:3091) at org.eclipse.cdt.internal.ui.text.CReconcilingStrategy.reconcile(CReconcilingStrategy.java:105) at org.eclipse.cdt.internal.ui.text.CReconcilingStrategy.reconcile(CReconcilingStrategy.java:71) at org.eclipse.cdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:84) at org.eclipse.cdt.internal.ui.text.CCompositeReconcilingStrategy.reconcile(CCompositeReconcilingStrategy.java:90) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:77) at org.eclipse.cdt.internal.ui.text.CReconciler.process(CReconciler.java:408) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:206)
Can you provide a piece of source code that triggers the bug?
I am getting those coming to the log but haven't figured what causes it yet. Any pointers which user action could trigger that? Is it hovering, F3, opening a file, editing?
(In reply to comment #4) > I am getting those coming to the log but haven't figured what causes it yet. > Any pointers which user action could trigger that? Is it hovering, F3, opening > a file, editing? The reconciler is called to build the CModel for the currently open source file. It gets triggered when you open the file, and also when you make edits (after a short delay of non-activity on the user's part).
I got something different, maybe a different bug though: java.lang.NullPointerException at org.eclipse.cdt.core.parser.util.CharArrayUtils.equals(CharArrayUtils.java:92) at org.eclipse.cdt.core.parser.util.CharTable.lookup(CharTable.java:163) at org.eclipse.cdt.core.parser.util.CharArrayObjectMap.get(CharArrayObjectMap.java:53) at org.eclipse.cdt.core.parser.util.CharArrayObjectMap.get(CharArrayObjectMap.java:60) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPScope.addName(CPPScope.java:108) at org.eclipse.cdt.internal.core.dom.parser.ASTInternal.addName(ASTInternal.java:54) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics.populateCache(CPPSemantics.java:1577) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics.populateCache(CPPSemantics.java:1467) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPScope.populateCache(CPPScope.java:321) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPScope.getBindingsInAST(CPPScope.java:251) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPScope.getBindings(CPPScope.java:207) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics.getBindingsFromScope(CPPSemantics.java:1199) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics.lookup(CPPSemantics.java:943) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics.resolveBinding(CPPSemantics.java:255) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor.createBinding(CPPVisitor.java:227) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTName.createIntermediateBinding(CPPASTName.java:63) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTNameBase.resolvePreBinding(CPPASTNameBase.java:74) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor.getContainingScopeOrNull(CPPVisitor.java:1082) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor.getContainingScope(CPPVisitor.java:1042) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics.getLookupScope(CPPSemantics.java:783) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics.lookup(CPPSemantics.java:896) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics.resolveBinding(CPPSemantics.java:255) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor.createBinding(CPPVisitor.java:227) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTName.createIntermediateBinding(CPPASTName.java:63) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTNameBase.resolveBinding(CPPASTNameBase.java:86) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTQualifiedName.resolveBinding(CPPASTQualifiedName.java:92) at org.eclipse.cdt.internal.ui.editor.SemanticToken.getBinding(SemanticToken.java:47) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightings$TemplateParameterHighlighting.consumes(SemanticHighlightings.java:1156) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler$PositionCollector.visitNode(SemanticHighlightingReconciler.java:195) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler$PositionCollector.visit(SemanticHighlightingReconciler.java:184) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTQualifiedName.accept(CPPASTQualifiedName.java:182) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTNamedTypeSpecifier.accept(CPPASTNamedTypeSpecifier.java:93) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTSimpleDeclaration.accept(CPPASTSimpleDeclaration.java:96) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTDeclarationStatement.accept(CPPASTDeclarationStatement.java:72) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTForStatement.accept(CPPASTForStatement.java:130) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTCompoundStatement.accept(CPPASTCompoundStatement.java:79) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTFunctionDefinition.accept(CPPASTFunctionDefinition.java:187) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTNamespaceDefinition.accept(CPPASTNamespaceDefinition.java:129) at org.eclipse.cdt.internal.core.dom.parser.ASTTranslationUnit.accept(ASTTranslationUnit.java:279) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler.reconcilePositions(SemanticHighlightingReconciler.java:402) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler.reconciled(SemanticHighlightingReconciler.java:357) at org.eclipse.cdt.internal.ui.editor.CEditor.reconciled(CEditor.java:3091) Then after editing some more, I noticed that semantic highlighting was not working at all anymore. Looking at the threads: - 3 CReconciler threads waiting in AbstractReconciler:179 fDirtyRegionQueue.wait(fDelay); - 1 CReconciler in an infinite loop in org.eclipse.cdt.core.parser.util.HashTable.linkIntoHashTable(int, int) while (nextTable[j] != 0) { // if (nextTable[j] - 1 == j) { // break; // } j = nextTable[j] - 1; } value of nextTable[0] was 1 I was editing OgreMesh.cpp (http://www.ogre3d.org/)
(In reply to comment #6) Most likely this exception is the result of concurrently accessing the same AST from different threads (The code of the HashTable has not been changed in the last 3 years).
(In reply to comment #7) > (In reply to comment #6) > Most likely this exception is the result of concurrently accessing the same AST > from different threads (The code of the HashTable has not been changed in the > last 3 years). It certainly looks this way. I have troubles to corner the exception, it always slips behind the radar. The closest I happen to notice was that I was doing a search on a macro (#define) then checking the occurrences. Then I manually renamed the macro, navigated to search results and fixed all the occurrences. When my attention released from rename process the exception was there. I don't really know what exactly action triggered it.
*** Bug 344440 has been marked as a duplicate of this bug. ***
(In reply to bug 344440 comment #5) > (In reply to comment #4) > > The same infinite loop is reported in bug 343175 comment 6 > > *** This bug has been marked as a duplicate of bug 343175 *** > Confirmed. After updating from yesterday's HEAD I don't see that problem any > longer. I do not see reconcile NPE reported in this bug any longer after applying the build with the fix either. *** This bug has been marked as a duplicate of bug 343948 ***