Bug 119494 [Workbench] dangerous uses of "new GC(Display)"
bundles/org.eclipse.jface/src/org/eclipse/jface/action/ActionContributionItem.java
* Creates a new contribution item from the given action. The id of the
     * action is used as the id of the item.
     * 
     * @param action
     *            the action
     */
    public ActionContributionItem(IAction action) {
        super(action.getId());
        this.action = action;
    }
    /**
     * Handles a property change event on the action (forwarded by nested listener).
     */
    private void actionPropertyChange(final PropertyChangeEvent e) {
        
        if (isVisible() && widget != null) {
            Display display = widget.getDisplay();
            if (display.getThread() == Thread.currentThread()) {
                update(e.getProperty());
            } else {
                display.asyncExec(new Runnable() {
                    public void run() {
                        update(e.getProperty());
                    }
                });
            }
        }
    }
    /**
     * Compares this action contribution item with another object.