<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Misterdom's World &#187; collection</title>
	<atom:link href="http://www.guinard.org/~misterdom/tag/collection/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.guinard.org/~misterdom</link>
	<description>My Computing Logbook</description>
	<lastBuildDate>Sat, 24 Dec 2011 09:31:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Iterators and Deadlocks: How Not to Use Iterators!</title>
		<link>http://www.guinard.org/~misterdom/2009/09/16/iterators-and-deadlocks-how-not-to-use-iterators/</link>
		<comments>http://www.guinard.org/~misterdom/2009/09/16/iterators-and-deadlocks-how-not-to-use-iterators/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 16:34:59 +0000</pubDate>
		<dc:creator>misterdom</dc:creator>
				<category><![CDATA[Dev Logbook]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[collection]]></category>
		<category><![CDATA[iterators]]></category>

		<guid isPermaLink="false">http://www.guinard.org/~misterdom/?p=99</guid>
		<description><![CDATA[Two nice little bugs today which sums up most of my day  
How not to use iterators:


        while(views.iterator().hasNext()) {
            View currentView = (View) views.iterator.next();
            currentView.update();
 [...]]]></description>
			<content:encoded><![CDATA[<p>Two nice little bugs today which sums up most of my day <img src='http://www.guinard.org/~misterdom/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>How not to use iterators:</p>
<blockquote><p>
<code><br />
        while(views.iterator().hasNext()) {<br />
            View currentView = (View) views.iterator.next();<br />
            currentView.update();<br />
        }<br />
</code>
</p></blockquote>
<p>Bing that basically crashed my Firefox (this is part of a GWT app) when running it as well as my Netbeans / GWT debugger. Notice that Firefox was so good to tell me that apparently the script I was running in a weird manner.</p>
<p>And it was indeed in an endless loop as you can guess: invoking the <code>iterator()</code> method returns a new <code>Iterator</code> object every time (which it is supposed to do, I&#8217;m the dumb one in that story). Thus, I was basically getting the same &#8220;<code>next()</code>&#8221; object every time and <code>hasNext()</code> was thus always true <img src='http://www.guinard.org/~misterdom/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Anyway that fixes it:</p>
<blockquote><p>
<code><br />
        Iterator viewsIt = views.iterator();<br />
        while(viewsIt.hasNext()) {<br />
            View currentView = (View) viewsIt.next();<br />
            currentView.update();<br />
        }<br />
</code>
</p></blockquote>
<p>Ok that was a trivial one, but actually so trivial that I just felt like shaming me a little more and publishing it here <img src='http://www.guinard.org/~misterdom/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.guinard.org/~misterdom/2009/09/16/iterators-and-deadlocks-how-not-to-use-iterators/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

