<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0">

<channel>
	<title>Ruben's blogRuben's blog -</title>
	
	<link>http://rubenlaguna.com/wp</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Wed, 10 Mar 2010 19:48:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/RubensBlog" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="rubensblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>40.382644</geo:lat><geo:long>-3.77655</geo:long><item>
		<title>Building Apache Tika 0.6 fails if the locale is not en_US</title>
		<link>http://rubenlaguna.com/wp/2010/03/10/building-apache-tika-0-6-fails-if-the-locale-is-not-en_us/</link>
		<comments>http://rubenlaguna.com/wp/2010/03/10/building-apache-tika-0-6-fails-if-the-locale-is-not-en_us/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 19:48:40 +0000</pubDate>
		<dc:creator>ruben.laguna</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[fail]]></category>
		<category><![CDATA[locale]]></category>
		<category><![CDATA[lucene]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[oome]]></category>
		<category><![CDATA[tests]]></category>
		<category><![CDATA[tika]]></category>

		<guid isPermaLink="false">http://rubenlaguna.com/wp/?p=1142</guid>
		<description><![CDATA[I tried to build Apache Tika 0.6 yesterday and I couldn&#8217;t build it because the tests failed. The failing tests were 
  testExcelParserFormatting(org.apache.tika.parser.microsoft.ExcelParserTest)
  testExcelFormats(org.apache.tika.parser.microsoft.ooxml.OOXMLParserTest)

and the failure had to to with the fact that the locale was &#8220;es_ES&#8221; and the numbering format differs (&#8220;1.599,99&#8221; and not &#8220;1,599.99&#8220;) 
 $ mvn -version
Apache Maven 2.2.0 (r788681; [...]]]></description>
			<content:encoded><![CDATA[<p>I tried to build Apache Tika 0.6 <a href="http://markmail.org/thread/hfbheu7cuwl2hnaa">yesterday</a> and I couldn&#8217;t build it because the tests failed. The failing tests were </p>
<p><code>  testExcelParserFormatting(org.apache.tika.parser.microsoft.ExcelParserTest)<br />
  testExcelFormats(org.apache.tika.parser.microsoft.ooxml.OOXMLParserTest)<br />
</code></p>
<p>and the failure had to to with the fact that the locale was &#8220;es_ES&#8221; and the numbering format differs (&#8220;<code>1.599,99</code>&#8221; and not &#8220;<code>1,599.99</code>&#8220;) </p>
<p><code> $ mvn -version<br />
Apache Maven 2.2.0 (r788681; 2009-06-26 15:04:01+0200)<br />
Java version: 1.6.0_17<br />
Java home: /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home<br />
Default locale: es_ES, platform encoding: MacRoman<br />
OS name: "mac os x" version: "10.6.2" arch: "x86_64" Family: "mac"</code></p>
<p>I changed the locale temporarily to be able to build</p>
<p><code>export LC_ALL=en_US.UTF-8</code></p>
<p>so those test no longer failed. But then I run into OutOfMemoryError while running some of the tests so I set <code>MAVEN_OPTS</code>:</p>
<p><code>export MAVEN_OPTS="-Xmx2048m"</code></p>
<p>And then <code>mvn install</code> suceeded !. I got the jars<br />
<code>find . -name "*jar"<br />
./tika-app/target/tika-app-0.6.jar<br />
./tika-bundle/target/tika-bundle-0.6.jar<br />
./tika-core/target/tika-core-0.6.jar<br />
./tika-parsers/target/tika-parsers-0.6.jar<br />
</code></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a title="Click me to see the sites." href="#" onclick="$$('div.d1142').each( function(e) { e.visualEffect('slide_down',{duration:2.5}) }); return false;"><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d1142" style="overflow:hidden">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blinklist.com/index.php?Action=Blink/addblink.php&amp;Name=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US&amp;Description=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US&amp;Url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F" rel="nofollow" title="Add to&nbsp;BlinkList"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/blinklist.png" title="Add to&nbsp;BlinkList" alt="Add to&nbsp;BlinkList" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F" rel="nofollow" title="Add to&nbsp;Bloglines"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Add to&nbsp;Bloglines" alt="Add to&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;title=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;Blogmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bmarks.png" title="Add to&nbsp;Blogmarks" alt="Add to&nbsp;Blogmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;submitHeadline=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;title=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;Connotea"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/connotea.png" title="Add to&nbsp;Connotea" alt="Add to&nbsp;Connotea" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;title=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.diigo.com/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;title=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;Diigo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/diigo.png" title="Add to&nbsp;Diigo" alt="Add to&nbsp;Diigo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;title=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;title=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;title=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://cgi.fark.com/cgi/fark/farkit.pl?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;h=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;Fark"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fark.png" title="Add to&nbsp;Fark" alt="Add to&nbsp;Fark" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;t=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;Faves"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bluedot.png" title="Add to&nbsp;Faves" alt="Add to&nbsp;Faves" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://fleck.com/litebookmarklet.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;title=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;Fleck"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fleck.png" title="Add to&nbsp;Fleck" alt="Add to&nbsp;Fleck" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://FriendSite.com/users/bookmarks/?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;t=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;FriendSite"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/friendsite.png" title="Add to&nbsp;FriendSite" alt="Add to&nbsp;FriendSite" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;title=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kaboodle.com/za/selectpage?p_pop=false&amp;pa=url&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F" rel="nofollow" title="Add to&nbsp;Kaboodle"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/kaboodle.png" title="Add to&nbsp;Kaboodle" alt="Add to&nbsp;Kaboodle" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.maple.nu/cgi-bin/search6/usa/ss_submit.cgi?fct=100&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;title=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;Maple"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/maple.png" title="Add to&nbsp;Maple" alt="Add to&nbsp;Maple" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;bm_description=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;T=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://netvouz.com/action/submitBookmark?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;title=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US&amp;popup=no" rel="nofollow" title="Add to&nbsp;Netvouz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netvouz.png" title="Add to&nbsp;Netvouz" alt="Add to&nbsp;Netvouz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;h=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;Newsvine"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/newsvine.png" title="Add to&nbsp;Newsvine" alt="Add to&nbsp;Newsvine" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.plugim.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;title=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;PlugIM"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/plugim.png" title="Add to&nbsp;PlugIM" alt="Add to&nbsp;PlugIM" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;title=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;title=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;Simpy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/simpy.png" title="Add to&nbsp;Simpy" alt="Add to&nbsp;Simpy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kirtsy.com//submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F" rel="nofollow" title="Add to&nbsp;Kirtsy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/skirt.png" title="Add to&nbsp;Kirtsy" alt="Add to&nbsp;Kirtsy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;title=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;title=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.shoutwire.com/?p=submit&amp;link=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F" rel="nofollow" title="Add to&nbsp;Shoutwire"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/shoutwire.png" title="Add to&nbsp;Shoutwire" alt="Add to&nbsp;Shoutwire" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F" rel="nofollow" title="Add to&nbsp;Squidoo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Add to&nbsp;Squidoo" alt="Add to&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F" rel="nofollow" title="Add to&nbsp;SphereIt"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Add to&nbsp;SphereIt" alt="Add to&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.spurl.net/spurl.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;title=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;Spurl"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/spurl.png" title="Add to&nbsp;Spurl" alt="Add to&nbsp;Spurl" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;name=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;ThisNext"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/thisnext.png" title="Add to&nbsp;ThisNext" alt="Add to&nbsp;ThisNext" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;title=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;Webride"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/webride.png" title="Add to&nbsp;Webride" alt="Add to&nbsp;Webride" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wists.com/t.php?c=null&amp;r=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;title={text}" rel="nofollow" title="Add to&nbsp;Wists"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/wists.png" title="Add to&nbsp;Wists" alt="Add to&nbsp;Wists" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F03%2F10%2Fbuilding-apache-tika-0-6-fails-if-the-locale-is-not-en_us%2F&amp;t=Building+Apache+Tika+0.6+fails+if+the+locale+is+not+en_US" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
<a style="font-size:90%;text-align: right; " title="Click me to hide the sites." href="#" onclick="$$('div.d1142').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); return false;">Hide Sites</a>
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d1142').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></content:encoded>
			<wfw:commentRss>http://rubenlaguna.com/wp/2010/03/10/building-apache-tika-0-6-fails-if-the-locale-is-not-en_us/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JUnit and Netbeans. Injecting in objects in the default Lookup</title>
		<link>http://rubenlaguna.com/wp/2010/02/12/junit-and-netbeans-injecting-in-objects-in-the-default-lookup/</link>
		<comments>http://rubenlaguna.com/wp/2010/02/12/junit-and-netbeans-injecting-in-objects-in-the-default-lookup/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 22:47:12 +0000</pubDate>
		<dc:creator>ruben.laguna</dc:creator>
				<category><![CDATA[netbeans]]></category>
		<category><![CDATA[inject]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[lookup]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[populate]]></category>
		<category><![CDATA[replace]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://rubenlaguna.com/wp/?p=1102</guid>
		<description><![CDATA[If you need to unit test classes in a netbeans module and the classes use the Lookup.getDefault() to &#8220;lookup&#8221; things that you want to mock you probably wonder how you can place the mock objects in the default Lookup
Adding objects to the Netbeans&#8217;s default Lookup is relatively simple. Here is the answer: 

Replace the Lookup [...]]]></description>
			<content:encoded><![CDATA[<p>If you need to unit test classes in a netbeans module and the classes use the <code><a href="http://bits.netbeans.org/dev/javadoc/org-openide-util-lookup/org/openide/util/Lookup.html">Lookup.getDefault()</a></code> to &#8220;lookup&#8221; things that you want to mock you probably wonder how you can place the mock objects in the default Lookup</p>
<p>Adding objects to the Netbeans&#8217;s default <code>Lookup</code> is relatively simple. Here is the answer: </p>
<ol>
<li>Replace the <code>Lookup</code> instance returned by the <code>Lookup.getDefault()</code><br />
by defining a new entry in <code>META-INF/services</code>.<br />
<a href="http://rubenlaguna.com/wp/wp-content/uploads/skitch/SearchLucene_-_NetBeans_IDE_6.8-20100211-204423.jpg"><img alt="" src="http://rubenlaguna.com/wp/wp-content/uploads/skitch/SearchLucene_-_NetBeans_IDE_6.8-20100211-204423.jpg" title="Lookup$Provider in META-INF/services" class="aligncenter" width="348" height="172" /></a></p>
<p>It&#8217;s just a matter of adding a file named <code>org.openide.util.Lookup$Provider</code> in the <code>META-INF/services</code> folder inside your Unit Test source folder. That file should contain the fully qualified class name of your own <code><a href="http://bits.netbeans.org/dev/javadoc/org-openide-util-lookup/org/openide/util/Lookup.Provider.html">Lookup.Provider</a></code> implementation.<br />
In my case the file contain just the string <code>com.rubenlaguna.en4j.searchlucene.NoteFinderLuceneImplTest</code> because the test class itself implements <code>Lookup.Provider</code>.</p>
<p>By adding this to <code>META-INF/services</code> you&#8217;re actually forcing <code>Lookup.getLookup()</code> to use your <code>Lookup.Provider</code> to obtain the <code>Lookup</code> instance that will be returned</p>
</li>
<li>Create you own <code>Lookup.Provider</code>. You can even let your test class implement <code>Lookup.Provider</code> if you only have one test class.
<p>In this example you can see that I inject a NoteRepository.class into the default lookup.</p>
<p><script src="http://gist.github.com/301901.js?file=NoteFinderLuceneImplTest.java"></script></p>
</li>
</ol>
<p>You can see a <a href="http://github.com/ecerulm/en4j/tree/master/NBPlatformApp/SearchLucene/test/unit/src/">living example here</a></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a title="Click me to see the sites." href="#" onclick="$$('div.d1102').each( function(e) { e.visualEffect('slide_down',{duration:2.5}) }); return false;"><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d1102" style="overflow:hidden">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blinklist.com/index.php?Action=Blink/addblink.php&amp;Name=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup&amp;Description=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup&amp;Url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F" rel="nofollow" title="Add to&nbsp;BlinkList"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/blinklist.png" title="Add to&nbsp;BlinkList" alt="Add to&nbsp;BlinkList" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F" rel="nofollow" title="Add to&nbsp;Bloglines"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Add to&nbsp;Bloglines" alt="Add to&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;title=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;Blogmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bmarks.png" title="Add to&nbsp;Blogmarks" alt="Add to&nbsp;Blogmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;submitHeadline=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;title=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;Connotea"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/connotea.png" title="Add to&nbsp;Connotea" alt="Add to&nbsp;Connotea" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;title=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.diigo.com/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;title=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;Diigo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/diigo.png" title="Add to&nbsp;Diigo" alt="Add to&nbsp;Diigo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;title=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;title=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;title=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://cgi.fark.com/cgi/fark/farkit.pl?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;h=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;Fark"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fark.png" title="Add to&nbsp;Fark" alt="Add to&nbsp;Fark" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;t=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;Faves"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bluedot.png" title="Add to&nbsp;Faves" alt="Add to&nbsp;Faves" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://fleck.com/litebookmarklet.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;title=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;Fleck"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fleck.png" title="Add to&nbsp;Fleck" alt="Add to&nbsp;Fleck" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://FriendSite.com/users/bookmarks/?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;t=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;FriendSite"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/friendsite.png" title="Add to&nbsp;FriendSite" alt="Add to&nbsp;FriendSite" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;title=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kaboodle.com/za/selectpage?p_pop=false&amp;pa=url&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F" rel="nofollow" title="Add to&nbsp;Kaboodle"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/kaboodle.png" title="Add to&nbsp;Kaboodle" alt="Add to&nbsp;Kaboodle" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.maple.nu/cgi-bin/search6/usa/ss_submit.cgi?fct=100&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;title=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;Maple"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/maple.png" title="Add to&nbsp;Maple" alt="Add to&nbsp;Maple" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;bm_description=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;T=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://netvouz.com/action/submitBookmark?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;title=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup&amp;popup=no" rel="nofollow" title="Add to&nbsp;Netvouz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netvouz.png" title="Add to&nbsp;Netvouz" alt="Add to&nbsp;Netvouz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;h=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;Newsvine"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/newsvine.png" title="Add to&nbsp;Newsvine" alt="Add to&nbsp;Newsvine" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.plugim.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;title=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;PlugIM"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/plugim.png" title="Add to&nbsp;PlugIM" alt="Add to&nbsp;PlugIM" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;title=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;title=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;Simpy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/simpy.png" title="Add to&nbsp;Simpy" alt="Add to&nbsp;Simpy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kirtsy.com//submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F" rel="nofollow" title="Add to&nbsp;Kirtsy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/skirt.png" title="Add to&nbsp;Kirtsy" alt="Add to&nbsp;Kirtsy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;title=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;title=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.shoutwire.com/?p=submit&amp;link=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F" rel="nofollow" title="Add to&nbsp;Shoutwire"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/shoutwire.png" title="Add to&nbsp;Shoutwire" alt="Add to&nbsp;Shoutwire" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F" rel="nofollow" title="Add to&nbsp;Squidoo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Add to&nbsp;Squidoo" alt="Add to&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F" rel="nofollow" title="Add to&nbsp;SphereIt"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Add to&nbsp;SphereIt" alt="Add to&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.spurl.net/spurl.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;title=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;Spurl"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/spurl.png" title="Add to&nbsp;Spurl" alt="Add to&nbsp;Spurl" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;name=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;ThisNext"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/thisnext.png" title="Add to&nbsp;ThisNext" alt="Add to&nbsp;ThisNext" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;title=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;Webride"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/webride.png" title="Add to&nbsp;Webride" alt="Add to&nbsp;Webride" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wists.com/t.php?c=null&amp;r=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;title={text}" rel="nofollow" title="Add to&nbsp;Wists"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/wists.png" title="Add to&nbsp;Wists" alt="Add to&nbsp;Wists" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F02%2F12%2Fjunit-and-netbeans-injecting-in-objects-in-the-default-lookup%2F&amp;t=JUnit+and+Netbeans.+Injecting+in+objects+in+the+default+Lookup" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
<a style="font-size:90%;text-align: right; " title="Click me to hide the sites." href="#" onclick="$$('div.d1102').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); return false;">Hide Sites</a>
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d1102').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></content:encoded>
			<wfw:commentRss>http://rubenlaguna.com/wp/2010/02/12/junit-and-netbeans-injecting-in-objects-in-the-default-lookup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Connect to the internet via Bluetooth PAN  with Mac OS X Snow Leopard</title>
		<link>http://rubenlaguna.com/wp/2010/01/27/connect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard/</link>
		<comments>http://rubenlaguna.com/wp/2010/01/27/connect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 11:54:08 +0000</pubDate>
		<dc:creator>ruben.laguna</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[macosx]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[pan]]></category>
		<category><![CDATA[personal area network]]></category>
		<category><![CDATA[snow leopard]]></category>
		<category><![CDATA[sonyericsson]]></category>
		<category><![CDATA[telephone]]></category>
		<category><![CDATA[tether]]></category>
		<category><![CDATA[tethering]]></category>

		<guid isPermaLink="false">http://rubenlaguna.com/wp/?p=1096</guid>
		<description><![CDATA[If you want to access the internet via your phone 3G/GPRS connection you can use Bluetooth PAN. In my case I have a Sony Ericsson W715 so the first thing to do is to tell the phone which connection to use Menu > Settings > Connectivity > Bluetooth > Data accounts and select the account [...]]]></description>
			<content:encoded><![CDATA[<p>If you want to access the internet via your phone 3G/GPRS connection you can use Bluetooth PAN. In my case I have a Sony Ericsson W715 so the first thing to do is to tell the phone which connection to use Menu > Settings > Connectivity > Bluetooth > Data accounts and select the account that you normally use to browse the net from the phone.</p>
<p>Then turn on bluetooth</p>
<p>Then in the mac:</p>
<ol>
<li>Go to System Preferences > Bluetooth
<p><a href="http://rubenlaguna.com/wp/wp-content/uploads/2010/01/System-Preferences-1.jpg"><img src="http://rubenlaguna.com/wp/wp-content/uploads/2010/01/System-Preferences-1.jpg" alt="" title="System Preferences-1" width="666" height="561" class="aligncenter size-full wp-image-1098" /></a>
</li>
<li>Set up new device.
<p><a href="http://rubenlaguna.com/wp/wp-content/uploads/skitch/Bluetooth-20100127-125537.jpg"><img alt="" src="http://rubenlaguna.com/wp/wp-content/uploads/skitch/Bluetooth-20100127-125537.jpg" title="bluetooth" class="aligncenter" width="748" height="534" /></a></p>
</li>
<li>Set up a new device<br />
 <a href="http://rubenlaguna.com/wp/wp-content/uploads/skitch/Bluetooth_Setup_Assistant-2-20100127-125755.jpg"><img alt="" src="http://rubenlaguna.com/wp/wp-content/uploads/skitch/Bluetooth_Setup_Assistant-2-20100127-125755.jpg" title="adding w715" class="aligncenter" width="818" height="558" /></a>
</li>
<li>Click on continue
<p>Then a screen will appear with a passcode that you have to enter in your phone to do the pairing. if the phone ask you if you want to start the remote control say yes.</p>
<p><a href="http://rubenlaguna.com/wp/wp-content/uploads/skitch/Bluetooth_Setup_Assistant-3-20100127-125934.jpg"><img alt="" src="http://rubenlaguna.com/wp/wp-content/uploads/skitch/Bluetooth_Setup_Assistant-3-20100127-125934.jpg" title="passcode" class="aligncenter" width="818" height="558" /></a>
</li>
<li>
In the next screen enter your phone model and apn in my case its online.telia.se and he cid i used 5 because i think itsd unused</p>
<p><a href="http://rubenlaguna.com/wp/wp-content/uploads/skitch/Bluetooth_Setup_Assistant-4-20100127-130905.jpg"><img alt="" src="http://rubenlaguna.com/wp/wp-content/uploads/skitch/Bluetooth_Setup_Assistant-4-20100127-130905.jpg" title="apn settings" class="aligncenter" width="778" height="518" /></a></p>
<p>See summary and click quit
</li>
<li>Go to System preferences > Network<br />
<a href="http://rubenlaguna.com/wp/wp-content/uploads/skitch/System_Preferences-2-20100127-131052.jpg"><img alt="" src="http://rubenlaguna.com/wp/wp-content/uploads/skitch/System_Preferences-2-20100127-131052.jpg" title="network preferences" class="aligncenter" width="748" height="640" /></a></li>
<li>There is a &#8220;Bluetooth PAN&#8221; already  but that one won&#8217;t work:  you need to create a new connection
<p>Press the &#8220;+&#8221; in the bottom left corner.<br />
Set the interface to &#8220;Bluetooth PAN&#8221;<br />
Set the name of the connection  to whatever you like. I just typed &#8220;W715&#8243; in my case.</p>
<p><a href="http://rubenlaguna.com/wp/wp-content/uploads/skitch/System_Preferences-3-20100127-125025.jpg"><img alt="" src="http://rubenlaguna.com/wp/wp-content/uploads/skitch/System_Preferences-3-20100127-125025.jpg" title="add w715" class="aligncenter" width="675" height="584" /></a></p>
</li>
<li>
Turn off Airport or any other connection that you may be using  and the go to your newly created connection and click on &#8220;Connect&#8221;<br />
<a href="http://rubenlaguna.com/wp/wp-content/uploads/skitch/Network-8-20100127-124822.jpg"><img alt="" src="http://rubenlaguna.com/wp/wp-content/uploads/skitch/Network-8-20100127-124822.jpg" title="w715 connected" class="aligncenter" width="738" height="650" /></a>
</li>
</ol>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a title="Click me to see the sites." href="#" onclick="$$('div.d1096').each( function(e) { e.visualEffect('slide_down',{duration:2.5}) }); return false;"><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d1096" style="overflow:hidden">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blinklist.com/index.php?Action=Blink/addblink.php&amp;Name=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard&amp;Description=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard&amp;Url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F" rel="nofollow" title="Add to&nbsp;BlinkList"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/blinklist.png" title="Add to&nbsp;BlinkList" alt="Add to&nbsp;BlinkList" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F" rel="nofollow" title="Add to&nbsp;Bloglines"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Add to&nbsp;Bloglines" alt="Add to&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;title=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;Blogmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bmarks.png" title="Add to&nbsp;Blogmarks" alt="Add to&nbsp;Blogmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;submitHeadline=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;title=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;Connotea"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/connotea.png" title="Add to&nbsp;Connotea" alt="Add to&nbsp;Connotea" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;title=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.diigo.com/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;title=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;Diigo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/diigo.png" title="Add to&nbsp;Diigo" alt="Add to&nbsp;Diigo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;title=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;title=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;title=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://cgi.fark.com/cgi/fark/farkit.pl?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;h=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;Fark"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fark.png" title="Add to&nbsp;Fark" alt="Add to&nbsp;Fark" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;t=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;Faves"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bluedot.png" title="Add to&nbsp;Faves" alt="Add to&nbsp;Faves" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://fleck.com/litebookmarklet.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;title=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;Fleck"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fleck.png" title="Add to&nbsp;Fleck" alt="Add to&nbsp;Fleck" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://FriendSite.com/users/bookmarks/?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;t=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;FriendSite"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/friendsite.png" title="Add to&nbsp;FriendSite" alt="Add to&nbsp;FriendSite" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;title=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kaboodle.com/za/selectpage?p_pop=false&amp;pa=url&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F" rel="nofollow" title="Add to&nbsp;Kaboodle"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/kaboodle.png" title="Add to&nbsp;Kaboodle" alt="Add to&nbsp;Kaboodle" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.maple.nu/cgi-bin/search6/usa/ss_submit.cgi?fct=100&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;title=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;Maple"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/maple.png" title="Add to&nbsp;Maple" alt="Add to&nbsp;Maple" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;bm_description=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;T=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://netvouz.com/action/submitBookmark?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;title=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard&amp;popup=no" rel="nofollow" title="Add to&nbsp;Netvouz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netvouz.png" title="Add to&nbsp;Netvouz" alt="Add to&nbsp;Netvouz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;h=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;Newsvine"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/newsvine.png" title="Add to&nbsp;Newsvine" alt="Add to&nbsp;Newsvine" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.plugim.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;title=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;PlugIM"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/plugim.png" title="Add to&nbsp;PlugIM" alt="Add to&nbsp;PlugIM" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;title=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;title=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;Simpy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/simpy.png" title="Add to&nbsp;Simpy" alt="Add to&nbsp;Simpy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kirtsy.com//submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F" rel="nofollow" title="Add to&nbsp;Kirtsy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/skirt.png" title="Add to&nbsp;Kirtsy" alt="Add to&nbsp;Kirtsy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;title=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;title=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.shoutwire.com/?p=submit&amp;link=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F" rel="nofollow" title="Add to&nbsp;Shoutwire"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/shoutwire.png" title="Add to&nbsp;Shoutwire" alt="Add to&nbsp;Shoutwire" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F" rel="nofollow" title="Add to&nbsp;Squidoo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Add to&nbsp;Squidoo" alt="Add to&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F" rel="nofollow" title="Add to&nbsp;SphereIt"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Add to&nbsp;SphereIt" alt="Add to&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.spurl.net/spurl.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;title=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;Spurl"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/spurl.png" title="Add to&nbsp;Spurl" alt="Add to&nbsp;Spurl" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;name=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;ThisNext"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/thisnext.png" title="Add to&nbsp;ThisNext" alt="Add to&nbsp;ThisNext" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;title=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;Webride"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/webride.png" title="Add to&nbsp;Webride" alt="Add to&nbsp;Webride" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wists.com/t.php?c=null&amp;r=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;title={text}" rel="nofollow" title="Add to&nbsp;Wists"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/wists.png" title="Add to&nbsp;Wists" alt="Add to&nbsp;Wists" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F27%2Fconnect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard%2F&amp;t=Connect+to+the+internet+via+Bluetooth+PAN++with+Mac+OS+X+Snow+Leopard" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
<a style="font-size:90%;text-align: right; " title="Click me to hide the sites." href="#" onclick="$$('div.d1096').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); return false;">Hide Sites</a>
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d1096').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></content:encoded>
			<wfw:commentRss>http://rubenlaguna.com/wp/2010/01/27/connect-to-the-internet-via-bluetooth-pan-with-mac-os-x-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cancellable tasks and progress indicators [Netbeans Platform]</title>
		<link>http://rubenlaguna.com/wp/2010/01/18/cancellable-tasks-and-progress-indicators-netbeans-platform/</link>
		<comments>http://rubenlaguna.com/wp/2010/01/18/cancellable-tasks-and-progress-indicators-netbeans-platform/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 20:52:19 +0000</pubDate>
		<dc:creator>ruben.laguna</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[cancel]]></category>
		<category><![CDATA[cancellable]]></category>
		<category><![CDATA[indicator]]></category>
		<category><![CDATA[progress]]></category>
		<category><![CDATA[progresshandle]]></category>
		<category><![CDATA[requestprocessor]]></category>
		<category><![CDATA[runnable]]></category>
		<category><![CDATA[schedule]]></category>
		<category><![CDATA[task]]></category>
		<category><![CDATA[tasklistener]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://rubenlaguna.com/wp/?p=1066</guid>
		<description><![CDATA[Progress indicator (indeterminate mode) which allows to cancel the task
The easiest way of having a cancellable progress indicator (Progress API) for a task in Netbeans Platform Application is the one below but it´s only worth for tasks that don&#8217;t update the progress indicator (indeterminate mode) until the task is finished. If you want to update [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Progress indicator (indeterminate mode) which allows to cancel the task</strong><br />
The easiest way of having a cancellable progress indicator (<a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-api-progress/overview-summary.html">Progress API</a>) for a task in Netbeans Platform Application is the one below but it´s only worth for tasks that don&#8217;t update the progress indicator (indeterminate mode) until the task is finished. If you want to update the progress indicator (<code><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-api-progress/org/netbeans/api/progress/ProgressHandle.html">ProgressHandle</a></code>) inside the task itself <em>look at the second example</em>.</p>
<div id="attachment_1075" class="wp-caption aligncenter" style="width: 493px"><a href="http://rubenlaguna.com/wp/wp-content/uploads/2010/01/noprogressinformation.png"><img src="http://rubenlaguna.com/wp/wp-content/uploads/2010/01/noprogressinformation.png" alt="ProgressHandle indeterminate" title="noprogressinformation" width="483" height="141" class="size-full wp-image-1075" /></a><p class="wp-caption-text">ProgressHandle indeterminate</p></div>
<pre class="brush: java;">
package com.rubenlaguna.en4j.mainmodule;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Logger;
import org.netbeans.api.progress.ProgressHandle;
import org.netbeans.api.progress.ProgressHandleFactory;
import org.openide.util.RequestProcessor;
import org.openide.util.TaskListener;

public final class MyCancellableActionNoProgressInformation implements ActionListener {

    //The RequestProcessor has to have  allowInterrupt set to true!!
    private final static RequestProcessor RP = new RequestProcessor(&quot;interruptible tasks&quot;, 1, true);
    private final static Logger LOG = Logger.getLogger(MyCancellableActionNoProgressInformation.class.getName());

    public void actionPerformed(ActionEvent e) {

        Runnable runnable = new Runnable() {

            private final int NUM = 60000;

            public void run() {
                for (int i = 0; i &lt; NUM; i++) {
                    doSomething(i);
                    if (Thread.interrupted()) {
                        LOG.info(&quot;the task was CANCELLED&quot;);
                        return;
                    }
                }

            }

            private void doSomething(int i) {
                LOG.info(&quot;doSomething with &quot; + i);
                return;
            }
        };

        final RequestProcessor.Task theTask = RP.create(runnable);

        final ProgressHandle ph = ProgressHandleFactory.createHandle(&quot;performing some task&quot;, theTask);
        theTask.addTaskListener(new TaskListener() {
            public void taskFinished(org.openide.util.Task task) {
                //make sure that we get rid of the ProgressHandle
                //when the task is finished
                ph.finish();
            }
        });

        //start the progresshandle the progress UI will show 500s after
        ph.start();

        //this actually start the task
        theTask.schedule(0);
    }
}
</pre>

<div class="wp_syntax"><div class="code"><pre class="" style="font-family:monospace;">INFO <span class="br0">&#91;</span>com.rubenlaguna.en4j.mainmodule.ImportEvernoteFile<span class="br0">&#93;</span>: doSomething with <span style="">6619</span>
INFO <span class="br0">&#91;</span>com.rubenlaguna.en4j.mainmodule.ImportEvernoteFile<span class="br0">&#93;</span>: doSomething with <span style="">6620</span>
INFO <span class="br0">&#91;</span>com.rubenlaguna.en4j.mainmodule.ImportEvernoteFile<span class="br0">&#93;</span>: doSomething with <span style="">6621</span>
INFO <span class="br0">&#91;</span>com.rubenlaguna.en4j.mainmodule.ImportEvernoteFile<span class="br0">&#93;</span>: doSomething with <span style="">6622</span>
INFO <span class="br0">&#91;</span>com.rubenlaguna.en4j.mainmodule.ImportEvernoteFile<span class="br0">&#93;</span>: the task was CANCELLED</pre></div></div>

<p><strong>Progress indicator (determinate mode) which allows to cancel the task</strong></p>
<p>This example show a <code>ProgressHandle </code>that it&#8217;s updated from the Runnable and it&#8217;s still cancellable. In this case you are also somewhat to use the more cumbersome <code>catch(InterruptedException)</code> instead of just checking <code>Thread.interrupted()</code>. For some reason I couldn&#8217;t get the <code>Thread.interrupted()</code> to work in this case. Doing a <code>Thread.sleep(0)</code> will always throw a <code>InterruptedException </code> if the thread was interrupted (cancelling a task will interrupt the thread if the <code>RequestProcessor</code> is created with the <code>interruptThread=true</code>). </p>
<div id="attachment_1077" class="wp-caption aligncenter" style="width: 456px"><a href="http://rubenlaguna.com/wp/wp-content/uploads/2010/01/progressinformation.png"><img src="http://rubenlaguna.com/wp/wp-content/uploads/2010/01/progressinformation.png" alt="Progress indicator (determinate mode)" title="progressinformation" width="446" height="99" class="size-full wp-image-1077" /></a><p class="wp-caption-text">Progress indicator (determinate mode)</p></div>
<pre class="brush: java;">
package com.rubenlaguna.en4j.mainmodule;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Logger;
import org.netbeans.api.progress.ProgressHandle;
import org.netbeans.api.progress.ProgressHandleFactory;
import org.openide.util.Cancellable;
import org.openide.util.RequestProcessor;
import org.openide.util.Task;
import org.openide.util.TaskListener;

public final class MyCancellableAction implements ActionListener {

    private final static RequestProcessor RP = new RequestProcessor(&quot;interruptible tasks&quot;, 1, true);
    private final static Logger LOG = Logger.getLogger(MyCancellableAction.class.getName());
    private RequestProcessor.Task theTask = null;

    public void actionPerformed(ActionEvent e) {
        final ProgressHandle ph = ProgressHandleFactory.createHandle(&quot;task thats shows progress&quot;, new Cancellable() {

            public boolean cancel() {
                return handleCancel();
            }
        });

        Runnable runnable = new Runnable() {

            private final int NUM = 60000;

            public void run() {
                try {
                    ph.start(); //we must start the PH before we swith to determinate
                    ph.switchToDeterminate(NUM);
                    for (int i = 0; i &lt; NUM; i++) {
                        doSomething(i);
                        ph.progress(i);
                        Thread.sleep(0); //throws InterruptedException is the task was cancelled
                    }

                } catch (InterruptedException ex) {
                    LOG.info(&quot;the task was CANCELLED&quot;);
                    return;
                } 

            }

            private void doSomething(int i) {
                LOG.info(&quot;doSomething with &quot; + i);
                return;
            }
        };

        theTask = RP.create(runnable); //the task is not started yet

        theTask.addTaskListener(new TaskListener() {
            public void taskFinished(Task task) {
                ph.finish();
            }
        });

        theTask.schedule(0); //start the task

    }

    private boolean handleCancel() {
        LOG.info(&quot;handleCancel&quot;);
        if (null == theTask) {
            return false;
        }

        return theTask.cancel();
    }
}
</pre>

<div class="wp_syntax"><div class="code"><pre class="" style="font-family:monospace;">INFO <span class="br0">&#91;</span>com.rubenlaguna.en4j.mainmodule.MyCancellableAction<span class="br0">&#93;</span>: doSomething with <span style="">5399</span>
INFO <span class="br0">&#91;</span>com.rubenlaguna.en4j.mainmodule.MyCancellableAction<span class="br0">&#93;</span>: doSomething with <span style="">5400</span>
INFO <span class="br0">&#91;</span>com.rubenlaguna.en4j.mainmodule.MyCancellableAction<span class="br0">&#93;</span>: doSomething with <span style="">5401</span>
INFO <span class="br0">&#91;</span>com.rubenlaguna.en4j.mainmodule.MyCancellableAction<span class="br0">&#93;</span>: doSomething with <span style="">5402</span>
INFO <span class="br0">&#91;</span>com.rubenlaguna.en4j.mainmodule.MyCancellableAction<span class="br0">&#93;</span>: doSomething with <span style="">5403</span>
INFO <span class="br0">&#91;</span>com.rubenlaguna.en4j.mainmodule.MyCancellableAction<span class="br0">&#93;</span>: doSomething with <span style="">5404</span>
INFO <span class="br0">&#91;</span>com.rubenlaguna.en4j.mainmodule.MyCancellableAction<span class="br0">&#93;</span>: doSomething with <span style="">5405</span>
INFO <span class="br0">&#91;</span>com.rubenlaguna.en4j.mainmodule.MyCancellableAction<span class="br0">&#93;</span>: handleCancel
INFO <span class="br0">&#91;</span>com.rubenlaguna.en4j.mainmodule.MyCancellableAction<span class="br0">&#93;</span>: doSomething with <span style="">5406</span>
INFO <span class="br0">&#91;</span>com.rubenlaguna.en4j.mainmodule.MyCancellableAction<span class="br0">&#93;</span>: the task was CANCELLED</pre></div></div>

<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a title="Click me to see the sites." href="#" onclick="$$('div.d1066').each( function(e) { e.visualEffect('slide_down',{duration:2.5}) }); return false;"><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d1066" style="overflow:hidden">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blinklist.com/index.php?Action=Blink/addblink.php&amp;Name=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D&amp;Description=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D&amp;Url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F" rel="nofollow" title="Add to&nbsp;BlinkList"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/blinklist.png" title="Add to&nbsp;BlinkList" alt="Add to&nbsp;BlinkList" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F" rel="nofollow" title="Add to&nbsp;Bloglines"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Add to&nbsp;Bloglines" alt="Add to&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;title=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;Blogmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bmarks.png" title="Add to&nbsp;Blogmarks" alt="Add to&nbsp;Blogmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;submitHeadline=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;title=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;Connotea"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/connotea.png" title="Add to&nbsp;Connotea" alt="Add to&nbsp;Connotea" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;title=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.diigo.com/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;title=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;Diigo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/diigo.png" title="Add to&nbsp;Diigo" alt="Add to&nbsp;Diigo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;title=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;title=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;title=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://cgi.fark.com/cgi/fark/farkit.pl?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;h=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;Fark"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fark.png" title="Add to&nbsp;Fark" alt="Add to&nbsp;Fark" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;t=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;Faves"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bluedot.png" title="Add to&nbsp;Faves" alt="Add to&nbsp;Faves" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://fleck.com/litebookmarklet.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;title=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;Fleck"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fleck.png" title="Add to&nbsp;Fleck" alt="Add to&nbsp;Fleck" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://FriendSite.com/users/bookmarks/?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;t=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;FriendSite"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/friendsite.png" title="Add to&nbsp;FriendSite" alt="Add to&nbsp;FriendSite" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;title=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kaboodle.com/za/selectpage?p_pop=false&amp;pa=url&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F" rel="nofollow" title="Add to&nbsp;Kaboodle"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/kaboodle.png" title="Add to&nbsp;Kaboodle" alt="Add to&nbsp;Kaboodle" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.maple.nu/cgi-bin/search6/usa/ss_submit.cgi?fct=100&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;title=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;Maple"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/maple.png" title="Add to&nbsp;Maple" alt="Add to&nbsp;Maple" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;bm_description=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;T=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://netvouz.com/action/submitBookmark?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;title=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D&amp;popup=no" rel="nofollow" title="Add to&nbsp;Netvouz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netvouz.png" title="Add to&nbsp;Netvouz" alt="Add to&nbsp;Netvouz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;h=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;Newsvine"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/newsvine.png" title="Add to&nbsp;Newsvine" alt="Add to&nbsp;Newsvine" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.plugim.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;title=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;PlugIM"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/plugim.png" title="Add to&nbsp;PlugIM" alt="Add to&nbsp;PlugIM" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;title=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;title=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;Simpy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/simpy.png" title="Add to&nbsp;Simpy" alt="Add to&nbsp;Simpy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kirtsy.com//submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F" rel="nofollow" title="Add to&nbsp;Kirtsy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/skirt.png" title="Add to&nbsp;Kirtsy" alt="Add to&nbsp;Kirtsy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;title=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;title=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.shoutwire.com/?p=submit&amp;link=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F" rel="nofollow" title="Add to&nbsp;Shoutwire"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/shoutwire.png" title="Add to&nbsp;Shoutwire" alt="Add to&nbsp;Shoutwire" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F" rel="nofollow" title="Add to&nbsp;Squidoo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Add to&nbsp;Squidoo" alt="Add to&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F" rel="nofollow" title="Add to&nbsp;SphereIt"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Add to&nbsp;SphereIt" alt="Add to&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.spurl.net/spurl.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;title=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;Spurl"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/spurl.png" title="Add to&nbsp;Spurl" alt="Add to&nbsp;Spurl" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;name=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;ThisNext"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/thisnext.png" title="Add to&nbsp;ThisNext" alt="Add to&nbsp;ThisNext" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;title=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;Webride"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/webride.png" title="Add to&nbsp;Webride" alt="Add to&nbsp;Webride" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wists.com/t.php?c=null&amp;r=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;title={text}" rel="nofollow" title="Add to&nbsp;Wists"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/wists.png" title="Add to&nbsp;Wists" alt="Add to&nbsp;Wists" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F18%2Fcancellable-tasks-and-progress-indicators-netbeans-platform%2F&amp;t=Cancellable+tasks+and+progress+indicators+%5BNetbeans+Platform%5D" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
<a style="font-size:90%;text-align: right; " title="Click me to hide the sites." href="#" onclick="$$('div.d1066').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); return false;">Hide Sites</a>
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d1066').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></content:encoded>
			<wfw:commentRss>http://rubenlaguna.com/wp/2010/01/18/cancellable-tasks-and-progress-indicators-netbeans-platform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenJPA, HSQLDB and proper shutdown</title>
		<link>http://rubenlaguna.com/wp/2010/01/14/openjpa-hsqldb-and-proper-shutdown/</link>
		<comments>http://rubenlaguna.com/wp/2010/01/14/openjpa-hsqldb-and-proper-shutdown/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 18:28:06 +0000</pubDate>
		<dc:creator>ruben.laguna</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[connection]]></category>
		<category><![CDATA[connectionurl]]></category>
		<category><![CDATA[hsql]]></category>
		<category><![CDATA[hsqldb]]></category>
		<category><![CDATA[jpa]]></category>
		<category><![CDATA[openjpa]]></category>
		<category><![CDATA[persistence]]></category>
		<category><![CDATA[shutdown]]></category>
		<category><![CDATA[url]]></category>

		<guid isPermaLink="false">http://rubenlaguna.com/wp/?p=1031</guid>
		<description><![CDATA[I&#8217;m starting to get tired of OpenJPA/HSQLDB setup that I&#8217;ve trying: it seems to give more problems than it solves. Now I discovered that the HSQL db wasn&#8217;t been properly shutdown and for reasons that I&#8217;m investigating, if the HSQL db is not propertly closed (SHUTDOWN command) it&#8217;s impossible to reopen it again.  It [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m starting to get tired of OpenJPA/HSQLDB setup that I&#8217;ve trying: it seems to give more problems than it solves. Now I discovered that the HSQL db wasn&#8217;t been properly shutdown and for reasons that I&#8217;m investigating, if the HSQL db is not propertly closed (<code><a href="http://hsqldb.sourceforge.net/doc/guide/ch09.html#shutdown-section">SHUTDOWN</a></code> command) it&#8217;s impossible to reopen it again.  It fails with a <code>IndexOutOfBoundsException</code>.</p>
<pre class="brush: java;">
Caused by: org.hsqldb.HsqlException: error in script file line: 33 java.io.IOException: java.lang.IndexOutOfBoundsException in statement [SET TABLE PUBLIC.NOTES INDEX '2883070']
at org.hsqldb.Error.error(Error.java:111)
at org.hsqldb.scriptio.ScriptReaderText.readDDL(ScriptReaderText.java:132)
at org.hsqldb.scriptio.ScriptReaderBase.readAll(ScriptReaderBase.java:88)
at org.hsqldb.persist.Log.processScript(Log.java:721)
at org.hsqldb.persist.Log.open(Log.java:187)
at org.hsqldb.persist.Logger.openPersistence(Logger.java:209)
at org.hsqldb.Database.reopen(Database.java:265)
at org.hsqldb.Database.open(Database.java:235)
at org.hsqldb.DatabaseManager.getDatabase(DatabaseManager.java:222)
at org.hsqldb.DatabaseManager.newSession(DatabaseManager.java:145)
at org.hsqldb.jdbc.JDBCConnection.&lt;init&gt;(JDBCConnection.java:3219)
... 59 more
</pre>
<p>Annoying. This is not OpenJPA fault, but it gets complicated to actually solve it.</p>
<p>The obvious solution was to add a &#8220;<code>;shutdown=true</code>&#8221; to the <code>openjpa.ConnectionURL</code> property. That works but it makes the database access unbearable slow. Presumably because <a href="http://hsqldb.sourceforge.net/doc/guide/ch01.html#N101DB">it makes HSQL to perform a <code>SHUTDOWN</code> </a>each time OpenJPA closes the connection, and I guess that OpenJPA is closing the connection every couple of INSERTs. <del datetime="2010-01-15T08:35:44+00:00">This is a guess, I couldn&#8217;t confirm it but I see a lot of GC (garbage collection) going on between INSERT and INSERT and I though that I could be that.</del> <ins datetime="2010-01-15T08:35:44+00:00">Now I&#8217;m sure that OpenJPA is closing the connection, I can see it in the HSQL logs. There is a way to <a href="http://openjpa.apache.org/faq.html#FAQ-HowdoIenableconnectionpoolinginOpenJPA%253F">enable connection pooling in OpenJPA</a> although is non-trivial</ins></p>
<p>So &#8220;<code>;shutdown=true</code>&#8221; is not feasible right now, unless there is something that I could do to raise HSQLDB performance to an acceptable level while using this option. </p>
<p>I was forced to issue the <code>SHUTDOWN</code> myself. In my case in <code>close()</code> in a Netbean&#8217;s <code><a href="http://wiki.netbeans.org/DevFaqModulesStartupActions">ModuleInstaller</a></code>. Which I still don&#8217;t like because if the application is not propertly closed itself, the DB won&#8217;t be <code>SHUTDOWN</code> and the database will be unreadable again. </p>
<pre class="brush: java;">
public class Installer extends ModuleInstall {

    private static EntityManagerFactory EMF = null;
    private static EntityManager EM = null;
    private static String connectionURL = null;
    private static final Logger LOG = Logger.getLogger(Installer.class.getName());

    @Override
    public void close() {
        if (null != EM) {
            //things get cumbersome. We must syncronize access to EM.
            //here and anywhere else where it's used
            synchronized (EM) {
                EM.close();  //we know that there is no active transaction
                             //running because we synchronized the access
                             //and all the other synchonized blocks
                             //never leave the transaction open
                LOG.info(&quot;closed EntityManager &quot; + EM);

                //Issue a SHUTDOWN command via JPA Native Query
                final EntityManager emanager = EMF.createEntityManager();
                LOG.info(&quot;JPA Native Query shutdown&quot;);
                emanager.getTransaction().begin();
                emanager.createNativeQuery(&quot;SHUTDOWN&quot;).executeUpdate();
                emanager.getTransaction().commit();
                emanager.close();
            }
        }
        if (null != EMF) {
            LOG.info(&quot;closing EntityManagerFactory &quot; + EMF);
            EMF.close();
        }

    }

    public static EntityManager getEntityManager() {
        if (EMF == null) {
            Map properties = new HashMap();
            connectionURL = &quot;jdbc:hsqldb:file:&quot; + System.getProperty(&quot;netbeans.user&quot;) + &quot;/en4j/db&quot;;
            properties.put(&quot;openjpa.ConnectionURL&quot;, connectionURL);
            EMF = javax.persistence.Persistence.createEntityManagerFactory(&quot;JpaEntitiesClassLibraryPU&quot;, properties);
        }

        if (null == EM) {
            EM = EMF.createEntityManager();
        }
        synchronized (EM) {
            return java.beans.Beans.isDesignTime() ? null : EM;
        }
    }
}
</pre>
<p>As I said the everything gets more complicated because know the entityManager could be accessed simultaneosly by two different threads. The <code>ModuleInstall.close()</code> get invoked from a different thread and suddenly we have to use <code>synchonize</code> blocks arround the <code>EntityManager </code>and check that the <code>EntityManager </code>is still open (with <code>EntityManager.isOpen()</code>) everywhere. </p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a title="Click me to see the sites." href="#" onclick="$$('div.d1031').each( function(e) { e.visualEffect('slide_down',{duration:2.5}) }); return false;"><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d1031" style="overflow:hidden">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blinklist.com/index.php?Action=Blink/addblink.php&amp;Name=OpenJPA%2C+HSQLDB+and+proper+shutdown&amp;Description=OpenJPA%2C+HSQLDB+and+proper+shutdown&amp;Url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F" rel="nofollow" title="Add to&nbsp;BlinkList"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/blinklist.png" title="Add to&nbsp;BlinkList" alt="Add to&nbsp;BlinkList" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F" rel="nofollow" title="Add to&nbsp;Bloglines"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Add to&nbsp;Bloglines" alt="Add to&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;title=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;Blogmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bmarks.png" title="Add to&nbsp;Blogmarks" alt="Add to&nbsp;Blogmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;submitHeadline=OpenJPA%2C+HSQLDB+and+proper+shutdown&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;title=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;Connotea"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/connotea.png" title="Add to&nbsp;Connotea" alt="Add to&nbsp;Connotea" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;title=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.diigo.com/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;title=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;Diigo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/diigo.png" title="Add to&nbsp;Diigo" alt="Add to&nbsp;Diigo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;title=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;title=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=OpenJPA%2C+HSQLDB+and+proper+shutdown&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;title=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://cgi.fark.com/cgi/fark/farkit.pl?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;h=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;Fark"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fark.png" title="Add to&nbsp;Fark" alt="Add to&nbsp;Fark" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;t=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;Faves"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bluedot.png" title="Add to&nbsp;Faves" alt="Add to&nbsp;Faves" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://fleck.com/litebookmarklet.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;title=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;Fleck"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fleck.png" title="Add to&nbsp;Fleck" alt="Add to&nbsp;Fleck" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://FriendSite.com/users/bookmarks/?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;t=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;FriendSite"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/friendsite.png" title="Add to&nbsp;FriendSite" alt="Add to&nbsp;FriendSite" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;title=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kaboodle.com/za/selectpage?p_pop=false&amp;pa=url&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F" rel="nofollow" title="Add to&nbsp;Kaboodle"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/kaboodle.png" title="Add to&nbsp;Kaboodle" alt="Add to&nbsp;Kaboodle" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.maple.nu/cgi-bin/search6/usa/ss_submit.cgi?fct=100&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;title=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;Maple"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/maple.png" title="Add to&nbsp;Maple" alt="Add to&nbsp;Maple" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;bm_description=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;T=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://netvouz.com/action/submitBookmark?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;title=OpenJPA%2C+HSQLDB+and+proper+shutdown&amp;popup=no" rel="nofollow" title="Add to&nbsp;Netvouz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netvouz.png" title="Add to&nbsp;Netvouz" alt="Add to&nbsp;Netvouz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;h=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;Newsvine"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/newsvine.png" title="Add to&nbsp;Newsvine" alt="Add to&nbsp;Newsvine" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.plugim.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;title=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;PlugIM"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/plugim.png" title="Add to&nbsp;PlugIM" alt="Add to&nbsp;PlugIM" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;title=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;title=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;Simpy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/simpy.png" title="Add to&nbsp;Simpy" alt="Add to&nbsp;Simpy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kirtsy.com//submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F" rel="nofollow" title="Add to&nbsp;Kirtsy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/skirt.png" title="Add to&nbsp;Kirtsy" alt="Add to&nbsp;Kirtsy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;title=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;title=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.shoutwire.com/?p=submit&amp;link=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F" rel="nofollow" title="Add to&nbsp;Shoutwire"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/shoutwire.png" title="Add to&nbsp;Shoutwire" alt="Add to&nbsp;Shoutwire" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F" rel="nofollow" title="Add to&nbsp;Squidoo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Add to&nbsp;Squidoo" alt="Add to&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F" rel="nofollow" title="Add to&nbsp;SphereIt"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Add to&nbsp;SphereIt" alt="Add to&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.spurl.net/spurl.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;title=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;Spurl"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/spurl.png" title="Add to&nbsp;Spurl" alt="Add to&nbsp;Spurl" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;name=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;ThisNext"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/thisnext.png" title="Add to&nbsp;ThisNext" alt="Add to&nbsp;ThisNext" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;title=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;Webride"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/webride.png" title="Add to&nbsp;Webride" alt="Add to&nbsp;Webride" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wists.com/t.php?c=null&amp;r=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;title={text}" rel="nofollow" title="Add to&nbsp;Wists"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/wists.png" title="Add to&nbsp;Wists" alt="Add to&nbsp;Wists" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F14%2Fopenjpa-hsqldb-and-proper-shutdown%2F&amp;t=OpenJPA%2C+HSQLDB+and+proper+shutdown" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
<a style="font-size:90%;text-align: right; " title="Click me to hide the sites." href="#" onclick="$$('div.d1031').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); return false;">Hide Sites</a>
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d1031').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></content:encoded>
			<wfw:commentRss>http://rubenlaguna.com/wp/2010/01/14/openjpa-hsqldb-and-proper-shutdown/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JTable bound to a database with lazy loading</title>
		<link>http://rubenlaguna.com/wp/2010/01/13/jtable-bound-to-a-database-with-lazy-loading/</link>
		<comments>http://rubenlaguna.com/wp/2010/01/13/jtable-bound-to-a-database-with-lazy-loading/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 18:10:29 +0000</pubDate>
		<dc:creator>ruben.laguna</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[beans]]></category>
		<category><![CDATA[beansbinding]]></category>
		<category><![CDATA[binding]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[db]]></category>
		<category><![CDATA[jtable]]></category>
		<category><![CDATA[lazy]]></category>
		<category><![CDATA[loading]]></category>
		<category><![CDATA[pagination]]></category>
		<category><![CDATA[swing]]></category>

		<guid isPermaLink="false">http://rubenlaguna.com/wp/?p=1034</guid>
		<description><![CDATA[I&#8217;ve been doing experiments with JTables bound to database tables in the past. But I was not satisfied with the result to be honest. The pagination helps but there is still noticeable pauses each time a database query has to be issued. So I started looking into other possibilities. 
I come up with the idea [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been doing experiments with JTables bound to database tables in the <a href="http://rubenlaguna.com/wp/2009/08/18/jtable-beans-binding-and-jpa-pagination/">past</a>. But I was not satisfied with the result to be honest. The pagination helps but there is still noticeable pauses each time a database query has to be issued. So I started looking into other possibilities. </p>
<p>I come up with the idea of doing lazy loading and presenting some fake data until the data is really retrieved from the database, I did a small proof of concept and seems to work ok. </p>
<p>The solution goes like this. It uses <a href="http://swinglabs.org/docs/presentations/2007/DesktopMatters/beans-binding-talk.pdf">Beans Binding</a> to bind a <code>JTable</code> to a custom List like in the previous post. This custom list (ResultListDerby in the example below) returns <code>Bean</code>s (the Bean is called <code>Customer</code> in the example) that are initially empty. By empty I mean that all its properties return something like &#8220;<code>&lt;data not retrieved from the database yet&gt;</code>&#8220;. So the JTable will be initially full of &#8220;<code>&lt;data not retrieved yet&gt;</code>&#8220;. </p>
<p><a href="http://rubenlaguna.com/wp/wp-content/uploads/2010/01/lazyloading.png"><img src="http://rubenlaguna.com/wp/wp-content/uploads/2010/01/lazyloading.png" alt="" title="lazyloading" width="501" height="354" class="aligncenter size-full wp-image-1040" /></a></p>
<p>The picture above shows the <code>JTable</code> showing the <code>List </code>of <code>Customer</code>s. Each row represents a <code>Customer</code> instance. </p>
<p>Having empty/fake <code>Customer</code> beans allow a fast drawing to screen but it&#8217;s not very useful. Now, if at the same point as each <code>Customer</code> is created we create <code><a href="http://www.ermalaev.spb.ru/javase/6/docs/api/javax/swing/SwingWorker.html">SwingWorker</a></code> and schedule it to run in a <code><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/Executor.html">Executor</a></code> then we can get something more meaningful. So what we do in the <code>SwingWorker</code>? The <code>SwingWorker</code>, you guessed it, will retrieve the data from the database and update the bean (look at <code>ResultListDerby.getItem()</code> method). When the bean (<code>Customer.java</code>) is updated it will notify its listeners of the changes, automatically by means of bound properties , in this case <code>JTableBinding</code> will be notified and the <code>JTable</code> that will repaint the cells to reflect the changes in the Bean. (Check how <a href="http://java.sun.com/docs/books/tutorial/javabeans/properties/bound.html">bound properties</a> are implemented with  of <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/beans/PropertyChangeSupport.html"><code>PropertyChangeSupport</code></a> in Customer.java below). The rows will be updated one by one, as soon as the <code>Executor</code> completes a <code>SwingWorker</code> task a row will be updated. </p>
<p><a href="http://rubenlaguna.com/wp/wp-content/uploads/2010/01/lazyloading2.png"><img src="http://rubenlaguna.com/wp/wp-content/uploads/2010/01/lazyloading2.png" alt="" title="lazyloading2" width="495" height="737" class="aligncenter size-full wp-image-1039" /></a></p>
<p>This solution is free from annoying GUI freezes. The beans are always created fast because there is no need to go to the database to create them and that keeps the GUI liveness high. By moving the database access to <code>SwingWorker</code>s we keep the <a href="http://java.sun.com/docs/books/tutorial/uiswing/concurrency/dispatch.html">EDT (event dispatch thread)</a> lightweight. The solution also avoids having too many running <code>SwingWorker</code>s at the same time by using a <code>ExecutorService </code>instead of executing them directly via the <code>SwingWorker.execute()</code> method (Check <code>ResultListDerby.getItem()</code> to see how it&#8217;s done). </p>
<pre class="brush: java;">
package jtablepagination;

import java.lang.ref.WeakReference;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.AbstractList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.SwingWorker;

/**
 *
 * @author Ruben Laguna &lt;ruben.laguna at gmail.com&gt;
 */
public class MainWindow extends javax.swing.JFrame {

    /** Creates new form MainWindow */
    public MainWindow() {
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings(&quot;unchecked&quot;)
    // &lt;editor-fold defaultstate=&quot;collapsed&quot; desc=&quot;Generated Code&quot;&gt;
    private void initComponents() {
        bindingGroup = new org.jdesktop.beansbinding.BindingGroup();

        list1 = getList();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings.createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, list1, jTable1);
        org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create(&quot;${id}&quot;));
        columnBinding.setColumnName(&quot;id&quot;);
        columnBinding.setColumnClass(Integer.class);
        columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create(&quot;${firstName}&quot;));
        columnBinding.setColumnName(&quot;first name&quot;);
        columnBinding.setColumnClass(String.class);
        columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create(&quot;${lastName}&quot;));
        columnBinding.setColumnName(&quot;last name&quot;);
        columnBinding.setColumnClass(String.class);
        bindingGroup.addBinding(jTableBinding);
        jTableBinding.bind();
        jScrollPane1.setViewportView(jTable1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 464, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 344, Short.MAX_VALUE)
                .addContainerGap())
        );

        bindingGroup.bind();

        pack();
    }// &lt;/editor-fold&gt;                        

    private List&lt;Customer&gt; getList() {
        List&lt;Customer&gt; toReturn = new ResultListDerby();
        return toReturn;
    }

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MainWindow().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    private java.util.List&lt;Customer&gt; list1;
    private org.jdesktop.beansbinding.BindingGroup bindingGroup;
    // End of variables declaration                   

}

 class ResultListDerby extends AbstractList {

    private Connection connection;
    private final ExecutorService ex = Executors.newSingleThreadExecutor();
    private int size = -1;
    //maintain a cache with the Customer instances already created and alive
    private Map&lt;Integer, WeakReference&lt;Customer&gt;&gt; cache = new HashMap&lt;Integer, WeakReference&lt;Customer&gt;&gt;();

    ResultListDerby() {
        try {
            Class.forName(&quot;org.apache.derby.jdbc.ClientDriver&quot;);
            this.connection = DriverManager.getConnection(&quot;jdbc:derby://localhost:1527/customer&quot;, &quot;nbuser&quot;, &quot;nbuser&quot;);
        } catch (Exception ex) {
            Logger.getLogger(ResultListDerby.class.getName()).log(Level.SEVERE, null, ex);
            throw new RuntimeException(ex);
        }
    }

    public int size() {
        if (this.size == -1) {
            try {
                final ResultSet resultset = connection.createStatement().executeQuery(&quot;SELECT COUNT(ID) FROM CUSTOMERS&quot;);
                resultset.next();
                final int toReturn = resultset.getInt(1);
                this.size = toReturn;
            } catch (SQLException ex) {
                Logger.getLogger(ResultListDerby.class.getName()).log(Level.SEVERE, null, ex);
                throw new RuntimeException(ex);
            }
        }
        return this.size;
    }

    public Customer get(int rowIndex) {
        //this way we ensure that we don't create several Customer instances
        //for the same id. Otherwise it would be confusing for beansbindings.
        Customer toReturn = null;
        if (null != this.cache.get(rowIndex)) {
            toReturn = this.cache.get(rowIndex).get();
        }
        if (null == toReturn) {
            toReturn = getItem(rowIndex);
            this.cache.put(rowIndex, new WeakReference&lt;Customer&gt;(toReturn));
        }

        return toReturn;
    }

    private Customer getItem(final int j) {
        final Customer customer = new Customer(j);

        Runnable task = new SwingWorker() {

            private String firstNameValue;
            private String lastNameValue;

            @Override
            protected Object doInBackground() throws Exception {
                //this is always executed in a different thread from the current thread
                //it doesn't matter if the current thread is the EDT or a thread in the Executor
                final java.sql.Statement stmt = connection.createStatement();
                ResultSet executeQuery = stmt.executeQuery(&quot;SELECT ID, FIRST_NAME,LAST_NAME FROM CUSTOMERS ORDERDESC OFFSET &quot; + j + &quot; ROWS FETCH NEXT ROWS ONLY&quot;);
                executeQuery.next();
                firstNameValue = executeQuery.getString(2);
                lastNameValue = executeQuery.getString(3);
                return null;
            }

            @Override
            protected void done() {
                //this in the other hand will always be executed on the EDT.
                //This has to be done in the EDT because currently JTableBinding
                //is not smart enough to realize that the notification comes in another
                //thread and do a SwingUtilities.invokeLater. So we are force to execute this
                // in the EDT. Seee http://markmail.org/thread/6ehh76zt27qc5fis and
                // https://beansbinding.dev.java.net/issues/show_bug.cgi?id=60

                customer.setFirstName(firstNameValue);
                customer.setLastName(lastNameValue);
                Logger.getLogger(ResultListDerby.class.getName()).info(&quot;updating customer &quot; + customer);
            }
        };

        //NOTE that we don do task.execute()
        //posting the task to an Executor gives more control on
        //how many threads are created.
        ex.execute(task);
        return customer;
    }
}
</pre>
<pre class="brush: java;">
package jtablepagination;

import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.util.logging.Logger;

/**
 *
 * @author Ruben Laguna &lt;ruben.laguna at gmail.com&gt;
 */
public class Customer {

    private static final Logger LOG = Logger.getLogger(Customer.class.getName());
    private static final String NOT_RETRIEVED_YET = &quot;&lt;not retrieved yet&gt;&quot;;
    private int id = 0;
    public static final String PROP_ID = &quot;id&quot;;
    protected String firstName = NOT_RETRIEVED_YET;
    public static final String PROP_FIRSTNAME = &quot;firstName&quot;;
    protected String lastName = NOT_RETRIEVED_YET;
    public static final String PROP_LASTNAME = &quot;lastName&quot;;
    private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);

    Customer(int j) {
        this.id = j;
    }

    public int getId() {
        return id;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        String oldFirstName = this.firstName;
        this.firstName = firstName;
        propertyChangeSupport.firePropertyChange(PROP_FIRSTNAME, oldFirstName, firstName);
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        String oldLastName = this.lastName;
        this.lastName = lastName;
        if (propertyChangeSupport.hasListeners(PROP_LASTNAME)) {
            LOG.info(&quot;notifying!!!&quot;);
        } else {
            LOG.info(&quot;there is no listeners for the property&quot;);
        }

        propertyChangeSupport.firePropertyChange(PROP_LASTNAME, oldLastName, lastName);
    }

    public void addPropertyChangeListener(PropertyChangeListener listener) {
        LOG.info(&quot;add listener to customer &quot; + this.id);
        propertyChangeSupport.addPropertyChangeListener(listener);
    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {
        propertyChangeSupport.removePropertyChangeListener(listener);
    }

    @Override
    public String toString() {
        return &quot;id: &quot; + id + &quot; firstName: &quot; + firstName;
    }
}
</pre>
<p>References</p>
<ul>
<li>SwingWorker: <a href="http://java.sun.com/javase/6/docs/api/javax/swing/SwingWorker.html">http://java.sun.com/javase/6/docs/api/javax/swing/SwingWorker.html</a></li>
<li>WeakReference: <a href="http://java.sun.com/javase/6/docs/api/java/lang/ref/WeakReference.html">http://java.sun.com/javase/6/docs/api/java/lang/ref/WeakReference.html</a></li>
<li>Bound Properties: <a href="http://java.sun.com/docs/books/tutorial/javabeans/properties/bound.html">http://java.sun.com/docs/books/tutorial/javabeans/properties/bound.html</a></li>
<li></li>
</ul>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a title="Click me to see the sites." href="#" onclick="$$('div.d1034').each( function(e) { e.visualEffect('slide_down',{duration:2.5}) }); return false;"><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d1034" style="overflow:hidden">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blinklist.com/index.php?Action=Blink/addblink.php&amp;Name=JTable+bound+to+a+database+with+lazy+loading&amp;Description=JTable+bound+to+a+database+with+lazy+loading&amp;Url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F" rel="nofollow" title="Add to&nbsp;BlinkList"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/blinklist.png" title="Add to&nbsp;BlinkList" alt="Add to&nbsp;BlinkList" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F" rel="nofollow" title="Add to&nbsp;Bloglines"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Add to&nbsp;Bloglines" alt="Add to&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;title=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;Blogmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bmarks.png" title="Add to&nbsp;Blogmarks" alt="Add to&nbsp;Blogmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;submitHeadline=JTable+bound+to+a+database+with+lazy+loading&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;title=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;Connotea"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/connotea.png" title="Add to&nbsp;Connotea" alt="Add to&nbsp;Connotea" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;title=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.diigo.com/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;title=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;Diigo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/diigo.png" title="Add to&nbsp;Diigo" alt="Add to&nbsp;Diigo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;title=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;title=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=JTable+bound+to+a+database+with+lazy+loading&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;title=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://cgi.fark.com/cgi/fark/farkit.pl?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;h=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;Fark"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fark.png" title="Add to&nbsp;Fark" alt="Add to&nbsp;Fark" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;t=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;Faves"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bluedot.png" title="Add to&nbsp;Faves" alt="Add to&nbsp;Faves" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://fleck.com/litebookmarklet.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;title=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;Fleck"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fleck.png" title="Add to&nbsp;Fleck" alt="Add to&nbsp;Fleck" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://FriendSite.com/users/bookmarks/?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;t=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;FriendSite"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/friendsite.png" title="Add to&nbsp;FriendSite" alt="Add to&nbsp;FriendSite" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;title=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kaboodle.com/za/selectpage?p_pop=false&amp;pa=url&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F" rel="nofollow" title="Add to&nbsp;Kaboodle"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/kaboodle.png" title="Add to&nbsp;Kaboodle" alt="Add to&nbsp;Kaboodle" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.maple.nu/cgi-bin/search6/usa/ss_submit.cgi?fct=100&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;title=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;Maple"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/maple.png" title="Add to&nbsp;Maple" alt="Add to&nbsp;Maple" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;bm_description=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;T=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://netvouz.com/action/submitBookmark?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;title=JTable+bound+to+a+database+with+lazy+loading&amp;popup=no" rel="nofollow" title="Add to&nbsp;Netvouz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netvouz.png" title="Add to&nbsp;Netvouz" alt="Add to&nbsp;Netvouz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;h=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;Newsvine"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/newsvine.png" title="Add to&nbsp;Newsvine" alt="Add to&nbsp;Newsvine" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.plugim.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;title=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;PlugIM"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/plugim.png" title="Add to&nbsp;PlugIM" alt="Add to&nbsp;PlugIM" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;title=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;title=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;Simpy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/simpy.png" title="Add to&nbsp;Simpy" alt="Add to&nbsp;Simpy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kirtsy.com//submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F" rel="nofollow" title="Add to&nbsp;Kirtsy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/skirt.png" title="Add to&nbsp;Kirtsy" alt="Add to&nbsp;Kirtsy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;title=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;title=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.shoutwire.com/?p=submit&amp;link=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F" rel="nofollow" title="Add to&nbsp;Shoutwire"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/shoutwire.png" title="Add to&nbsp;Shoutwire" alt="Add to&nbsp;Shoutwire" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F" rel="nofollow" title="Add to&nbsp;Squidoo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Add to&nbsp;Squidoo" alt="Add to&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F" rel="nofollow" title="Add to&nbsp;SphereIt"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Add to&nbsp;SphereIt" alt="Add to&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.spurl.net/spurl.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;title=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;Spurl"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/spurl.png" title="Add to&nbsp;Spurl" alt="Add to&nbsp;Spurl" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;name=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;ThisNext"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/thisnext.png" title="Add to&nbsp;ThisNext" alt="Add to&nbsp;ThisNext" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;title=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;Webride"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/webride.png" title="Add to&nbsp;Webride" alt="Add to&nbsp;Webride" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wists.com/t.php?c=null&amp;r=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;title={text}" rel="nofollow" title="Add to&nbsp;Wists"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/wists.png" title="Add to&nbsp;Wists" alt="Add to&nbsp;Wists" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F13%2Fjtable-bound-to-a-database-with-lazy-loading%2F&amp;t=JTable+bound+to+a+database+with+lazy+loading" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
<a style="font-size:90%;text-align: right; " title="Click me to hide the sites." href="#" onclick="$$('div.d1034').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); return false;">Hide Sites</a>
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d1034').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></content:encoded>
			<wfw:commentRss>http://rubenlaguna.com/wp/2010/01/13/jtable-bound-to-a-database-with-lazy-loading/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating from Blinklist to Delicious.com: CSV to HTML</title>
		<link>http://rubenlaguna.com/wp/2010/01/03/migrating-from-blinklist-to-delicious-com-csv-to-html/</link>
		<comments>http://rubenlaguna.com/wp/2010/01/03/migrating-from-blinklist-to-delicious-com-csv-to-html/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 13:19:01 +0000</pubDate>
		<dc:creator>ruben.laguna</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[blinklist]]></category>
		<category><![CDATA[bookmarks]]></category>
		<category><![CDATA[comma separated values]]></category>
		<category><![CDATA[csv]]></category>
		<category><![CDATA[del.icio.us]]></category>
		<category><![CDATA[delicious]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[migrating]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[tab]]></category>

		<guid isPermaLink="false">http://rubenlaguna.com/wp/?p=1012</guid>
		<description><![CDATA[Apparently blinklist doesn&#8217;t export bookmarks to JSON format any longer and delicious has changed authentication scheme for its delicious API for new accounts (now it forces new users to use the OAuth / Yahoo ID). So the solutions described in this old post of mine doesn&#8217;t work.
So given the current state of affairs the only [...]]]></description>
			<content:encoded><![CDATA[<p>Apparently blinklist doesn&#8217;t export bookmarks to JSON format any longer and delicious has changed authentication scheme for its delicious API for new accounts (now it forces new users to use the OAuth / Yahoo ID). So the solutions described in <a href="http://rubenlaguna.com/wp/2008/07/11/migrating-blinklist-bookmarks-and-powermarks-bookmarks-to-delicious/">this old post of mine</a> doesn&#8217;t work.</p>
<p>So given the current state of affairs <a href="http://blinklist.com/user/export/?format=cvs">the only way to get your bookmarks out of Blinklist is CSV</a> (actually tab-separated) and the only easy way to import them to delicious is to use the HTML import. So we need a way to transforms Blinklist&#8217;s CSV to <a href="http://msdn.microsoft.com/en-us/library/aa753582(VS.85).aspx">HTML bookmark file format</a>. So I created this ruby scripts that takes <code>bookmark.csv</code> and generates <code>bookmarks.html</code> that you can <a href="https://secure.delicious.com/settings/bookmarks/import">import to delicious</a>. </p>
<pre class="brush: ruby;">
#!/usr/bin/ruby
require &quot;rubygems&quot;
require &quot;csv&quot; 

i=0
File.open('bookmarks.html', 'w') do |f|
  f.print &lt;&lt;EOF
  &lt;!DOCTYPE NETSCAPE-Bookmark-file-1&gt;
  &lt;META HTTP-EQUIV=&quot;Content-Type&quot; CONTENT=&quot;text/html; charset=UTF-8&quot;&gt;
  &lt;!-- This is an automatically generated file.
  It will be read and overwritten.
  Do Not Edit! --&gt;
  &lt;TITLE&gt;Bookmarks&lt;/TITLE&gt;
  &lt;H1&gt;Bookmarks&lt;/H1&gt;
  &lt;DL&gt;&lt;p&gt;
EOF

  CSV.open('bookmark.csv','r',&quot;\t&quot;) do  |item|
    next if item[0] == &quot;url&quot;
    i += 1
    puts &quot;#{i}: #{item[0]}&quot; #the url is position 0
    puts &quot;#{i}: #{item[1]}&quot; #the name is position 1
    puts &quot;#{i}: #{item[3]}&quot; #the tags are in position 3
    #next if i &gt; 3229
    #r.add(item[0],item[1],&quot;no description&quot;, getTags(item), getTime(item), true, getIsPrivate(item)) #url, name,tags,time,
    f.puts &quot;&lt;DT&gt;&lt;A HREF=\&quot;#{item[0]}\&quot; LAST_VISIT=\&quot;1248434357\&quot; ADD_DATE=\&quot;1248434357\&quot; TAGS=\&quot;#{item[3]}\&quot;&gt;#{item[1]}&lt;/A&gt;&quot;
  end
  f.puts &quot;&lt;/DL&gt;&lt;p&gt;&quot;
end
puts &quot;ended&quot;;
</pre>
<p><ins datetime="2010-01-04T19:27:39+00:00">It seems that in newer version of ruby there are changes in the csv module</ins></p>
<pre class="brush: ruby;">
#!/usr/bin/ruby
require &quot;rubygems&quot;
require &quot;csv&quot; 

i=0
File.open('bookmarks.html', 'w') do |f|
  f.print &lt;&lt;EOF
  &lt;!DOCTYPE NETSCAPE-Bookmark-file-1&gt;
  &lt;META HTTP-EQUIV=&quot;Content-Type&quot; CONTENT=&quot;text/html; charset=UTF-8&quot;&gt;
  &lt;!-- This is an automatically generated file.
  It will be read and overwritten.
  Do Not Edit! --&gt;
  &lt;TITLE&gt;Bookmarks&lt;/TITLE&gt;
  &lt;H1&gt;Bookmarks&lt;/H1&gt;
  &lt;DL&gt;&lt;p&gt;
EOF

  CSV.foreach('bookmark.csv',{:col_sep =&gt; &quot;\t&quot;}) do  |item|
    next if item[0] == &quot;url&quot;
    i += 1
    puts &quot;#{i}: #{item[0]}&quot; #the url is position 0
    puts &quot;#{i}: #{item[1]}&quot; #the name is position 1
    puts &quot;#{i}: #{item[2]}&quot; #the description is in position 2
    puts &quot;#{i}: #{item[3]}&quot; #the tags are in position 3
    #next if i &gt; 3229
    #r.add(item[0],item[1],&quot;no description&quot;, getTags(item), getTime(item), true, getIsPrivate(item)) #url, name,tags,time,
    f.puts &quot;&lt;DT&gt;&lt;A HREF=\&quot;#{item[0]}\&quot; LAST_VISIT=\&quot;1248434357\&quot; ADD_DATE=\&quot;1248434357\&quot; TAGS=\&quot;#{item[3]}\&quot;&gt;#{item[1]}&lt;/A&gt;
&lt;DD&gt;#{item[2]}&quot;
  end
  f.puts &quot;&lt;/DL&gt;&lt;p&gt;&quot;
end
puts &quot;ended&quot;;
</pre>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a title="Click me to see the sites." href="#" onclick="$$('div.d1012').each( function(e) { e.visualEffect('slide_down',{duration:2.5}) }); return false;"><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d1012" style="overflow:hidden">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blinklist.com/index.php?Action=Blink/addblink.php&amp;Name=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML&amp;Description=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML&amp;Url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F" rel="nofollow" title="Add to&nbsp;BlinkList"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/blinklist.png" title="Add to&nbsp;BlinkList" alt="Add to&nbsp;BlinkList" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F" rel="nofollow" title="Add to&nbsp;Bloglines"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Add to&nbsp;Bloglines" alt="Add to&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;title=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;Blogmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bmarks.png" title="Add to&nbsp;Blogmarks" alt="Add to&nbsp;Blogmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;submitHeadline=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;title=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;Connotea"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/connotea.png" title="Add to&nbsp;Connotea" alt="Add to&nbsp;Connotea" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;title=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.diigo.com/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;title=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;Diigo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/diigo.png" title="Add to&nbsp;Diigo" alt="Add to&nbsp;Diigo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;title=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;title=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;title=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://cgi.fark.com/cgi/fark/farkit.pl?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;h=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;Fark"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fark.png" title="Add to&nbsp;Fark" alt="Add to&nbsp;Fark" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;t=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;Faves"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bluedot.png" title="Add to&nbsp;Faves" alt="Add to&nbsp;Faves" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://fleck.com/litebookmarklet.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;title=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;Fleck"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fleck.png" title="Add to&nbsp;Fleck" alt="Add to&nbsp;Fleck" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://FriendSite.com/users/bookmarks/?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;t=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;FriendSite"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/friendsite.png" title="Add to&nbsp;FriendSite" alt="Add to&nbsp;FriendSite" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;title=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kaboodle.com/za/selectpage?p_pop=false&amp;pa=url&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F" rel="nofollow" title="Add to&nbsp;Kaboodle"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/kaboodle.png" title="Add to&nbsp;Kaboodle" alt="Add to&nbsp;Kaboodle" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.maple.nu/cgi-bin/search6/usa/ss_submit.cgi?fct=100&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;title=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;Maple"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/maple.png" title="Add to&nbsp;Maple" alt="Add to&nbsp;Maple" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;bm_description=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;T=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://netvouz.com/action/submitBookmark?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;title=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML&amp;popup=no" rel="nofollow" title="Add to&nbsp;Netvouz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netvouz.png" title="Add to&nbsp;Netvouz" alt="Add to&nbsp;Netvouz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;h=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;Newsvine"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/newsvine.png" title="Add to&nbsp;Newsvine" alt="Add to&nbsp;Newsvine" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.plugim.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;title=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;PlugIM"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/plugim.png" title="Add to&nbsp;PlugIM" alt="Add to&nbsp;PlugIM" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;title=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;title=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;Simpy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/simpy.png" title="Add to&nbsp;Simpy" alt="Add to&nbsp;Simpy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kirtsy.com//submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F" rel="nofollow" title="Add to&nbsp;Kirtsy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/skirt.png" title="Add to&nbsp;Kirtsy" alt="Add to&nbsp;Kirtsy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;title=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;title=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.shoutwire.com/?p=submit&amp;link=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F" rel="nofollow" title="Add to&nbsp;Shoutwire"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/shoutwire.png" title="Add to&nbsp;Shoutwire" alt="Add to&nbsp;Shoutwire" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F" rel="nofollow" title="Add to&nbsp;Squidoo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Add to&nbsp;Squidoo" alt="Add to&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F" rel="nofollow" title="Add to&nbsp;SphereIt"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Add to&nbsp;SphereIt" alt="Add to&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.spurl.net/spurl.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;title=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;Spurl"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/spurl.png" title="Add to&nbsp;Spurl" alt="Add to&nbsp;Spurl" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;name=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;ThisNext"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/thisnext.png" title="Add to&nbsp;ThisNext" alt="Add to&nbsp;ThisNext" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;title=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;Webride"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/webride.png" title="Add to&nbsp;Webride" alt="Add to&nbsp;Webride" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wists.com/t.php?c=null&amp;r=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;title={text}" rel="nofollow" title="Add to&nbsp;Wists"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/wists.png" title="Add to&nbsp;Wists" alt="Add to&nbsp;Wists" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2010%2F01%2F03%2Fmigrating-from-blinklist-to-delicious-com-csv-to-html%2F&amp;t=Migrating+from+Blinklist+to+Delicious.com%3A+CSV+to+HTML" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
<a style="font-size:90%;text-align: right; " title="Click me to hide the sites." href="#" onclick="$$('div.d1012').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); return false;">Hide Sites</a>
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d1012').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></content:encoded>
			<wfw:commentRss>http://rubenlaguna.com/wp/2010/01/03/migrating-from-blinklist-to-delicious-com-csv-to-html/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Two netbeans bugs at the same time</title>
		<link>http://rubenlaguna.com/wp/2009/11/16/two-netbeans-bugs-at-the-same-time/</link>
		<comments>http://rubenlaguna.com/wp/2009/11/16/two-netbeans-bugs-at-the-same-time/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 19:04:02 +0000</pubDate>
		<dc:creator>ruben.laguna</dc:creator>
				<category><![CDATA[netbeans]]></category>

		<guid isPermaLink="false">http://rubenlaguna.com/wp/?p=1006</guid>
		<description><![CDATA[It seems that source attachement for Library Wrapper Modules in Netbeans 6.8 Beta doesn&#8217;t work properly. I opened a bug report here https://netbeans.org/bugzilla/show_bug.cgi?id=176800#c9 and it seems that in the process I also spotted that &#8220;Swing Layout Extensions&#8221; library definition that comes with NB 6.8  it&#8217;s also wrong (see https://netbeans.org/bugzilla/show_bug.cgi?id=176800#c7)


Bookmark It












































Hide Sites



$$('div.d1006').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) [...]]]></description>
			<content:encoded><![CDATA[<p>It seems that source attachement for Library Wrapper Modules in Netbeans 6.8 Beta doesn&#8217;t work properly. I opened a bug report here <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=176800#c9">https://netbeans.org/bugzilla/show_bug.cgi?id=176800#c9</a> and it seems that in the process I also spotted that &#8220;Swing Layout Extensions&#8221; library definition that comes with NB 6.8  it&#8217;s also wrong (see <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=176800#c7">https://netbeans.org/bugzilla/show_bug.cgi?id=176800#c7</a>)</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a title="Click me to see the sites." href="#" onclick="$$('div.d1006').each( function(e) { e.visualEffect('slide_down',{duration:2.5}) }); return false;"><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d1006" style="overflow:hidden">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blinklist.com/index.php?Action=Blink/addblink.php&amp;Name=Two+netbeans+bugs+at+the+same+time&amp;Description=Two+netbeans+bugs+at+the+same+time&amp;Url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F" rel="nofollow" title="Add to&nbsp;BlinkList"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/blinklist.png" title="Add to&nbsp;BlinkList" alt="Add to&nbsp;BlinkList" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F" rel="nofollow" title="Add to&nbsp;Bloglines"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Add to&nbsp;Bloglines" alt="Add to&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;title=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;Blogmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bmarks.png" title="Add to&nbsp;Blogmarks" alt="Add to&nbsp;Blogmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;submitHeadline=Two+netbeans+bugs+at+the+same+time&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;title=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;Connotea"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/connotea.png" title="Add to&nbsp;Connotea" alt="Add to&nbsp;Connotea" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;title=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.diigo.com/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;title=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;Diigo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/diigo.png" title="Add to&nbsp;Diigo" alt="Add to&nbsp;Diigo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;title=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;title=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Two+netbeans+bugs+at+the+same+time&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;title=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://cgi.fark.com/cgi/fark/farkit.pl?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;h=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;Fark"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fark.png" title="Add to&nbsp;Fark" alt="Add to&nbsp;Fark" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;t=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;Faves"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bluedot.png" title="Add to&nbsp;Faves" alt="Add to&nbsp;Faves" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://fleck.com/litebookmarklet.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;title=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;Fleck"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fleck.png" title="Add to&nbsp;Fleck" alt="Add to&nbsp;Fleck" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://FriendSite.com/users/bookmarks/?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;t=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;FriendSite"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/friendsite.png" title="Add to&nbsp;FriendSite" alt="Add to&nbsp;FriendSite" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;title=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kaboodle.com/za/selectpage?p_pop=false&amp;pa=url&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F" rel="nofollow" title="Add to&nbsp;Kaboodle"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/kaboodle.png" title="Add to&nbsp;Kaboodle" alt="Add to&nbsp;Kaboodle" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.maple.nu/cgi-bin/search6/usa/ss_submit.cgi?fct=100&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;title=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;Maple"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/maple.png" title="Add to&nbsp;Maple" alt="Add to&nbsp;Maple" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;bm_description=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;T=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://netvouz.com/action/submitBookmark?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;title=Two+netbeans+bugs+at+the+same+time&amp;popup=no" rel="nofollow" title="Add to&nbsp;Netvouz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netvouz.png" title="Add to&nbsp;Netvouz" alt="Add to&nbsp;Netvouz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;h=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;Newsvine"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/newsvine.png" title="Add to&nbsp;Newsvine" alt="Add to&nbsp;Newsvine" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.plugim.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;title=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;PlugIM"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/plugim.png" title="Add to&nbsp;PlugIM" alt="Add to&nbsp;PlugIM" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;title=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;title=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;Simpy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/simpy.png" title="Add to&nbsp;Simpy" alt="Add to&nbsp;Simpy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kirtsy.com//submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F" rel="nofollow" title="Add to&nbsp;Kirtsy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/skirt.png" title="Add to&nbsp;Kirtsy" alt="Add to&nbsp;Kirtsy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;title=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;title=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.shoutwire.com/?p=submit&amp;link=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F" rel="nofollow" title="Add to&nbsp;Shoutwire"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/shoutwire.png" title="Add to&nbsp;Shoutwire" alt="Add to&nbsp;Shoutwire" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F" rel="nofollow" title="Add to&nbsp;Squidoo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Add to&nbsp;Squidoo" alt="Add to&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F" rel="nofollow" title="Add to&nbsp;SphereIt"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Add to&nbsp;SphereIt" alt="Add to&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.spurl.net/spurl.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;title=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;Spurl"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/spurl.png" title="Add to&nbsp;Spurl" alt="Add to&nbsp;Spurl" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;name=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;ThisNext"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/thisnext.png" title="Add to&nbsp;ThisNext" alt="Add to&nbsp;ThisNext" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;title=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;Webride"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/webride.png" title="Add to&nbsp;Webride" alt="Add to&nbsp;Webride" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wists.com/t.php?c=null&amp;r=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;title={text}" rel="nofollow" title="Add to&nbsp;Wists"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/wists.png" title="Add to&nbsp;Wists" alt="Add to&nbsp;Wists" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F16%2Ftwo-netbeans-bugs-at-the-same-time%2F&amp;t=Two+netbeans+bugs+at+the+same+time" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
<a style="font-size:90%;text-align: right; " title="Click me to hide the sites." href="#" onclick="$$('div.d1006').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); return false;">Hide Sites</a>
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d1006').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></content:encoded>
			<wfw:commentRss>http://rubenlaguna.com/wp/2009/11/16/two-netbeans-bugs-at-the-same-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to handle custom tags using Flying Saucer</title>
		<link>http://rubenlaguna.com/wp/2009/11/15/how-to-handle-custom-tags-using-flying-saucer/</link>
		<comments>http://rubenlaguna.com/wp/2009/11/15/how-to-handle-custom-tags-using-flying-saucer/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 20:44:22 +0000</pubDate>
		<dc:creator>ruben.laguna</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[block]]></category>
		<category><![CDATA[flying]]></category>
		<category><![CDATA[flyingsaucer]]></category>
		<category><![CDATA[replacedelementfactory]]></category>
		<category><![CDATA[sauce]]></category>
		<category><![CDATA[xhtmlrenderer]]></category>

		<guid isPermaLink="false">http://rubenlaguna.com/wp/?p=991</guid>
		<description><![CDATA[If you have a customized xhtml variant, like evernote ENML format and you want to render it with Flying Saucer R8 you must first make sure that the extra element (in ENML case, en-media) is defined as a block-level element. To do that you create your own NamespaceHandler and you make sure that you return [...]]]></description>
			<content:encoded><![CDATA[<p>If you have a customized xhtml variant, like <a href="http://www.evernote.com/about/developer/api/evernote-api.htm#_Toc200272580">evernote ENML format</a> and you want to render it with <a href="https://xhtmlrenderer.dev.java.net/">Flying Saucer R8</a> you must first make sure that the extra element (in ENML case, <code>en-media</code>) is defined as a <a href="http://www.w3.org/TR/CSS21/visuren.html#block-boxes">block-level element</a>. To do that you create your own <a href="http://pigeonholdings.com/projects/flyingsaucer/R8/doc/guide/users-guide-R8.html#xil_16">NamespaceHandler</a> and you make sure that you return <code>"display: block;"</code> for <code>en-media</code> in the implementation of <code>NamespaceHandler.getNonCssStyling</code>. (See <code>ENMLNamespaceHandler.java</code> below)</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">        ....
        <span style="color: #006633;">XHTMLPanel</span> panel <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> XHTMLPanel<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        panel.<span style="color: #006633;">setDocument</span><span style="color: #009900;">&#40;</span>doc,<span style="color: #0000ff;">&quot;&quot;</span>,<span style="color: #000000; font-weight: bold;">new</span> ENMLNamespaceHandler<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> XhtmlNamespaceHandler<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        ....
        <span style="color: #000000; font-weight: bold;">class</span> ENMLNamespaceHandler <span style="color: #000000; font-weight: bold;">implements</span> NamespaceHandler <span style="color: #009900;">&#123;</span>
        ....
           <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getNonCssStyling<span style="color: #009900;">&#40;</span><span style="color: #003399;">Element</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
               <span style="color: #003399;">String</span> toReturn <span style="color: #339933;">=</span> delegate.<span style="color: #006633;">getNonCssStyling</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
               <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;en-media&quot;</span>.<span style="color: #006633;">equalsIgnoreCase</span><span style="color: #009900;">&#40;</span>e.<span style="color: #006633;">getNodeName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                  toReturn <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;display: block;&quot;</span><span style="color: #339933;">;</span>
               <span style="color: #009900;">&#125;</span>
               <span style="color: #000000; font-weight: bold;">return</span> toReturn<span style="color: #339933;">;</span>
           <span style="color: #009900;">&#125;</span>
        ....
        <span style="color: #009900;">&#125;</span></pre></div></div>

<p>With that you ensure that xhtmlrenderer will call <code>ReplacedElementFactory.createReplacedElement</code> for <code>en-media</code>. Now you must supply a <a href="http://pigeonholdings.com/projects/flyingsaucer/R8/doc/guide/users-guide-R8.html#xil_18">ReplacedElementFactory</a> that it&#8217;s able to process <code>en-media</code>. Usually the implementation of the <code>createReplacedElement()</code> involves creating  a Swing JComponent, wrapping it in a <code>SwingReplacedElement</code> and adding it to the <code>LayoutContext.getCanvas()</code>.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">        ....
       <span style="color: #006633;">ReplacedElementFactory</span> cef <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ENMLReplacedElementFactory<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> SwingReplacedElementFactory<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       XHTMLPanel panel <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> XHTMLPanel<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       panel.<span style="color: #006633;">getSharedContext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setReplacedElementFactory</span><span style="color: #009900;">&#40;</span>cef<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       panel.<span style="color: #006633;">setDocument</span><span style="color: #009900;">&#40;</span>doc,<span style="color: #0000ff;">&quot;&quot;</span>,<span style="color: #000000; font-weight: bold;">new</span> ENMLNamespaceHandler<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> XhtmlNamespaceHandler<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        ....
&nbsp;
       <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ENMLReplacedElementFactory <span style="color: #000000; font-weight: bold;">implements</span> ReplacedElementFactory <span style="color: #009900;">&#123;</span>
       ...
          <span style="color: #000000; font-weight: bold;">public</span> ReplacedElement createReplacedElement<span style="color: #009900;">&#40;</span>LayoutContext context, BlockBox box,
                                                                                      UserAgentCallback uac, <span style="color: #000066; font-weight: bold;">int</span> cssWidth, <span style="color: #000066; font-weight: bold;">int</span> cssHeight<span style="color: #009900;">&#41;</span> 
          <span style="color: #009900;">&#123;</span>
&nbsp;
             <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;en-media&quot;</span>.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span>box.<span style="color: #006633;">getElement</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getNodeName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                    <span style="color: #003399;">JTextArea</span> cc <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">JTextArea</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                   cc.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Missing implementation for en-media&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                   cc.<span style="color: #006633;">setSize</span><span style="color: #009900;">&#40;</span>cc.<span style="color: #006633;">getPreferredSize</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                   context.<span style="color: #006633;">getCanvas</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>cc<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                   ReplacedElement toReturn <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SwingReplacedElement<span style="color: #009900;">&#40;</span>cc<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                     <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> isRequiresInteractivePaint<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                         <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
                     <span style="color: #009900;">&#125;</span>
                  <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
                 <span style="color: #000000; font-weight: bold;">return</span> toReturn<span style="color: #339933;">;</span>
         <span style="color: #009900;">&#125;</span>
&nbsp;
        ReplacedElement toReturn <span style="color: #339933;">=</span> delegate.<span style="color: #006633;">createReplacedElement</span><span style="color: #009900;">&#40;</span>context, box, uac, cssWidth, cssHeight<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">return</span> toReturn<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
....
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>References:</p>
<ol>
<li><a href="http://markmail.org/message/dxlbshzjgymqlilc">Experiment: embedding Flash in Flying Saucer</a> </li>
<li><a href="http://pigeonholdings.com/projects/flyingsaucer/R8/doc/guide/users-guide-R8.html#xil_16">NamespaceHandler</a></li>
<li><a href="http://pigeonholdings.com/projects/flyingsaucer/R8/doc/guide/users-guide-R8.html#xil_16">ReplacedElementFactory</a></li>
<li><a href="http://markmail.org/message/2vhstefogpgb4xaa">Re: custom layout support</a></li>
<li><a href="http://wiki.java.net/bin/view/Javadesktop/TheFlyingSaucerInProcessFAQ">http://wiki.java.net/bin/view/Javadesktop/TheFlyingSaucerInProcessFAQ</a></li>
</ol>
<p>ENMLNamespaceHandler.java:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.rubenlaguna.en4j.NoteContentViewModule</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.logging.Logger</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.w3c.dom.Document</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.w3c.dom.Element</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.xhtmlrenderer.css.extend.StylesheetFactory</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.xhtmlrenderer.css.sheet.StylesheetInfo</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.xhtmlrenderer.extend.NamespaceHandler</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/**
 *
 * @author ecerulm
 */</span>
<span style="color: #000000; font-weight: bold;">class</span> ENMLNamespaceHandler <span style="color: #000000; font-weight: bold;">implements</span> NamespaceHandler <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">final</span> NamespaceHandler delegate<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> ENMLNamespaceHandler<span style="color: #009900;">&#40;</span>NamespaceHandler h<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">delegate</span> <span style="color: #339933;">=</span> h<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> isImageElement<span style="color: #009900;">&#40;</span><span style="color: #003399;">Element</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> delegate.<span style="color: #006633;">isImageElement</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> isFormElement<span style="color: #009900;">&#40;</span><span style="color: #003399;">Element</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> delegate.<span style="color: #006633;">isFormElement</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> StylesheetInfo<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> getStylesheets<span style="color: #009900;">&#40;</span><span style="color: #003399;">Document</span> doc<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> delegate.<span style="color: #006633;">getStylesheets</span><span style="color: #009900;">&#40;</span>doc<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getNonCssStyling<span style="color: #009900;">&#40;</span><span style="color: #003399;">Element</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003399;">String</span> toReturn <span style="color: #339933;">=</span> delegate.<span style="color: #006633;">getNonCssStyling</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;en-media&quot;</span>.<span style="color: #006633;">equalsIgnoreCase</span><span style="color: #009900;">&#40;</span>e.<span style="color: #006633;">getNodeName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            toReturn <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;display: block;&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        Logger.<span style="color: #006633;">getLogger</span><span style="color: #009900;">&#40;</span>ENMLNamespaceHandler.<span style="color: #000000; font-weight: bold;">class</span>.<span style="color: #006633;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">info</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;style for (&quot;</span><span style="color: #339933;">+</span>e.<span style="color: #006633;">getNodeName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #0000ff;">&quot;) is (&quot;</span><span style="color: #339933;">+</span>toReturn<span style="color: #339933;">+</span><span style="color: #0000ff;">&quot;)&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">return</span> toReturn<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getNamespace<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> delegate.<span style="color: #006633;">getNamespace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getLinkUri<span style="color: #009900;">&#40;</span><span style="color: #003399;">Element</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> delegate.<span style="color: #006633;">getLinkUri</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getLang<span style="color: #009900;">&#40;</span><span style="color: #003399;">Element</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> delegate.<span style="color: #006633;">getLang</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getImageSourceURI<span style="color: #009900;">&#40;</span><span style="color: #003399;">Element</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> delegate.<span style="color: #006633;">getImageSourceURI</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getID<span style="color: #009900;">&#40;</span><span style="color: #003399;">Element</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> delegate.<span style="color: #006633;">getID</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getElementStyling<span style="color: #009900;">&#40;</span><span style="color: #003399;">Element</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> delegate.<span style="color: #006633;">getElementStyling</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getDocumentTitle<span style="color: #009900;">&#40;</span><span style="color: #003399;">Document</span> doc<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> delegate.<span style="color: #006633;">getDocumentTitle</span><span style="color: #009900;">&#40;</span>doc<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> StylesheetInfo getDefaultStylesheet<span style="color: #009900;">&#40;</span>StylesheetFactory factory<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> delegate.<span style="color: #006633;">getDefaultStylesheet</span><span style="color: #009900;">&#40;</span>factory<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getClass<span style="color: #009900;">&#40;</span><span style="color: #003399;">Element</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> delegate.<span style="color: #006633;">getClass</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getAttributeValue<span style="color: #009900;">&#40;</span><span style="color: #003399;">Element</span> e, <span style="color: #003399;">String</span> namespaceURI, <span style="color: #003399;">String</span> attrName<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> delegate.<span style="color: #006633;">getAttributeValue</span><span style="color: #009900;">&#40;</span>e, namespaceURI, attrName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getAttributeValue<span style="color: #009900;">&#40;</span><span style="color: #003399;">Element</span> e, <span style="color: #003399;">String</span> attrName<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> delegate.<span style="color: #006633;">getAttributeValue</span><span style="color: #009900;">&#40;</span>e, attrName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getAnchorName<span style="color: #009900;">&#40;</span><span style="color: #003399;">Element</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> delegate.<span style="color: #006633;">getAnchorName</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>ENMLReplacedElementFactory.java:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */</span>
<span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.rubenlaguna.en4j.NoteContentViewModule</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.awt.Color</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.awt.Dimension</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.awt.Font</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.awt.Graphics2D</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.awt.image.BufferedImage</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.logging.Level</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.logging.Logger</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.swing.JLabel</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.swing.JPanel</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.swing.JTextArea</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.w3c.dom.Element</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.xhtmlrenderer.extend.ReplacedElement</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.xhtmlrenderer.extend.ReplacedElementFactory</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.xhtmlrenderer.extend.UserAgentCallback</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.xhtmlrenderer.layout.LayoutContext</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.xhtmlrenderer.render.BlockBox</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.xhtmlrenderer.simple.extend.FormSubmissionListener</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.xhtmlrenderer.swing.EmptyReplacedElement</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.xhtmlrenderer.swing.ImageReplacedElement</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.xhtmlrenderer.swing.SwingReplacedElement</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.xhtmlrenderer.swing.SwingReplacedElementFactory</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.xhtmlrenderer.util.ImageUtil</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/**
 *
 * @author ecerulm
 */</span>
<span style="color: #000000; font-weight: bold;">class</span> ENMLReplacedElementFactory <span style="color: #000000; font-weight: bold;">implements</span> ReplacedElementFactory <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">final</span> SwingReplacedElementFactory delegate<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">final</span> Logger LOG <span style="color: #339933;">=</span> Logger.<span style="color: #006633;">getLogger</span><span style="color: #009900;">&#40;</span>ENMLReplacedElementFactory.<span style="color: #000000; font-weight: bold;">class</span>.<span style="color: #006633;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> ENMLReplacedElementFactory<span style="color: #009900;">&#40;</span>SwingReplacedElementFactory delegate<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">delegate</span> <span style="color: #339933;">=</span> delegate<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setFormSubmissionListener<span style="color: #009900;">&#40;</span>FormSubmissionListener fsl<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        delegate.<span style="color: #006633;">setFormSubmissionListener</span><span style="color: #009900;">&#40;</span>fsl<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> reset<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        delegate.<span style="color: #006633;">reset</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> remove<span style="color: #009900;">&#40;</span><span style="color: #003399;">Element</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        delegate.<span style="color: #006633;">remove</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> ReplacedElement createReplacedElement<span style="color: #009900;">&#40;</span>LayoutContext context, BlockBox box, UserAgentCallback uac, <span style="color: #000066; font-weight: bold;">int</span> cssWidth, <span style="color: #000066; font-weight: bold;">int</span> cssHeight<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        ReplacedElement toReturn <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
        Logger.<span style="color: #006633;">getLogger</span><span style="color: #009900;">&#40;</span>ENMLReplacedElementFactory.<span style="color: #000000; font-weight: bold;">class</span>.<span style="color: #006633;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">log</span><span style="color: #009900;">&#40;</span>Level.<span style="color: #006633;">INFO</span>, <span style="color: #0000ff;">&quot;Element:&quot;</span> <span style="color: #339933;">+</span> box.<span style="color: #006633;">getElement</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getNodeName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        Logger.<span style="color: #006633;">getLogger</span><span style="color: #009900;">&#40;</span>ENMLReplacedElementFactory.<span style="color: #000000; font-weight: bold;">class</span>.<span style="color: #006633;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">log</span><span style="color: #009900;">&#40;</span>Level.<span style="color: #006633;">INFO</span>, <span style="color: #0000ff;">&quot;Element content:&quot;</span> <span style="color: #339933;">+</span> box.<span style="color: #006633;">getElement</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getNodeValue</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;en-media&quot;</span>.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span>box.<span style="color: #006633;">getElement</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getNodeName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #666666; font-style: italic;">//if(&quot;image/jpeg&quot;.equalsIgnoreCase(box.getElement().getAttribute(&quot;type&quot;))){</span>
            <span style="color: #666666; font-style: italic;">//</span>
            <span style="color: #666666; font-style: italic;">//    toReturn = loadImage()</span>
            <span style="color: #666666; font-style: italic;">//            return toReturn;</span>
            <span style="color: #666666; font-style: italic;">//}</span>
            toReturn <span style="color: #339933;">=</span> brokenImage<span style="color: #009900;">&#40;</span>context, <span style="color: #cc66cc;">100</span>, <span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">null</span> <span style="color: #339933;">==</span> toReturn<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            toReturn <span style="color: #339933;">=</span> delegate.<span style="color: #006633;">createReplacedElement</span><span style="color: #009900;">&#40;</span>context, box, uac, cssWidth, cssHeight<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">return</span> toReturn<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> ReplacedElement brokenImage<span style="color: #009900;">&#40;</span>LayoutContext context, <span style="color: #000066; font-weight: bold;">int</span> cssWidth, <span style="color: #000066; font-weight: bold;">int</span> cssHeight<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">//TODO: add a real implementation that returns an image</span>
        ReplacedElement toReturn <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #003399;">JTextArea</span> cc <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">JTextArea</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        cc.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Missing implementation for en-media&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;">//cc.setPreferredSize(new Dimension(cssWidth, cssHeight));</span>
        cc.<span style="color: #006633;">setSize</span><span style="color: #009900;">&#40;</span>cc.<span style="color: #006633;">getPreferredSize</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        context.<span style="color: #006633;">getCanvas</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>cc<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        toReturn <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SwingReplacedElement<span style="color: #009900;">&#40;</span>cc<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
            <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> isRequiresInteractivePaint<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">return</span> toReturn<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a title="Click me to see the sites." href="#" onclick="$$('div.d991').each( function(e) { e.visualEffect('slide_down',{duration:2.5}) }); return false;"><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d991" style="overflow:hidden">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blinklist.com/index.php?Action=Blink/addblink.php&amp;Name=How+to+handle+custom+tags+using+Flying+Saucer&amp;Description=How+to+handle+custom+tags+using+Flying+Saucer&amp;Url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F" rel="nofollow" title="Add to&nbsp;BlinkList"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/blinklist.png" title="Add to&nbsp;BlinkList" alt="Add to&nbsp;BlinkList" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F" rel="nofollow" title="Add to&nbsp;Bloglines"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Add to&nbsp;Bloglines" alt="Add to&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;title=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;Blogmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bmarks.png" title="Add to&nbsp;Blogmarks" alt="Add to&nbsp;Blogmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;submitHeadline=How+to+handle+custom+tags+using+Flying+Saucer&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;title=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;Connotea"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/connotea.png" title="Add to&nbsp;Connotea" alt="Add to&nbsp;Connotea" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;title=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.diigo.com/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;title=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;Diigo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/diigo.png" title="Add to&nbsp;Diigo" alt="Add to&nbsp;Diigo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;title=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;title=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=How+to+handle+custom+tags+using+Flying+Saucer&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;title=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://cgi.fark.com/cgi/fark/farkit.pl?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;h=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;Fark"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fark.png" title="Add to&nbsp;Fark" alt="Add to&nbsp;Fark" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;t=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;Faves"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bluedot.png" title="Add to&nbsp;Faves" alt="Add to&nbsp;Faves" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://fleck.com/litebookmarklet.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;title=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;Fleck"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fleck.png" title="Add to&nbsp;Fleck" alt="Add to&nbsp;Fleck" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://FriendSite.com/users/bookmarks/?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;t=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;FriendSite"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/friendsite.png" title="Add to&nbsp;FriendSite" alt="Add to&nbsp;FriendSite" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;title=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kaboodle.com/za/selectpage?p_pop=false&amp;pa=url&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F" rel="nofollow" title="Add to&nbsp;Kaboodle"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/kaboodle.png" title="Add to&nbsp;Kaboodle" alt="Add to&nbsp;Kaboodle" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.maple.nu/cgi-bin/search6/usa/ss_submit.cgi?fct=100&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;title=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;Maple"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/maple.png" title="Add to&nbsp;Maple" alt="Add to&nbsp;Maple" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;bm_description=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;T=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://netvouz.com/action/submitBookmark?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;title=How+to+handle+custom+tags+using+Flying+Saucer&amp;popup=no" rel="nofollow" title="Add to&nbsp;Netvouz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netvouz.png" title="Add to&nbsp;Netvouz" alt="Add to&nbsp;Netvouz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;h=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;Newsvine"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/newsvine.png" title="Add to&nbsp;Newsvine" alt="Add to&nbsp;Newsvine" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.plugim.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;title=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;PlugIM"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/plugim.png" title="Add to&nbsp;PlugIM" alt="Add to&nbsp;PlugIM" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;title=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;title=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;Simpy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/simpy.png" title="Add to&nbsp;Simpy" alt="Add to&nbsp;Simpy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kirtsy.com//submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F" rel="nofollow" title="Add to&nbsp;Kirtsy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/skirt.png" title="Add to&nbsp;Kirtsy" alt="Add to&nbsp;Kirtsy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;title=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;title=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.shoutwire.com/?p=submit&amp;link=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F" rel="nofollow" title="Add to&nbsp;Shoutwire"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/shoutwire.png" title="Add to&nbsp;Shoutwire" alt="Add to&nbsp;Shoutwire" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F" rel="nofollow" title="Add to&nbsp;Squidoo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Add to&nbsp;Squidoo" alt="Add to&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F" rel="nofollow" title="Add to&nbsp;SphereIt"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Add to&nbsp;SphereIt" alt="Add to&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.spurl.net/spurl.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;title=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;Spurl"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/spurl.png" title="Add to&nbsp;Spurl" alt="Add to&nbsp;Spurl" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;name=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;ThisNext"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/thisnext.png" title="Add to&nbsp;ThisNext" alt="Add to&nbsp;ThisNext" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;title=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;Webride"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/webride.png" title="Add to&nbsp;Webride" alt="Add to&nbsp;Webride" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wists.com/t.php?c=null&amp;r=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;title={text}" rel="nofollow" title="Add to&nbsp;Wists"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/wists.png" title="Add to&nbsp;Wists" alt="Add to&nbsp;Wists" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F15%2Fhow-to-handle-custom-tags-using-flying-saucer%2F&amp;t=How+to+handle+custom+tags+using+Flying+Saucer" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
<a style="font-size:90%;text-align: right; " title="Click me to hide the sites." href="#" onclick="$$('div.d991').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); return false;">Hide Sites</a>
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d991').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></content:encoded>
			<wfw:commentRss>http://rubenlaguna.com/wp/2009/11/15/how-to-handle-custom-tags-using-flying-saucer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Incorrect track length in iTunes</title>
		<link>http://rubenlaguna.com/wp/2009/11/01/incorrect-track-length-in-itunes/</link>
		<comments>http://rubenlaguna.com/wp/2009/11/01/incorrect-track-length-in-itunes/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 20:26:52 +0000</pubDate>
		<dc:creator>ruben.laguna</dc:creator>
				<category><![CDATA[itunes]]></category>
		<category><![CDATA[encode]]></category>
		<category><![CDATA[incorrect]]></category>
		<category><![CDATA[lame]]></category>
		<category><![CDATA[length]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[reencode]]></category>
		<category><![CDATA[wrong]]></category>

		<guid isPermaLink="false">http://rubenlaguna.com/wp/?p=980</guid>
		<description><![CDATA[iTunes was reporting a incorrect track time length for an audiobook that I created concatenating several mp3 together. 
I had to reencode the whole thing again to make iTunes recognize propertly the track lenght. I could&#8217;t reencode the concatenated file itself as that ended up with a Segmentation fault in lame

cat *.mp3 &#124;lame --mp3input - [...]]]></description>
			<content:encoded><![CDATA[<p>iTunes was reporting a incorrect track time length for an audiobook that I created concatenating several mp3 together. </p>
<p>I had to reencode the whole thing again to make iTunes recognize propertly the track lenght. I could&#8217;t reencode the concatenated file itself as that ended up with a <code>Segmentation fault</code> in <a href="http://lame.sourceforge.net/">lame</a></p>

<div class="wp_syntax"><div class="code"><pre class="" style="font-family:monospace;">cat *.mp3 |lame --mp3input - - &gt;resultfile.mp3
&nbsp;
cat *Night.mp3 |lame --mp3input -  down.mp3
ID3v2 found. Be aware that the ID3 tag is currently lost when transcoding.
LAME 3.98.2 64bits <span class="br0">&#40;</span>http://www.mp3dev.org/<span class="br0">&#41;</span>
Using polyphase lowpass filter, transition band: <span style="">16538</span> Hz - <span style="">17071</span> Hz
Encoding &lt;stdin&gt; to down.mp3
Encoding as <span style="">44.1</span> kHz single-ch MPEG-<span style="">1</span> Layer III <span class="br0">&#40;</span>11x<span class="br0">&#41;</span>  <span style="">64</span> kbps qval=<span style="">3</span>
bitstream problem: resyncing...
bitstream problem: resyncing...
bitstream problem: resyncing...
bitstream problem: resyncing...</pre></div></div>

<p>This uses the lame streaming mode, decodes the input stream (all mp3 concatenated) as mp3 and then reencodes it as mp3. Although it complains about &#8220;<code>bitstream problem: resyncing...</code>&#8220;, the resulting mp3 sounds fine. </p>
<ul>
<li><a href="http://www.ehmac.ca/mac-ipod-help-troubleshooting/65993-itunes-reporting-incorrect-track-times.html">http://www.ehmac.ca/mac-ipod-help-troubleshooting/65993-itunes-reporting-incorrect-track-times.html</a></li>
</ul>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a title="Click me to see the sites." href="#" onclick="$$('div.d980').each( function(e) { e.visualEffect('slide_down',{duration:2.5}) }); return false;"><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d980" style="overflow:hidden">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blinklist.com/index.php?Action=Blink/addblink.php&amp;Name=Incorrect+track+length+in+iTunes&amp;Description=Incorrect+track+length+in+iTunes&amp;Url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F" rel="nofollow" title="Add to&nbsp;BlinkList"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/blinklist.png" title="Add to&nbsp;BlinkList" alt="Add to&nbsp;BlinkList" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F" rel="nofollow" title="Add to&nbsp;Bloglines"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Add to&nbsp;Bloglines" alt="Add to&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;title=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;Blogmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bmarks.png" title="Add to&nbsp;Blogmarks" alt="Add to&nbsp;Blogmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;submitHeadline=Incorrect+track+length+in+iTunes&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;title=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;Connotea"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/connotea.png" title="Add to&nbsp;Connotea" alt="Add to&nbsp;Connotea" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;title=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.diigo.com/post?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;title=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;Diigo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/diigo.png" title="Add to&nbsp;Diigo" alt="Add to&nbsp;Diigo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;title=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;title=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Incorrect+track+length+in+iTunes&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;title=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://cgi.fark.com/cgi/fark/farkit.pl?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;h=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;Fark"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fark.png" title="Add to&nbsp;Fark" alt="Add to&nbsp;Fark" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;t=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;Faves"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/bluedot.png" title="Add to&nbsp;Faves" alt="Add to&nbsp;Faves" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://fleck.com/litebookmarklet.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;title=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;Fleck"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/fleck.png" title="Add to&nbsp;Fleck" alt="Add to&nbsp;Fleck" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://FriendSite.com/users/bookmarks/?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;t=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;FriendSite"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/friendsite.png" title="Add to&nbsp;FriendSite" alt="Add to&nbsp;FriendSite" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;title=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kaboodle.com/za/selectpage?p_pop=false&amp;pa=url&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F" rel="nofollow" title="Add to&nbsp;Kaboodle"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/kaboodle.png" title="Add to&nbsp;Kaboodle" alt="Add to&nbsp;Kaboodle" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.maple.nu/cgi-bin/search6/usa/ss_submit.cgi?fct=100&amp;url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;title=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;Maple"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/maple.png" title="Add to&nbsp;Maple" alt="Add to&nbsp;Maple" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;bm_description=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;T=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://netvouz.com/action/submitBookmark?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;title=Incorrect+track+length+in+iTunes&amp;popup=no" rel="nofollow" title="Add to&nbsp;Netvouz"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/netvouz.png" title="Add to&nbsp;Netvouz" alt="Add to&nbsp;Netvouz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;h=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;Newsvine"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/newsvine.png" title="Add to&nbsp;Newsvine" alt="Add to&nbsp;Newsvine" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.plugim.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;title=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;PlugIM"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/plugim.png" title="Add to&nbsp;PlugIM" alt="Add to&nbsp;PlugIM" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;title=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;title=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;Simpy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/simpy.png" title="Add to&nbsp;Simpy" alt="Add to&nbsp;Simpy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.kirtsy.com//submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F" rel="nofollow" title="Add to&nbsp;Kirtsy"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/skirt.png" title="Add to&nbsp;Kirtsy" alt="Add to&nbsp;Kirtsy" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;title=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;title=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.shoutwire.com/?p=submit&amp;link=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F" rel="nofollow" title="Add to&nbsp;Shoutwire"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/shoutwire.png" title="Add to&nbsp;Shoutwire" alt="Add to&nbsp;Shoutwire" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.squidoo.com/lensmaster/bookmark?http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F" rel="nofollow" title="Add to&nbsp;Squidoo"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/squidoo.png" title="Add to&nbsp;Squidoo" alt="Add to&nbsp;Squidoo" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F" rel="nofollow" title="Add to&nbsp;SphereIt"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Add to&nbsp;SphereIt" alt="Add to&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.spurl.net/spurl.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;title=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;Spurl"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/spurl.png" title="Add to&nbsp;Spurl" alt="Add to&nbsp;Spurl" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;name=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;ThisNext"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/thisnext.png" title="Add to&nbsp;ThisNext" alt="Add to&nbsp;ThisNext" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;title=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;Webride"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/webride.png" title="Add to&nbsp;Webride" alt="Add to&nbsp;Webride" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wists.com/t.php?c=null&amp;r=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;title={text}" rel="nofollow" title="Add to&nbsp;Wists"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/wists.png" title="Add to&nbsp;Wists" alt="Add to&nbsp;Wists" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Frubenlaguna.com%2Fwp%2F2009%2F11%2F01%2Fincorrect-track-length-in-itunes%2F&amp;t=Incorrect+track+length+in+iTunes" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://rubenlaguna.com/wp/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
<a style="font-size:90%;text-align: right; " title="Click me to hide the sites." href="#" onclick="$$('div.d980').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); return false;">Hide Sites</a>
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d980').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></content:encoded>
			<wfw:commentRss>http://rubenlaguna.com/wp/2009/11/01/incorrect-track-length-in-itunes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
