Bug 236628 [Viewers] [JFace] Excessive Memory Usage by Project Explorer because of styles
Build ID: I20080516-1333 Steps To Reproduce: Project Explorer creates duplicate identical strings for every entry in it and wastes few Megabytes of memory depending on the scenario. In the update method of NavigatorDecoratingLabelProvider extending DelegatingStyledCellLabelProvider the call to cell.setStyleRanges(newStyleRanges) results in duplicate strings for the same column. The duplicate strings are created in ViewerRow.setStyleRanges public void setStyleRanges(int columnIndex, StyleRange[] styleRanges) { getItem().setData(KEY_TEXT_LAYOUT + columnIndex, styleRanges); } More information:
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerRow.java
* @see #getNeighbor(int, boolean)
	 */
	public static final int ABOVE = 1;
	/**
	 * Constant denoting the row below the current one (value is 2).
	 * 
	 * @see #getNeighbor(int, boolean)
	 */
	public static final int BELOW = 2;
	private static final String KEY_TEXT_LAYOUT = Policy.JFACE
			+ "styled_label_key_"; 
	/**
	 * Get the bounds of the entry at the columnIndex,
	 * 
	 * @param columnIndex
	 * @return {@link Rectangle}
	 */
	public abstract Rectangle getBounds(int columnIndex);
	/**
	 * Return the bounds for the whole item.
	 * 
	 * @return {@link Rectangle}
	 */
	public abstract Rectangle getBounds();
	/**
	 * Return the item for the receiver.
	 * 
	 * @return {@link Widget}
	 */
	public abstract Widget getItem();