| Summary: | [HiDPI][Win32][GTK] IllegalArgumentException below MarketplaceViewer$4.run (thrown in TextLayout.setWidthInPixels) | ||
|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | EPP Error Reports <error-reports-inbox> |
| Component: | SWT | Assignee: | Niraj Modi <niraj.modi> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | lshanmug, reckord, sravankumarl |
| Version: | 4.6 | Flags: | lshanmug:
review+
|
| Target Milestone: | 4.6.1 | ||
| Hardware: | All | ||
| OS: | All | ||
| See Also: |
https://git.eclipse.org/r/77542 https://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=02e0a7b593b86b295d26309438ffeb066fde7429 |
||
| Whiteboard: | |||
| Bug Depends on: | |||
| Bug Blocks: | 495269 | ||
It looks like this is caused by the new HiDPI / AutoScale feature in SWT. It scales the value down to < 1 so integer conversion turns it to zero.
In Link.computeSizeInPixels(Link.java:213):
if (wHint == 0) {
layout.setWidth (DPIUtil.autoScaleDown(1));
...
}
This will yield a 0 width for scale factors of 200% and above. Reassigning to SWT.
(In reply to Carsten Reckord from comment #1) > It looks like this is caused by the new HiDPI / AutoScale feature in SWT. It > scales the value down to < 1 so integer conversion turns it to zero. > > In Link.computeSizeInPixels(Link.java:213): > > if (wHint == 0) { > layout.setWidth (DPIUtil.autoScaleDown(1)); > ... > } > > This will yield a 0 width for scale factors of 200% and above. Reassigning > to SWT. Both Windowns and GTK's Link widget classes are making call to DPIUtil.autoScaleDown(1), will share a fix-patch shortly. Hi Sravan, patch for your review to be back-ported to 4.6.1 https://git.eclipse.org/r/#/c/77542/ Did a search in SWT code-base to confirm if there are any more such calls apart from Link.java(win32 and GTK), using below regex: DPIUtil\.autoScaleDown.?\([1-9]\) We are good on this. Gerrit change https://git.eclipse.org/r/77542 was merged to [master]. Commit: http://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=02e0a7b593b86b295d26309438ffeb066fde7429 Resolving now, fix back-ported to 4.6.1 via below git commit: http://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?h=R4_6_maintenance&id=0cd5ecf21555efcf4b2e4629cd2ff969ca609fc1 *** Bug 500811 has been marked as a duplicate of this bug. *** |
The following problem was reported via the automated error reporting: Message: Unhandled event loop exception java.lang.IllegalArgumentException: Argument not valid at org.eclipse.swt.graphics.TextLayout.setWidthInPixels(TextLayout.java:3333) at org.eclipse.swt.graphics.TextLayout.setWidth(TextLayout.java:3329) at org.eclipse.swt.widgets.Link.computeSizeInPixels(Link.java:213) at org.eclipse.swt.widgets.Control.computeSize(Control.java:663) at org.eclipse.swt.layout.GridData.computeSize(GridData.java:502) at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:482) at org.eclipse.swt.layout.GridLayout.computeSize(GridLayout.java:164) at org.eclipse.swt.widgets.Composite.computeSizeInPixels(Composite.java:238) at org.eclipse.swt.widgets.Control.computeSize(Control.java:663) at org.eclipse.swt.layout.GridData.computeSize(GridData.java:502) at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:482) at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:197) at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1383) at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1794) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4846) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5116) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(OS.java:-2) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2547) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:5671) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4859) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5103) at org.eclipse.swt.internal.win32.OS.SetWindowPos(OS.java:-2) at org.eclipse.swt.widgets.Widget.SetWindowPos(Widget.java:1482) at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3246) at org.eclipse.swt.widgets.Composite.setBoundsInPixels(Composite.java:1099) at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3207) at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3203) at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3274) at org.eclipse.swt.widgets.Control.setBounds(Control.java:3270) at org.eclipse.swt.custom.ScrolledComposite.setContent(ScrolledComposite.java:487) at org.eclipse.equinox.internal.p2.ui.discovery.util.ControlListViewer.doUpdateContent(ControlListViewer.java:230) at org.eclipse.equinox.internal.p2.ui.discovery.util.ControlListViewer.refreshAll(ControlListViewer.java:486) at org.eclipse.equinox.internal.p2.ui.discovery.util.ControlListViewer.inputChanged(ControlListViewer.java:354) at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:286) at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1696) at org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogViewer.catalogUpdated(CatalogViewer.java:242) at org.eclipse.epp.internal.mpc.ui.wizards.MarketplaceViewer.access$4(MarketplaceViewer.java:1) at org.eclipse.epp.internal.mpc.ui.wizards.MarketplaceViewer$4.run(MarketplaceViewer.java:309) at org.eclipse.epp.internal.mpc.ui.wizards.MarketplaceViewer.runUpdate(MarketplaceViewer.java:679) at org.eclipse.epp.internal.mpc.ui.wizards.MarketplaceViewer.catalogUpdated(MarketplaceViewer.java:306) at org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogViewer.updateCatalog(CatalogViewer.java:591) at org.eclipse.epp.internal.mpc.ui.wizards.MarketplaceViewer.updateCatalog(MarketplaceViewer.java:954) at org.eclipse.epp.internal.mpc.ui.wizards.MarketplacePage.safeUpdateCatalog(MarketplacePage.java:758) at org.eclipse.epp.internal.mpc.ui.wizards.MarketplacePage.access$11(MarketplacePage.java:755) at org.eclipse.epp.internal.mpc.ui.wizards.MarketplacePage$8.run(MarketplacePage.java:748) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4208) Bundles: | org.eclipse.epp.mpc.ui | 1.5.0.v20160601-1407 | 1.5.0.v20160601-1407 | | org.eclipse.equinox.p2.ui.discovery | 1.0.200.v20160504-1450 | 1.0.200.v20160504-1450 | | org.eclipse.jface | 3.12.0.v20160518-1929 | 3.12.0.v20160518-1929 | | org.eclipse.swt | 3.105.0.v20160525-1431 | 3.105.0.v20160525-1431 | Operating Systems: | Windows | 10.0.0 | 10.0.0 | The above information is a snapshot of the collected data. Visit https://dev.eclipse.org/recommenders/committers/aeri/v2/#!/problems/572d29a3e4b098492e44b18a for the latest data. Thank you for your assistance. Your friendly error-reports-inbox.