Bug 473934 - [win10] [Browser] since Upgrade to Windows 10 stackOverflowError
Summary: [win10] [Browser] since Upgrade to Windows 10 stackOverflowError
Status: CLOSED WONTFIX
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 4.5   Edit
Hardware: PC Windows 10
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Platform-SWT-Inbox CLA
QA Contact:
URL:
Whiteboard: stalebug
Keywords: needinfo
Depends on:
Blocks:
 
Reported: 2015-07-30 09:57 EDT by Stefan Schmaltz CLA
Modified: 2020-06-10 03:55 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Schmaltz CLA 2015-07-30 09:57:00 EDT
SWT 4.5 32bit
Java 1.7.0.67 32bit


Caused by: java.lang.StackOverflowError
	at org.eclipse.swt.internal.ole.win32.COM.VtblCall(Native Method)
	at org.eclipse.swt.internal.ole.win32.IDispatch.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.browser.IE.navigate(Unknown Source)
	at org.eclipse.swt.browser.IE.setUrl(Unknown Source)
	at org.eclipse.swt.browser.IE$7.handleEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.notifyListener(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.access$100(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink$1.method6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COMObject.callback6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COM.VtblCall(Native Method)
	at org.eclipse.swt.internal.ole.win32.IDispatch.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.browser.IE.navigate(Unknown Source)
	at org.eclipse.swt.browser.IE.setUrl(Unknown Source)
	at org.eclipse.swt.browser.IE$7.handleEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.notifyListener(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.access$100(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink$1.method6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COMObject.callback6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COM.VtblCall(Native Method)
	at org.eclipse.swt.internal.ole.win32.IDispatch.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.browser.IE.navigate(Unknown Source)
	at org.eclipse.swt.browser.IE.setUrl(Unknown Source)
	at org.eclipse.swt.browser.IE$7.handleEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.notifyListener(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.access$100(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink$1.method6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COMObject.callback6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COM.VtblCall(Native Method)
	at org.eclipse.swt.internal.ole.win32.IDispatch.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.browser.IE.navigate(Unknown Source)
	at org.eclipse.swt.browser.IE.setUrl(Unknown Source)
	at org.eclipse.swt.browser.IE$7.handleEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.notifyListener(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.access$100(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink$1.method6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COMObject.callback6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COM.VtblCall(Native Method)
	at org.eclipse.swt.internal.ole.win32.IDispatch.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.browser.IE.navigate(Unknown Source)
	at org.eclipse.swt.browser.IE.setUrl(Unknown Source)
	at org.eclipse.swt.browser.IE$7.handleEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.notifyListener(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.access$100(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink$1.method6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COMObject.callback6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COM.VtblCall(Native Method)
	at org.eclipse.swt.internal.ole.win32.IDispatch.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.browser.IE.navigate(Unknown Source)
	at org.eclipse.swt.browser.IE.setUrl(Unknown Source)
	at org.eclipse.swt.browser.IE$7.handleEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.notifyListener(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.access$100(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink$1.method6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COMObject.callback6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COM.VtblCall(Native Method)
	at org.eclipse.swt.internal.ole.win32.IDispatch.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.browser.IE.navigate(Unknown Source)
	at org.eclipse.swt.browser.IE.setUrl(Unknown Source)
	at org.eclipse.swt.browser.IE$7.handleEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.notifyListener(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.access$100(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink$1.method6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COMObject.callback6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COM.VtblCall(Native Method)
	at org.eclipse.swt.internal.ole.win32.IDispatch.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.browser.IE.navigate(Unknown Source)
	at org.eclipse.swt.browser.IE.setUrl(Unknown Source)
	at org.eclipse.swt.browser.IE$7.handleEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.notifyListener(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.access$100(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink$1.method6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COMObject.callback6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COM.VtblCall(Native Method)
	at org.eclipse.swt.internal.ole.win32.IDispatch.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.browser.IE.navigate(Unknown Source)
	at org.eclipse.swt.browser.IE.setUrl(Unknown Source)
	at org.eclipse.swt.browser.IE$7.handleEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.notifyListener(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.access$100(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink$1.method6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COMObject.callback6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COM.VtblCall(Native Method)
	at org.eclipse.swt.internal.ole.win32.IDispatch.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.browser.IE.navigate(Unknown Source)
	at org.eclipse.swt.browser.IE.setUrl(Unknown Source)
	at org.eclipse.swt.browser.IE$7.handleEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.notifyListener(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.access$100(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink$1.method6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COMObject.callback6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COM.VtblCall(Native Method)
	at org.eclipse.swt.internal.ole.win32.IDispatch.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.browser.IE.navigate(Unknown Source)
	at org.eclipse.swt.browser.IE.setUrl(Unknown Source)
	at org.eclipse.swt.browser.IE$7.handleEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.notifyListener(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.access$100(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink$1.method6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COMObject.callback6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COM.VtblCall(Native Method)
	at org.eclipse.swt.internal.ole.win32.IDispatch.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.browser.IE.navigate(Unknown Source)
	at org.eclipse.swt.browser.IE.setUrl(Unknown Source)
	at org.eclipse.swt.browser.IE$7.handleEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.notifyListener(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink.access$100(Unknown Source)
	at org.eclipse.swt.ole.win32.OleEventSink$1.method6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COMObject.callback6(Unknown Source)
	at org.eclipse.swt.internal.ole.win32.COM.VtblCall(Native Method)
	at org.eclipse.swt.internal.ole.win32.IDispatch.Invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
	at org.eclipse.swt.browser.IE.navigate(Unknown Source)
	at org.eclipse.swt.browser.IE.setUrl(Unknown Source)
	at org.eclipse.swt.browser.Browser.setUrl(Unknown Source)
	at chrriis.dj.nativeswing.swtimpl.components.core.NativeWebBrowser$CMN_navigate.run(NativeWebBrowser.java:723)
	at chrriis.dj.nativeswing.swtimpl.CommandMessage.runCommand(CommandMessage.java:61)
	at chrriis.dj.nativeswing.swtimpl.core.ControlCommandMessage.runCommand(ControlCommandMessage.java:166)
	at chrriis.dj.nativeswing.swtimpl.NativeInterface.runMessageCommand(NativeInterface.java:172)
	at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface.runMessageCommand(SWTNativeInterface.java:1429)
	at chrriis.dj.nativeswing.swtimpl.core.MessagingInterface.runMessage(MessagingInterface.java:121)
	at chrriis.dj.nativeswing.swtimpl.core.MessagingInterface.processReceivedMessages(MessagingInterface.java:106)
	at chrriis.dj.nativeswing.swtimpl.core.MessagingInterface.access$2(MessagingInterface.java:94)
	at chrriis.dj.nativeswing.swtimpl.core.MessagingInterface$2$2.run(MessagingInterface.java:442)
	at org.eclipse.swt.widgets.RunnableLock.run(Unknown Source)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Unknown Source)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Unknown Source)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
	at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface$OutProcess.runNativeSide(SWTNativeInterface.java:1352)
	at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface.main_(SWTNativeInterface.java:1461)
	at chrriis.dj.nativeswing.swtimpl.NativeInterface.main(NativeInterface.java:224)
Comment 1 Arun Thondapu CLA 2015-07-31 07:06:17 EDT
Thanks for reporting the bug Stefan! Can you provide more details regarding the scenario in which the problem occurs? It would be very helpful if you can provide a simple code snippet that can be used to reproduce the error...
Comment 2 Stefan Schmaltz CLA 2015-07-31 07:55:17 EDT
simply calling this:

String url = "http://my.qomet.de";
webBrowser.navigate(url);


This works under Windows 7/8/8.1 without any problem, but today after upgrading to Windows 10, this error occurs.
Comment 3 Arun Thondapu CLA 2015-07-31 16:09:39 EDT
(In reply to Stefan Schmaltz from comment #2)
> simply calling this:
> 
> String url = "http://my.qomet.de";
> webBrowser.navigate(url);
> 
> 
> This works under Windows 7/8/8.1 without any problem, but today after
> upgrading to Windows 10, this error occurs.

Thanks for the response Stefan!

Niraj, can you please try this and check?
Comment 4 Niraj Modi CLA 2015-08-03 09:27:36 EDT
On Win10 tested Eclipse 4.5 both 32/64 bits, embedded Web Browser works fine for me, additionally tested Snippet148.java

Have you tried launching IE externally on Windows10 ? Very first time it asks for some configuration/setup to be completed.
Comment 5 Stefan Schmaltz CLA 2015-08-04 03:20:39 EDT
Yes, Internet Explorer (32bit+64bit) initialized. Website displayed without compatibility Mode.
Also Edge Browser.
Comment 6 Niraj Modi CLA 2015-08-06 10:00:40 EDT
(In reply to Stefan Schmaltz from comment #5)
> Yes, Internet Explorer (32bit+64bit) initialized. Website displayed without
> compatibility Mode.
> Also Edge Browser.

Hi Stefan,
Above statement is not very clear to me.. were you able to run internal IE on Win10 successfully ?
Comment 7 Kelly Wilkerson CLA 2017-09-27 13:41:37 EDT
I had a customer submit a bug report caused by this same issue now.

Windows 7 32bit, Java 1.7.0_80, SWT 4.6.3.

IE "version" 9.11.9600.18792
IE "srcVersion" 11.0.9600.18792

I haven't managed to duplicate it myself yet, but that is what I am working on now.

I narrowed the issue to a problem when the Browser (IE) tries to load about:blank before loading the actual setUrl argument. about:blank doesn't load properly on this person's configuration, so the WebBrowser getUrl/_getUrl returns empty, and WebBrowser code assumes this means about:blank hasn't been loaded yet and loads it again leading to the infinite recursion.

To do some information gathering with my customer, I adjusted the program he is running to just load about:blank right from the start instead of the page it is trying to load. Sure enough, about:blank is triggering an issue.

Here's the browser events fired while trying to load about:blank in the order they appeared:

LocationListener.changing(): LocationEvent{Browser {} time=0 data=null location=about:blank top=false doit=true}

ProgressListener.changed(): ProgressEvent{Browser {} time=0 data=null current=0 total=0}

LocationListener.changed(): LocationEvent{Browser {} time=0 data=null location= top=true doit=false}

LocationListener.changing(): LocationEvent{Browser {} time=0 data=null location=res://ieframe.dll/unknownprotocol.htm#about:blank top=false doit=true}

ProgressListener.changed(): ProgressEvent{Browser {} time=0 data=null current=0 total=0}

I'm digging in further, but I welcome thoughts if this rings a bell for anyone.
Comment 8 Kelly Wilkerson CLA 2017-09-29 16:06:20 EDT
Replicated the issue on Windows 7, IE 11 by renaming the following registry keys:

HKEY_CLASSES_ROOT\PROTOCOLS\Handler\res
HKEY_CLASSES_ROOT\PROTOCOLS\Handler\about

I just renamed them to "res2" and "about2" to make the changes easy to unwind.
(Note 1: you may need to reboot.)
(Note 2: you may need steal ownership of these keys and the parent to be able to make changes. Here's a reference on claiming ownership. https://www.mydigitallife.net/grant-read-write-full-control-permissions-on-registry-keys-fix-cannot-import-and-access-denied-error-in-regedit/)

IE 10 and IE 11 itself actually still correctly handle "about:blank" and "res://ieframe.dll/unknownprotocol.htm" but fudging these two keys will get you to the infinite recursion described in this ticket.

I did notice that the IE 11 upgrade did try to "fix" the keys (https://bugs.eclipse.org/bugs/show_bug.cgi?id=428571 mentions a similar issue and that upgrading fixed the issue). For my particular flavor of breaking the keys, the update didn't fix the keys correctly and the crash persists.
Comment 9 Kelly Wilkerson CLA 2017-10-02 12:16:02 EDT
Confirmed with my user that fixing the two registry keys clears up the issue for IE 11.

[HKEY_CLASSES_ROOT\PROTOCOLS\Handler\res]
"CLSID"="{3050F3BC-98B5-11CF-BB82-00AA00BDCE0B}"

[HKEY_CLASSES_ROOT\PROTOCOLS\Handler\about]
"CLSID"="{3050F406-98B5-11CF-BB82-00AA00BDCE0B}"

Only the "about" protocol handler key is needed to fix the crash.

I don't have a good way to fix the keys beyond sending a .reg file to add/modify the two keys, or asking them to uninstall IE 11 and reinstall it which is a bit of a task.
Comment 10 Eclipse Genie CLA 2020-06-10 03:55:04 EDT
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet. As such, we're closing this bug.

If you have further information on the current state of the bug, please add it and reopen this bug. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.