Community
Participate
Working Groups
Build RC1 On following project setup, the trace below demonstrate an incorrect indexing of some generated .class file (bin2/p/C.class). Project A (source folder -> bin3) | +- p/A.java +- src (source folder -> default) | +- p/B.java | +- src2 (source folder -> bin2) | | +- p/C.java +- bin (output) +- bin2 (output) +- bin3 (output) <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry excluding="src/|src/src2/|.*|src/|src4/" kind="src" output="bin3" path=""/> <classpathentry kind="src" output="bin2" path="src/src2"/> <classpathentry excluding="src2/" kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="output" path="bin"/> </classpath> Starting build of A @ Mon Feb 24 13:17:50 CET 2003 FULL build About to compile p/A.java About to compile src/src2/p/C.java About to compile src/p/B.java Writing new class file A.class Writing new class file C.class Writing new class file B.class Recording new state : State for A (#0 @ Mon Feb 24 13:17:50 CET 2003) Finished build of A @ Mon Feb 24 13:17:51 CET 2003 -------------------------------------------------------------------------------- --------------------------------------- FIRING PRE_AUTO_BUILD Delta [Thread[ModalContext,5,main]]: <NONE> (Thread[ModalContext,5,main]) -> index state updated to: UPDATING for: D:\eclipse\testing\TestWorkspace\.metadata\.plugins\org.eclipse.jdt.core\1443656 097.index (Thread[ModalContext,5,main]) REQUEST background job - indexing /A/bin2/p/C.class FIRING POST_CHANGE Delta [Thread[ModalContext,5,main]]: Java Model[*]: {CHILDREN} A[*]: {CHILDREN} [project root][*]: {CHILDREN} bin2.p[*]: {CHILDREN} C.class[*]: {CONTENT} Listener #1=org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider@f3552f FIRING POST_RECONCILE Delta [Thread[ModalContext,5,main]]: <NONE> (Thread[Java indexing,4,main]) 1 awaiting jobs (Thread[Java indexing,4,main]) STARTING background job - indexing /A/bin2/p/C.class (Thread[Java indexing,4,main]) FINISHED background job - indexing /A/bin2/p/C.class (Thread[Java indexing,4,main]) -> saving index D:\eclipse\testing\TestWorkspace\.metadata\.plugins\org.eclipse.jdt.core\1443656 097.index (Thread[Java indexing,4,main]) -> index state updated to: SAVED for: D:\eclipse\testing\TestWorkspace\.metadata\.plugins\org.eclipse.jdt.core\1443656 097.index
Created attachment 3670 [details] Project A contents
I wonder how this project setup could ever lead to indexing binaries, since there is no binary entry on the classpath !?!
Side-note, we should not allow custom output folder to coincidate with any source folder other than the referencing source folder.
Entered bug 32207 for the side-note.
Oops, that's bug 33207.
Problem is with DeltaProcessor that walks the binary output. Changed title to reflect this.
When creating the output infos, the DeltaProcessor was stopping on the first custom output. Fixed and added regression test JavaElementDeltaTests.testModifyOutputLocation4 ()
Verified.