<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hello all,<div><br></div><div>I'm trying to write a Cocoa application with embedded WebViews that navigates through a web application, eventually arriving at a page with a Java applet. I query some values from the Java applet via Javascript, and then at some point I close up and free the WebView.</div><div><br></div><div>The problem is that my program is quite unstable, and crashes at random points during the navigation process anywhere from the 2nd to 7th time I use it. I create an entirely new WebView for each attempt. &nbsp;I'll attach a typical backtrace below.</div><div><br></div><div>Anyway, using basic troubleshooting techniques I believe I've narrowed the instability down to querying the Java applet through LiveConnect - testing the process with 100 iterations up to but NOT including the page with the applet was perfectly stable. 50 tests going to the page WITH the applet, but NOT querying it was also perfectly stable. As soon as I make even a basic query through LiveConnect though, I introduce instability.</div><div><br></div><div>The crashes always seems to be cause in a Javascript Core Garbage Collection pass (see stack trace below), which leads me to thing that I'm doing something best avoided in my interactions - like, perhaps there's a dangling Javascript-&gt;Java proxy object where the Java peer was destroyed. But, basically, I'm looking for any insight anyone might have as to pitfalls that might not be obvious in this area.</div><div><br></div><div>Problem occurs on 10.5.8 + All latest updates, and 10.6.5 + All latest updates. Java 6 on both platforms (required by the Applet) - using the Out-of-Process plugin on 10.5 and the in-process 32bit Java 6 on 10.6</div><div><br></div><div>Here is an example of my JS code, executed by&nbsp;[[webView windowScriptObject] evaluateWebScript:someJavaScript] on the main thread. The element in 'app' is a Java applet, getListenPort() is a Java method called via LiveConnect. I have two other scripts that are very similar, varying only in the method called.</div><div><br></div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(137, 19, 21); ">(function () {&nbsp;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(137, 19, 21); "><span class="Apple-tab-span" style="white-space:pre">                </span>var app = document.getElementById(\"RemoteApplication\");</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(137, 19, 21); "><span class="Apple-tab-span" style="white-space:pre">                </span>var ReturnMe = Number(app.getListenPort());</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(137, 19, 21); "><span class="Apple-tab-span" style="white-space:pre">                </span>app = null;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(137, 19, 21); "><span class="Apple-tab-span" style="white-space:pre">                </span>return ReturnMe;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(137, 19, 21); "><span class="Apple-tab-span" style="white-space:pre">                </span>})()</div></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(137, 19, 21); "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(137, 19, 21); "><font class="Apple-style-span" color="#000000" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">And here is a common sort of stack trace I'm getting (this one from 10.6)</span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(137, 19, 21); "><font class="Apple-style-span" color="#000000" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; "><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">Thread 0 Crashed: &nbsp;Dispatch queue: com.apple.main-thread</span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; "><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">0 &nbsp; com.apple.JavaScriptCore &nbsp; &nbsp; &nbsp;</span></font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">        </span></font></span><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">0x9489f766 WTF::fastFree(void*) + 134</span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; "><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">1 &nbsp; com.apple.WebCore &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">        </span></font></span><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">0x929be825 WebCore::CSSSelectorList::deleteSelectors() + 389</span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; "><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">2 &nbsp; com.apple.WebCore &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">        </span></font></span><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">0x92a38269 WebCore::CSSStyleRule::~CSSStyleRule() + 57</span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; "><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">3 &nbsp; com.apple.WebCore &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">        </span></font></span><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">0x929c3a04 WTF::Vector&lt;WTF::RefPtr&lt;WebCore::StyleBase&gt;, 0ul&gt;::shrink(unsigned long) + 84</span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; "><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">4 &nbsp; com.apple.WebCore &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">        </span></font></span><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">0x92a38193 WebCore::StyleSheet::~StyleSheet() + 179</span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; "><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">5 &nbsp; com.apple.WebCore &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">        </span></font></span><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">0x92a38066 WebCore::CSSStyleSheet::~CSSStyleSheet() + 102</span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; "><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">6 &nbsp; com.apple.WebCore &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">        </span></font></span><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">0x92a91074 WTF::Vector&lt;WTF::RefPtr&lt;WebCore::StyleSheet&gt;, 0ul&gt;::shrink(unsigned long) + 84</span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; "><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">7 &nbsp; com.apple.WebCore &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">        </span></font></span><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">0x92a29243 WebCore::StyleSheetList::~StyleSheetList() + 67</span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; "><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">8 &nbsp; com.apple.WebCore &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">        </span></font></span><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">0x92a28cd9 WebCore::Document::~Document() + 3529</span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; "><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">9 &nbsp; com.apple.WebCore &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">        </span></font></span><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">0x92a27f01 WebCore::HTMLDocument::~HTMLDocument() + 129</span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; "><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">10 &nbsp;com.apple.WebCore &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">        </span></font></span><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">0x92a27def WebCore::Node::~Node() + 431</span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; "><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">11 &nbsp;com.apple.WebCore &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">        </span></font></span><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">0x92c05a21 WebCore::HTMLIFrameElement::~HTMLIFrameElement() + 129</span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; "><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">12 &nbsp;com.apple.WebCore &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">        </span></font></span><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">0x92b356fe WebCore::JSNode::~JSNode() + 382</span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; "><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">13 &nbsp;com.apple.JavaScriptCore &nbsp; &nbsp; &nbsp;</span></font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">        </span></font></span><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-size: medium;">0x9495a0d2 JSC::Heap::sweep() + 274</span></font></div><div><br></div><div>I find it odd that main isn't seen in the stack, but it never is. The crash nearly ALWAYS occurs in WTF::fastFree(), very occasionally occurring instead in some other memory management function.</div></span></font></div><div><br></div><div>Any insight on where to look to further track this down would be greatly appreciated.</div><div><br></div><div>-Chris Backas</div><div><br></div><BR />
<BR />
<HR />
CONFIDENTIALITY&nbsp;NOTICE:&nbsp;This&nbsp;email&nbsp;(and&nbsp;any&nbsp;related&nbsp;attachments)&nbsp;contains&nbsp;information&nbsp;from&nbsp;InfoPlus&nbsp;(a&nbsp;service&nbsp;of&nbsp;Bristol&nbsp;Capital,&nbsp;Inc.).&nbsp;&nbsp;It&nbsp;is&nbsp;intended&nbsp;only&nbsp;for&nbsp;the&nbsp;addressee&nbsp;and&nbsp;may&nbsp;contain&nbsp;information&nbsp;that&nbsp;is&nbsp;confidential&nbsp;and/or&nbsp;otherwise&nbsp;exempt&nbsp;from&nbsp;disclosure&nbsp;under&nbsp;applicable&nbsp;law.&nbsp;If&nbsp;you&nbsp;are&nbsp;not&nbsp;the&nbsp;intended&nbsp;recipient&nbsp;or&nbsp;are&nbsp;acting&nbsp;as&nbsp;agent&nbsp;for&nbsp;the&nbsp;intended&nbsp;recipient,&nbsp;any&nbsp;use&nbsp;or&nbsp;disclosure&nbsp;of&nbsp;this&nbsp;communication&nbsp;is&nbsp;prohibited.&nbsp;If&nbsp;you&nbsp;have&nbsp;received&nbsp;this&nbsp;communication&nbsp;in&nbsp;error,&nbsp;please&nbsp;notify&nbsp;me&nbsp;immediately&nbsp;to&nbsp;arrange&nbsp;for&nbsp;the&nbsp;appropriate&nbsp;method&nbsp;of&nbsp;returning&nbsp;or&nbsp;disposing&nbsp;of&nbsp;the&nbsp;communication.&nbsp;If&nbsp;our&nbsp;respective&nbsp;Companies&nbsp;have&nbsp;confidentiality&nbsp;provisions&nbsp;in&nbsp;effect,&nbsp;this&nbsp;email&nbsp;and&nbsp;the&nbsp;materials&nbsp;contained&nbsp;herein&nbsp;are&nbsp;deemed&nbsp;CONFIDENTIAL&nbsp;and&nbsp;should&nbsp;be&nbsp;treated&nbsp;accordingly&nbsp;unless&nbsp;expressly&nbsp;provided&nbsp;otherwise.<BR />
<BR />
</body></html>