### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core.tests.model Index: src/org/eclipse/jdt/core/tests/model/JavaSearchBugsTests.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavaSearchBugsTests.java,v retrieving revision 1.60 diff -u -r1.60 JavaSearchBugsTests.java --- src/org/eclipse/jdt/core/tests/model/JavaSearchBugsTests.java 26 Jan 2006 22:00:12 -0000 1.60 +++ src/org/eclipse/jdt/core/tests/model/JavaSearchBugsTests.java 28 Jan 2006 15:23:53 -0000 @@ -47,7 +47,7 @@ // org.eclipse.jdt.internal.codeassist.SelectionEngine.DEBUG = true; // TESTS_PREFIX = "testBug110336"; // TESTS_NAMES = new String[] { "testBug120816a" }; -// TESTS_NUMBERS = new int[] { 122442 }; + TESTS_NUMBERS = new int[] { 124469 }; // TESTS_RANGE = new int[] { 83304, -1 }; } @@ -5776,6 +5776,35 @@ } /** + * Bug 124469: [search] AIOOBE in PatternLocator when searching for dependency extent from manifest + * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=124469" + */ +public void testBug124469a() throws CoreException { + IType type = getClassFile("JavaSearchBugs", "lib/b124469.jar", "p1", "Enum.class").getType(); + search(type, REFERENCES); + assertSearchResults( + "lib/b124469.jar p1.Enum p1.Annot.value() EXACT_MATCH\n" + + "lib/b124469.jar p1.Test EXACT_MATCH\n" + + "lib/b124469.jar p1.Test EXACT_MATCH" + ); +} +public void testBug124469b() throws CoreException { + IType type = getClassFile("JavaSearchBugs", "lib/b124469.jar", "p1", "Enum.class").getType(); + IField field = type.getField("TYPE"); + search(field, REFERENCES); + assertSearchResults( + "lib/b124469.jar p1.Test EXACT_MATCH" + ); +} +public void testBug124469c() throws CoreException { + IType type = getClassFile("JavaSearchBugs", "lib/b124469.jar", "p1", "Annot.class").getType(); + search(type, REFERENCES); + assertSearchResults( + "lib/b124469.jar p1.Test EXACT_MATCH" + ); +} + +/** * Bug 125178: [search] AIOOBE in PatternLocator when searching for dependency extent from manifest * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=125178" */ Index: workspace/JavaSearchBugs/.classpath =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/workspace/JavaSearchBugs/.classpath,v retrieving revision 1.8 diff -u -r1.8 .classpath --- workspace/JavaSearchBugs/.classpath 26 Jan 2006 22:00:12 -0000 1.8 +++ workspace/JavaSearchBugs/.classpath 28 Jan 2006 15:23:53 -0000 @@ -6,6 +6,7 @@ + Index: workspace/JavaSearchBugs/lib/b124469.jar =================================================================== RCS file: workspace/JavaSearchBugs/lib/b124469.jar diff -N workspace/JavaSearchBugs/lib/b124469.jar --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ workspace/JavaSearchBugs/lib/b124469.jar 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,20 @@ +PKÔ€<4META-INF/MANIFEST.MFþÊóMÌËLK-.Ñ +K-*ÎÌϳR0Ô3àåâåPK²îPKÉ€<4p1/Annot.classU?Í +‚@…Ï”¦i?FíÛ…n×­" +‚ …Ð~ÅÆðïáZô=Tti1s/ç|÷ÌÜÏ÷õàa¡aÀ ?=w/DVjP¬„×ÜM¹ˆÜë= RG ë^å +ÊË8í”lÔš§UÈ`ÚÎ…?¢zì(;å­5†¶sf0‚”E'-‰íƒ?C3fQ汈:fõÇøÒ"Èð³*ÂSœcÈ?llÃ@OÑQiC…öÑ £Ùk CVY§˜Á0§{ëPKwÊî³ÁPKÉ€<4 +p1/Annot.java+HLÎNLOU(0´æåÁ‚Ò¤œÌd‡Ì¼’Ô¢´ÄäTǼ¼ü…j^.N×¼Ò\…²ÄœÒT +M rN  Cˆ8ç$+$ƒH$Ñà’¢Ì¼t…b0…¯ååPK)y¾û\PKÉ€<4 +p1/Enum.classuR]OÓP~κѭ”ï?Ž +?u_•›M„˜™,0,™^?Õ:KºKKäÞ?aâ½· 3ç½Åÿ ¾§™làlÓsÞóž÷}>zÎÏßßZ²X–b?÷²‹ǯË3 îò¾hs§äÂÛ•†˜Þ®Ê1ô6w6fÊkúN¡Ä ¼êÚŠæ +Ûr,o…AJkejÖxmFQ@Ø*†0ÌЗo—L¤õ]És-§–+jåÕŽªˆ ODq2¢ Cºå˜›~½jºÛ¼j›T£7 n—¹k‰u?T a?X½·Ö>pÛ7)PÓZG¥‚nȘbîb?Ü÷̺Š›¸Ef¹ëòC£±wÈ?éÖ¸UÝ5 +/Wì‘* +·r@¸õ†aª‡5­KÃŒŠ»¸GZ^'3ñ´öo‡‚422´ËRƒ=³˜#‹æ;ŸÛdq¼‡Ní¥Œ†éÎFѶÍ·×Üš_7¯ðÞ0÷<«á(˜Çq<Ù+H¥“9¥Ôð]Ã|n‰>DÅ%«æpÏw)ŸÔ/_ ü…ç•Üj–lKtóB« qºÀð¤8[Ê„iŒAü–~Z={ô$ÏÀ*£ªÔÄÀ FÂßi%c¤t‚±/ã4*4ƒàd"ÈŠ?.Z,K”‚TÎ̦š¸Öi죴›Ô –q=`NÐ;Ùn_&hÑ>qŒ±Êº”iUòBdž”üŠäÜÑ4v!!?Û˜nc¬B˜æY?¡·ž|FœÄ,U6Oqç÷?"2ô!tžútþë ó•L‹?þ ÂR0>Ä£`~üPKÐ- ðIÏPKÉ€<4 p1/Enum.java+HLÎNLOU(0´æåÁ‚Ò¤œÌd…Ô¼Ò\WQÍËÅà +”¯ååPKä5þL,0PKÉ€<4 +p1/Test.class-OMKÃ@}Ó¤M›V[ë÷ÇÅ›z0ô¬" +AEKÀã6.uKº‘ì¦ÿË“àÁà?gÓìÂ̼÷fÞ0¿ß?F8 +Ð £h*? +à ±Q&ôam‹û†ÛØÁî{ØO¹>08üPKÎî‰PKÉ€<4 p1/Test.java+HLÎNLOU(0´æåâårpÌËË/Ñ(KÌ)MµuÍ+ÍÕ ‰ pÕQÈÌ+ ‹ê$ç$‡!€ù:Å%E™yéa%%M^®‚Ò¤œÌd°¬BHjq‰B5/W-/PKq¬æ«]qPKÔ€<4²îMETA-INF/MANIFEST.MFþÊPKÉ€<4wÊî³Áap1/Annot.classPKÉ€<4)y¾û\ +^p1/Annot.javaPKÉ€<4Ð- ðIÏ +õp1/Enum.classPKÉ€<4ä5þL,0 yp1/Enum.javaPKÉ€<4Îî‰ +ßp1/Test.classPKÉ€<4q¬æ«]q 9p1/Test.javaPK§Ð #P org.eclipse.jdt.core Index: search/org/eclipse/jdt/internal/core/index/DiskIndex.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/index/DiskIndex.java,v retrieving revision 1.42 diff -u -r1.42 DiskIndex.java --- search/org/eclipse/jdt/internal/core/index/DiskIndex.java 26 Jan 2006 15:31:04 -0000 1.42 +++ search/org/eclipse/jdt/internal/core/index/DiskIndex.java 28 Jan 2006 15:23:57 -0000 @@ -35,7 +35,7 @@ private HashtableOfObject categoryTables; // category name -> HashtableOfObject(words -> int[] of document #'s) or offset if not read yet private char[] cachedCategoryName; -public static final String SIGNATURE= "INDEX VERSION 1.107"; //$NON-NLS-1$ +public static final String SIGNATURE= "INDEX VERSION 1.108"; //$NON-NLS-1$ public static boolean DEBUG = false; private static final int RE_INDEXED = -1; Index: search/org/eclipse/jdt/internal/core/search/indexing/BinaryIndexer.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/BinaryIndexer.java,v retrieving revision 1.50 diff -u -r1.50 BinaryIndexer.java --- search/org/eclipse/jdt/internal/core/search/indexing/BinaryIndexer.java 25 Nov 2005 16:44:45 -0000 1.50 +++ search/org/eclipse/jdt/internal/core/search/indexing/BinaryIndexer.java 28 Jan 2006 15:23:58 -0000 @@ -14,11 +14,15 @@ import org.eclipse.jdt.core.compiler.CharOperation; import org.eclipse.jdt.core.search.SearchDocument; import org.eclipse.jdt.internal.compiler.ast.TypeDeclaration; +import org.eclipse.jdt.internal.compiler.classfmt.AnnotationInfo; import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants; import org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader; import org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException; +import org.eclipse.jdt.internal.compiler.classfmt.ElementValuePairInfo; import org.eclipse.jdt.internal.compiler.classfmt.FieldInfo; import org.eclipse.jdt.internal.compiler.classfmt.MethodInfo; +import org.eclipse.jdt.internal.compiler.env.ClassSignature; +import org.eclipse.jdt.internal.compiler.env.EnumConstantSignature; import org.eclipse.jdt.internal.compiler.util.SuffixConstants; public class BinaryIndexer extends AbstractIndexer implements SuffixConstants { @@ -508,7 +512,33 @@ addAnnotationTypeDeclaration(modifiers, packageName, name, enclosingTypeNames, false); break; } - + + // Look for references in annotations + AnnotationInfo[] annotations = (AnnotationInfo[]) reader.getAnnotations(); + if (annotations != null) { + for (int i=0, aLength=annotations.length; i