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 IAdaptable[] remove(IWorkingSet ws) {
			IAdaptable[] elements= (IAdaptable[])fWorkingSetToElement.remove(new Integer(System.identityHashCode(ws)));
			if (elements != null) {
				for (int i= 0; i < elements.length; i++) {
					removeElement(elements[i], ws);
				}
			}
			return elements;
		}
		public IAdaptable[] refresh(IWorkingSet ws) {
 			Integer workingSetKey= new Integer(System.identityHashCode(ws));
			IAdaptable[] oldElements= (IAdaptable[])fWorkingSetToElement.get(workingSetKey);
			if (oldElements == null)
				return null;
			IAdaptable[] newElements= ws.getElements();
			List toRemove= new ArrayList(Arrays.asList(oldElements));
			List toAdd= new ArrayList(Arrays.asList(newElements));
			computeDelta(toRemove, toAdd, oldElements, newElements);
			for (Iterator iter= toAdd.iterator(); iter.hasNext();) {
				addElement((IAdaptable)iter.next(), ws);
			}
			for (Iterator iter= toRemove.iterator(); iter.hasNext();) {
				removeElement((IAdaptable)iter.next(), ws);
			}
			if (toRemove.size() > 0 || toAdd.size() > 0)
				fWorkingSetToElement.put(workingSetKey, newElements);
			return oldElements;
		}
		private void computeDelta(List toRemove, List toAdd, IAdaptable[] oldElements, IAdaptable[] newElements) {
			for (int i= 0; i < oldElements.length; i++) {