Bug 81070 ElementMapper should not use Integer keys computed from System#identityHashCode
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/workingsets/WorkingSetModel.java
public IWorkingSet[] getAllWorkingSets() {
    	List result= new ArrayList();
    	result.addAll(fActiveWorkingSets);
    	IWorkingSet[] locals= fLocalWorkingSetManager.getWorkingSets();
    	for (int i= 0; i < locals.length; i++) {
			if (!result.contains(locals[i]))
				result.add(locals[i]);
		}
    	IWorkingSet[] globals= PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSets();
    	for (int i= 0; i < globals.length; i++) {
			if (!result.contains(globals[i]))
				result.add(globals[i]);
		}
    	return (IWorkingSet[])result.toArray(new IWorkingSet[result.size()]);
    }
    
    public void setActiveWorkingSets(IWorkingSet[] workingSets) {
    	fActiveWorkingSets= new ArrayList(Arrays.asList(workingSets));
    	fElementMapper.rebuild(getActiveWorkingSets());
    	fOthersWorkingSetUpdater.updateElements();
    	fireEvent(new PropertyChangeEvent(this, CHANGE_WORKING_SET_MODEL_CONTENT, null, null));
    }
	
	public void saveState(IMemento memento) {
		memento.putString(TAG_CONFIGURED, Boolean.toString(fConfigured));
		fLocalWorkingSetManager.saveState(memento.createChild(TAG_LOCAL_WORKING_SET_MANAGER));
		for (Iterator iter= fActiveWorkingSets.iterator(); iter.hasNext();) {
			IMemento active= memento.createChild(TAG_ACTIVE_WORKING_SET);
			IWorkingSet workingSet= (IWorkingSet)iter.next();