View | Details | Raw Unified | Return to bug 89624 | Differences between
and this patch

Collapse All | Expand All

(-)model/org/eclipse/jdt/internal/core/NameLookup.java (-4 / +14 lines)
Lines 176-188 Link Here
176
					this.packageFragments.put(pkgName, root);
176
					this.packageFragments.put(pkgName, root);
177
				} else {
177
				} else {
178
					if (existing instanceof PackageFragmentRoot) {
178
					if (existing instanceof PackageFragmentRoot) {
179
						this.packageFragments.put(pkgName, new IPackageFragmentRoot[] {(PackageFragmentRoot) existing, root});
179
						if (!existing.equals(root))
180
							this.packageFragments.put(pkgName, new IPackageFragmentRoot[] {(PackageFragmentRoot) existing, root});
180
					} else {
181
					} else {
181
						IPackageFragmentRoot[] roots = (IPackageFragmentRoot[]) existing;
182
						IPackageFragmentRoot[] roots = (IPackageFragmentRoot[]) existing;
182
						int rootLength = roots.length;
183
						int rootLength = roots.length;
183
						System.arraycopy(roots, 0, roots = new IPackageFragmentRoot[rootLength+1], 0, rootLength);
184
						boolean containsRoot = false;
184
						roots[rootLength] = root;
185
						for (int j = 0; j < rootLength; j++) {
185
						this.packageFragments.put(pkgName, roots);
186
							if (roots[j].equals(root)) {
187
								containsRoot = true;
188
								break;
189
							}
190
						}
191
						if (containsRoot) {
192
							System.arraycopy(roots, 0, roots = new IPackageFragmentRoot[rootLength+1], 0, rootLength);
193
							roots[rootLength] = root;
194
							this.packageFragments.put(pkgName, roots);
195
						}
186
					}
196
					}
187
				}
197
				}
188
				visited.add(root);
198
				visited.add(root);

Return to bug 89624