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

Collapse All | Expand All

(-)model/org/eclipse/jdt/internal/core/JavaModelManager.java (-11 / +13 lines)
Lines 1378-1384 Link Here
1378
	/*
1378
	/*
1379
	 * List of IPath of jars that are known to not contain a chaining (through MANIFEST.MF) to another library
1379
	 * List of IPath of jars that are known to not contain a chaining (through MANIFEST.MF) to another library
1380
	 */
1380
	 */
1381
	private HashSet nonChainingJars;
1381
	private Set nonChainingJars;
1382
1382
1383
	/**
1383
	/**
1384
	 * Update the classpath variable cache
1384
	 * Update the classpath variable cache
Lines 2868-2875 Link Here
2868
	    }
2868
	    }
2869
	}
2869
	}
2870
	
2870
	
2871
	private HashSet loadNonChainingJarsCache() {
2871
	private Set loadNonChainingJarsCache() {
2872
		HashSet nonChainingJarsCache = new HashSet();
2872
		Set nonChainingJarsCache = Collections.synchronizedSet(new HashSet());
2873
		File nonChainingJarsFile = getNonChainingJarsFile();
2873
		File nonChainingJarsFile = getNonChainingJarsFile();
2874
		DataInputStream in = null;
2874
		DataInputStream in = null;
2875
		try {
2875
		try {
Lines 2898-2907 Link Here
2898
		return JavaCore.getPlugin().getStateLocation().append("nonChainingJarsCache").toFile(); //$NON-NLS-1$
2898
		return JavaCore.getPlugin().getStateLocation().append("nonChainingJarsCache").toFile(); //$NON-NLS-1$
2899
	}
2899
	}
2900
	
2900
	
2901
	private HashSet getNonChainingJarsCache() throws CoreException {
2901
	private Set getNonChainingJarsCache() throws CoreException {
2902
		if (this.nonChainingJars != null)
2902
		if (this.nonChainingJars != null)
2903
			return this.nonChainingJars;
2903
			return this.nonChainingJars;
2904
		HashSet result = new HashSet();
2904
		Set result = Collections.synchronizedSet(new HashSet());
2905
		IJavaProject[] projects = getJavaModel().getJavaProjects();
2905
		IJavaProject[] projects = getJavaModel().getJavaProjects();
2906
		for (int i = 0, length = projects.length; i < length; i++) {
2906
		for (int i = 0, length = projects.length; i < length; i++) {
2907
			IJavaProject javaProject = projects[i];
2907
			IJavaProject javaProject = projects[i];
Lines 3716-3727 Link Here
3716
		DataOutputStream out = null;
3716
		DataOutputStream out = null;
3717
		try {
3717
		try {
3718
			out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(file)));
3718
			out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(file)));
3719
			HashSet nonChainingJarsCache = getNonChainingJarsCache();
3719
			Set nonChainingJarsCache = getNonChainingJarsCache();
3720
			out.writeInt(nonChainingJarsCache.size());
3720
			synchronized (nonChainingJarsCache) {
3721
			Iterator entries = nonChainingJarsCache.iterator();
3721
				out.writeInt(nonChainingJarsCache.size());
3722
			while (entries.hasNext()) {
3722
				Iterator entries = nonChainingJarsCache.iterator();
3723
				IPath path = (IPath) entries.next();
3723
				while (entries.hasNext()) {
3724
				out.writeUTF(path.toPortableString());
3724
					IPath path = (IPath) entries.next();
3725
					out.writeUTF(path.toPortableString());
3726
				}
3725
			}
3727
			}
3726
		} catch (IOException e) {
3728
		} catch (IOException e) {
3727
			IStatus status = new Status(IStatus.ERROR, JavaCore.PLUGIN_ID, IStatus.ERROR, "Problems while saving non-chaining jar cache", e); //$NON-NLS-1$
3729
			IStatus status = new Status(IStatus.ERROR, JavaCore.PLUGIN_ID, IStatus.ERROR, "Problems while saving non-chaining jar cache", e); //$NON-NLS-1$

Return to bug 302949