Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 319033

Summary: AbstractIndexerTask.extractFiles(...) uses PossibleTranslationUnit concrete class, breaks standalone indexing
Product: [Tools] CDT Reporter: Chris Recoskie <recoskie>
Component: cdt-indexerAssignee: Project Inbox <cdt-indexer-inbox>
Status: VERIFIED FIXED QA Contact: Markus Schorn <mschorn.eclipse>
Severity: blocker    
Priority: P3    
Version: 7.0   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:
Attachments:
Description Flags
fix mschorn.eclipse: iplog-

Description Chris Recoskie CLA 2010-07-06 13:51:06 EDT
Stacktrace below.

A possible solution would be to create a protected method in AbstractIndexerTask to allow for concrete implementations to override the behaviour of determining how a given translation unit is only a "potential" translation unit.  E.g., boolean isPossibleTranslationUnit(ITranslationUnit tu)


Exception in thread "Remote Indexer" java.lang.NoClassDefFoundError: org.eclipse.cdt.internal.core.model.TranslationUnit
        at java.lang.ClassLoader.defineClassImpl(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:266)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:600)
        at java.net.URLClassLoader.access$400(URLClassLoader.java:124)
        at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1055)
        at java.security.AccessController.doPrivileged(AccessController.java:274)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:492)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:639)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:605)
        at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.extractFiles(AbstractIndexerTask.java:388)
        at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.runTask(AbstractIndexerTask.java:336)
        at org.eclipse.cdt.internal.core.indexer.StandaloneIndexerTask.run(StandaloneIndexerTask.java:131)
        at org.eclipse.cdt.internal.core.indexer.StandaloneIndexer.handleDelta(StandaloneIndexer.java:432)
        at org.eclipse.ptp.internal.rdt.core.miners.IndexerThread$2.runIndexer(IndexerThread.java:56)
        at org.eclipse.ptp.internal.rdt.core.miners.IndexerThread.run(IndexerThread.java:71)
Caused by: java.lang.ClassNotFoundException: org.eclipse.cdt.internal.core.model.TranslationUnit
        at java.net.URLClassLoader.findClass(URLClassLoader.java:497)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:639)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:605)
        ... 17 more
Comment 1 Markus Schorn CLA 2010-07-07 02:52:56 EDT
Created attachment 173620 [details]
fix

The patch introduces a new test in the indexer input adapter. This moves the usage of PotentialTranslationUnit into ProjectIndexerInputAdapter.

   IndexerInputAdapter.isIndexedOnlyIfIncluded(Object tu)
Comment 2 Markus Schorn CLA 2010-07-07 05:17:56 EDT
Fixed in 7.0.1 and 8.0 > 20100707.
Comment 3 CDT Genie CLA 2010-07-07 05:23:06 EDT
*** cdt cvs genie on behalf of mschorn ***
Bug 319033: Exception in stand-alone indexer.

[*] ProjectIndexerInputAdapter.java 1.17 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/ProjectIndexerInputAdapter.java?root=Tools_Project&r1=1.16&r2=1.17

[*] AbstractIndexerTask.java 1.52 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java?root=Tools_Project&r1=1.51&r2=1.52
[*] IndexerInputAdapter.java 1.5 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/IndexerInputAdapter.java?root=Tools_Project&r1=1.4&r2=1.5

[*] StandaloneIndexerInputAdapter.java 1.14 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/indexer/StandaloneIndexerInputAdapter.java?root=Tools_Project&r1=1.13&r2=1.14

[*] CPreprocessor.java 1.65 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java?root=Tools_Project&r1=1.64&r2=1.65

[*] AbstractIndexerTask.java 1.49.2.2 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java?root=Tools_Project&r1=1.49.2.1&r2=1.49.2.2
[*] IndexerInputAdapter.java 1.3.2.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/IndexerInputAdapter.java?root=Tools_Project&r1=1.3&r2=1.3.2.1

[*] ProjectIndexerInputAdapter.java 1.13.2.2 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/ProjectIndexerInputAdapter.java?root=Tools_Project&r1=1.13.2.1&r2=1.13.2.2

[*] StandaloneIndexerInputAdapter.java 1.12.2.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/indexer/StandaloneIndexerInputAdapter.java?root=Tools_Project&r1=1.12&r2=1.12.2.1