Bug 324258 [Forms] IllegalArgumentException when trying to expend Attributes in Task Editor
Build Identifier: I20100608-0911 When trying to expend the "Attributes" section in Task Editor, receiving IllegalArgumentException and no attributes were displayed in the editor. below is the stack trace: java.lang.IllegalArgumentException: Argument not valid at org.eclipse.swt.SWT.error(SWT.java:4064) at org.eclipse.swt.SWT.error(SWT.java:3998) at org.eclipse.swt.SWT.error(SWT.java:3969) at org.eclipse.swt.graphics.GC.setFont(GC.java:3351) at org.eclipse.ui.forms.widgets.ExpandableComposite$ExpandableLayout.layout(ExpandableComposite.java:307) at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1546) at org.eclipse.swt.widgets.Composite.setBounds(Composite.java:1360) at org.eclipse.swt.widgets.Canvas.setBounds(Canvas.java:333) at org.eclipse.swt.widgets.Control.setBounds(Control.java:735) at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:689) at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:193) at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1546) at org.eclipse.swt.widgets.Composite.setBounds(Composite.java:1360) at org.eclipse.swt.widgets.Control.setBounds(Control.java:735) at org.eclipse.ui.forms.widgets.SizeCache.setBounds(SizeCache.java:509) at org.eclipse.ui.forms.widgets.Form$FormLayout.layout(Form.java:159) at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1546) at org.eclipse.swt.widgets.Composite.setBounds(Composite.java:1360) at org.eclipse.swt.widgets.Control.setBounds(Control.java:707) at org.eclipse.swt.custom.ScrolledCompositeLayout.layout(ScrolledCompositeLayout.java:109) at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1546) at org.eclipse.swt.widgets.Composite.layout(Composite.java:951) at org.eclipse.swt.widgets.Composite.layout(Composite.java:909) at org.eclipse.ui.forms.widgets.SharedScrolledComposite.layout(SharedScrolledComposite.java:146) at org.eclipse.ui.forms.widgets.SharedScrolledComposite.reflow(SharedScrolledComposite.java:215) at org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage.reflow(AbstractTaskEditorPage.java:1345) at org.eclipse.mylyn.internal.tasks.ui.editors.AbstractTaskEditorSection$1.expansionStateChanged(AbstractTaskEditorSection.java:66) at org.eclipse.ui.forms.widgets.ExpandableComposite.fireExpanding(ExpandableComposite.java:1068) at org.eclipse.ui.forms.widgets.ExpandableComposite.toggleState(ExpandableComposite.java:1052) at org.eclipse.ui.forms.widgets.ExpandableComposite.access$5(ExpandableComposite.java:1048) at org.eclipse.ui.forms.widgets.ExpandableComposite$2.linkActivated(ExpandableComposite.java:571) at org.eclipse.ui.forms.widgets.AbstractHyperlink.handleActivate(AbstractHyperlink.java:233) at org.eclipse.ui.forms.widgets.AbstractHyperlink.handleMouseUp(AbstractHyperlink.java:327) at org.eclipse.ui.forms.widgets.AbstractHyperlink.access$2(AbstractHyperlink.java:311) at org.eclipse.ui.forms.widgets.AbstractHyperlink$4.handleEvent(AbstractHyperlink.java:125) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3552) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3171) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2629) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2593) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2427) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:670) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:663) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574) at org.eclipse.equinox.launcher.Main.run(Main.java:1407) Reproducible: Always Steps to Reproduce: 1.Open a task in task editor (task is from Bugzillia task repository) 2.Click on Attributes section 3.nothing got expended and received unhandled event loop exception
bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/FormToolkit.java
import org.eclipse.ui.internal.forms.widgets.FormUtil;
/**
 * The toolkit is responsible for creating SWT controls adapted to work in
 * Eclipse forms. In addition to changing their presentation properties (fonts,
 * colors etc.), various listeners are attached to make them behave correctly in
 * the form context.
 * <p>
 * In addition to being the control factory, the toolkit is also responsible for
 * painting flat borders for select controls, managing hyperlink groups and
 * control colors.
 * <p>
 * The toolkit creates some of the most common controls used to populate Eclipse
 * forms. Controls that must be created using their constructors,
 * <code>adapt()</code> method is available to change its properties in the
 * same way as with the supported toolkit controls.
 * <p>
 * Typically, one toolkit object is created per workbench part (for example, an
 * editor or a form wizard). The toolkit is disposed when the part is disposed.
 * To conserve resources, it is possible to create one color object for the
 * entire plug-in and share it between several toolkits. The plug-in is
 * responsible for disposing the colors (disposing the toolkit that uses shared
 * color object will not dispose the colors).
 * <p>
 * FormToolkit is normally instantiated, but can also be subclassed if some of
 * the methods needs to be modified. In those cases, <code>super</code> must
 * be called to preserve normal behaviour.
 * 
 * @since 3.0
 */
public class FormToolkit {