Bug 417685

Summary: [JFace][Snippets] Snippet006TableMultiLineCells division by zero
Product: [Eclipse Project] Platform Reporter: Hendrik Still <gamma32>
Component: UIAssignee: Robert Roth <robert.roth.off>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: daniel_megert, Lars.Vogel
Version: 4.4Keywords: greatfix
Target Milestone: 4.5 M7   
Hardware: PC   
OS: Linux   
See Also: https://git.eclipse.org/r/46733
https://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?id=3ad9f0b09cd213c8521cd1b911fd8759578a5218
Whiteboard:

Description Hendrik Still CLA 2013-09-20 06:46:34 EDT
Snippet006TableMultiLineCells  does not start with a division by zero exception.

Callstack:

Exception in thread "main" java.lang.ArithmeticException: / by zero
	at org.eclipse.jface.snippets.viewers.Snippet006TableMultiLineCells$2.measure(Snippet006TableMultiLineCells.java:200)
	at org.eclipse.jface.viewers.OwnerDrawLabelProvider$OwnerDrawListener.handleEvent(OwnerDrawLabelProvider.java:58)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1392)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1416)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1401)
...

Seems that the following Line is the problem:

protected void measure(Event event, Object element) {
	LineEntry line = (LineEntry) element;
	Point size = event.gc.textExtent(line.line);
	event.width = viewer.getTable().getColumn(event.index).getWidth();
	int lines = size.x / event.width + 1; // << / by zero
	event.height = size.y * lines;
}
Comment 1 Eclipse Genie CLA 2015-04-29 02:25:30 EDT
New Gerrit change created: https://git.eclipse.org/r/46733
Comment 3 Dani Megert CLA 2015-04-29 07:01:07 EDT
Thanks Robert!
Comment 4 Lars Vogel CLA 2015-04-29 07:01:44 EDT
.