Bug 112490 Patch to fix the mess I made
I have done bad things. I now prostrate myself and humbly ask that some gracious soul submit this patch (which I will attach forthwith) so that I may redeem myself. Basically, I (well really John but I made him do it) moved the ResourceMapping stuff to API but we missed a few things that needed to be done, causing great grief to the JDT team. Please spare the lashes as I have a low pain threshold.
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/WorkingSetAdapterFactory.java
public Class[] getAdapterList() {
        return new Class[] { IContributorResourceAdapter2.class, IWorkbenchAdapter.class, ResourceMapping.class };
    }
    
     ResourceMapping getResourceMapping(Object o) { 
        
        Object mapping = internalGetAdapter(o, ResourceMapping.class);
        if (mapping instanceof ResourceMapping) {
            return (ResourceMapping)mapping;
        }
        
        Object resource = internalGetAdapter(o, IResource.class);
        if (resource != null) {
            mapping = internalGetAdapter(resource, ResourceMapping.class);
            if (mapping instanceof ResourceMapping) {
                return (ResourceMapping)mapping;
            }
        }
        return null;
    }
    
     ResourceMapping getContributedResourceMapping(IAdaptable element) { 
        Object resourceAdapter = internalGetAdapter(element, IContributorResourceAdapter.class);
        if (resourceAdapter != null) {
            if (resourceAdapter instanceof IContributorResourceAdapter2) {
                
                IContributorResourceAdapter2 mappingAdapter = (IContributorResourceAdapter2) resourceAdapter;
                ResourceMapping mapping = mappingAdapter.getAdaptedResourceMapping(element);
                if (mapping != null) {
                    return mapping;