View | Details | Raw Unified | Return to bug 332222
Collapse All | Expand All

(-)search/org/eclipse/jdt/internal/core/search/TypeNameMatchRequestorWrapper.java (-4 / +5 lines)
Lines 66-72 Link Here
66
	 * Cache package fragment root information to optimize speed performance.
66
	 * Cache package fragment root information to optimize speed performance.
67
	 */
67
	 */
68
	private String lastPkgFragmentRootPath;
68
	private String lastPkgFragmentRootPath;
69
	private IPackageFragmentRoot lastPkgFragmentRoot;
69
	private PackageFragmentRoot lastPkgFragmentRoot;
70
70
71
	/**
71
	/**
72
	 * Cache package handles to optimize memory.
72
	 * Cache package handles to optimize memory.
Lines 156-162 Link Here
156
		IPackageFragmentRoot root= ((AbstractJavaSearchScope)this.scope).packageFragmentRoot(resourcePath, separatorIndex, jarPath);
156
		IPackageFragmentRoot root= ((AbstractJavaSearchScope)this.scope).packageFragmentRoot(resourcePath, separatorIndex, jarPath);
157
		if (root == null) return null;
157
		if (root == null) return null;
158
		this.lastPkgFragmentRootPath= jarPath;
158
		this.lastPkgFragmentRootPath= jarPath;
159
		this.lastPkgFragmentRoot= root;
159
		this.lastPkgFragmentRoot= (PackageFragmentRoot)root;
160
		this.packageHandles= new HashtableOfArrayToObject(5);
160
		this.packageHandles= new HashtableOfArrayToObject(5);
161
	}
161
	}
162
	// create handle
162
	// create handle
Lines 172-178 Link Here
172
	}
172
	}
173
	IPackageFragment pkgFragment= (IPackageFragment) this.packageHandles.get(pkgName);
173
	IPackageFragment pkgFragment= (IPackageFragment) this.packageHandles.get(pkgName);
174
	if (pkgFragment == null) {
174
	if (pkgFragment == null) {
175
		pkgFragment= ((PackageFragmentRoot) this.lastPkgFragmentRoot).getPackageFragment(pkgName);
175
		pkgFragment= this.lastPkgFragmentRoot.getPackageFragment(pkgName);
176
		// filter org.apache.commons.lang.enum package for projects above 1.5 
176
		// filter org.apache.commons.lang.enum package for projects above 1.5 
177
		// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=317264
177
		// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=317264
178
		if (length == 5 && pkgName[4].equals("enum")) { //$NON-NLS-1$
178
		if (length == 5 && pkgName[4].equals("enum")) { //$NON-NLS-1$
Lines 195-200 Link Here
195
	int rootPathLength = -1;
195
	int rootPathLength = -1;
196
	if (this.lastPkgFragmentRootPath == null
196
	if (this.lastPkgFragmentRootPath == null
197
		|| !(resourcePath.startsWith(this.lastPkgFragmentRootPath)
197
		|| !(resourcePath.startsWith(this.lastPkgFragmentRootPath)
198
			&& !org.eclipse.jdt.internal.compiler.util.Util.isExcluded(resourcePath.toCharArray(), this.lastPkgFragmentRoot.fullInclusionPatternChars(), this.lastPkgFragmentRoot.fullExclusionPatternChars(), false) 
198
			&& (rootPathLength = this.lastPkgFragmentRootPath.length()) > 0
199
			&& (rootPathLength = this.lastPkgFragmentRootPath.length()) > 0
199
			&& resourcePath.charAt(rootPathLength) == '/')) {
200
			&& resourcePath.charAt(rootPathLength) == '/')) {
200
		PackageFragmentRoot root = (PackageFragmentRoot) ((AbstractJavaSearchScope)this.scope).packageFragmentRoot(resourcePath, -1/*not a jar*/, null/*no jar path*/);
201
		PackageFragmentRoot root = (PackageFragmentRoot) ((AbstractJavaSearchScope)this.scope).packageFragmentRoot(resourcePath, -1/*not a jar*/, null/*no jar path*/);
Lines 216-222 Link Here
216
	}
217
	}
217
	IPackageFragment pkgFragment= (IPackageFragment) this.packageHandles.get(pkgName);
218
	IPackageFragment pkgFragment= (IPackageFragment) this.packageHandles.get(pkgName);
218
	if (pkgFragment == null) {
219
	if (pkgFragment == null) {
219
		pkgFragment= ((PackageFragmentRoot) this.lastPkgFragmentRoot).getPackageFragment(pkgName);
220
		pkgFragment= this.lastPkgFragmentRoot.getPackageFragment(pkgName);
220
		this.packageHandles.put(pkgName, pkgFragment);
221
		this.packageHandles.put(pkgName, pkgFragment);
221
	}
222
	}
222
	String simpleName= simpleNames[length];
223
	String simpleName= simpleNames[length];

Return to bug 332222