Bug 121797 [Viewers] internalRefresh(Object)
AbstractListViewer.internalRefresh(Object) does not wrap calls to setRedraw on its org.eclipse.swt.widgets.List within a try-finally block. There are many methods between the two calls to setRedraw that subclasses could throw Exceptions on which could cause setRedraw(true) not to be called. The most likely is the call to the LabelProvider through AbstractLabelViewer.getLabelProviderText(ILabelProvider, Object)
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractListViewer.java
* The list viewer implementation of this <code>Viewer</code> framework
     * method returns the label provider, which in the case of list
     * viewers will be an instance of <code>ILabelProvider</code>.
     */
    public IBaseLabelProvider getLabelProvider() {
        return super.getLabelProvider();
    }
    /* (non-Javadoc)
     * Method declared on Viewer.
     */
    /* (non-Javadoc)
     * Method declared on StructuredViewer.
     */
    protected List getSelectionFromWidget() {
        int[] ixs = listGetSelectionIndices();
        ArrayList list = new ArrayList(ixs.length);
        for (int i = 0; i < ixs.length; i++) {
            Object e = getElementAt(ixs[i]);
            if (e != null) {
				list.add(e);
			}
        }
        return list;
    }
    /**
     * @param element the element to insert
     * @return the index where the item should be inserted.
     */
    protected int indexForElement(Object element) {
        ViewerComparator comparator = getComparator();