### 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 Ô€<4 META-INF/MANIFEST.MFþÊ óMÌËLK-.Ñ
+K-*ÎÌϳR0Ô3àåâå PK²î PK É€<4 p1/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…öÑ £ÙkCVY§˜Á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£7n—¹k‰u?T a?X½·Ö>pÛ7)PÓZG¥‚nȘbîb?Ü÷̺Š›¸Ef¹ëòC£±wÈ?éÖ¸UÝ5
+/Wì‘*
+·r@¸õ†aª‡5KÃŒŠ»¸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, 0 PK É€<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¬æ«] q PK Ô€<4²î META-INF/MANIFEST.MFþÊ PK É€<4wÊî³Á a p1/Annot.classPK É€<4)y¾û\
+ ^ p1/Annot.javaPK É€<4Ð-ðI Ï
+ õ p1/Enum.classPK É€<4ä5þL, 0 y p1/Enum.javaPK É€<4Îî ‰
+ ß p1/Test.classPK É€<4q¬æ«] q 9 p1/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