Bug 131692 [Contributions] ContributionManager.insertAfter throws unhelpful IllegalArgumentException
look at insertBefore and you see this line throw new IllegalArgumentException("can't find ID " + ID);//$NON-NLS-1$ but in insertAfter it looks like this throw new IllegalArgumentException("can't find ID");//$NON-NLS-1$ NOTE: in the second example it doesn't tell you what the ID is. My "patch" is to make insertAfter behave like insertBefore
bundles/org.eclipse.jface/src/org/eclipse/jface/action/ContributionManager.java
* @return <code>true</code> if this manager contains dynamic items, and
     *  <code>false</code> otherwise
     */
    protected boolean hasDynamicItems() {
        return (dynamicItems > 0);
    }
    /**
     * Returns the index of the item with the given id.
     * @param id The id of the item whose index is requested.
     *
     * @return <code>int</code> the index or -1 if the item is not found
     */
    public int indexOf(String id) {
        for (int i = 0; i < contributions.size(); i++) {
            IContributionItem item = (IContributionItem) contributions.get(i);
            String itemId = item.getId();
            if (itemId != null && itemId.equalsIgnoreCase(id)) {
				return i;
			}
        }
        return -1;
    }
    /**
     * Returns the index of the object in the internal structure. This is different from 
     * <code>indexOf(String id)</code> since some contribution items may not have an id.
     *  
     * @param item The contribution item 
     * @return the index, or -1 if the item is not found
     * @since 3.0
     */