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

<channel>
	<title>Here Be Beasties &#187; Java</title>
	<atom:link href="http://herebebeasties.com/tags/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://herebebeasties.com</link>
	<description>Alastair Maw's small soap box.</description>
	<lastBuildDate>Tue, 29 Jun 2010 19:57:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Wicket on Google&#8217;s App Engine</title>
		<link>http://herebebeasties.com/2009-04-10/wicket-on-googles-app-engine/</link>
		<comments>http://herebebeasties.com/2009-04-10/wicket-on-googles-app-engine/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 22:17:43 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[Apache Wicket]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://herebebeasties.com/?p=129</guid>
		<description><![CDATA[Unless you&#8217;ve been living under a rock for the last week, you&#8217;ll probably have noticed that Google&#8217;s App Engine now lets you run Java web apps. This includes those created with Apache Wicket, although you&#8217;ll need to tweak a couple of settings to make it play nicely. The App Engine sandbox imposes some restrictions. The [...]]]></description>
			<content:encoded><![CDATA[<p>Unless you&#8217;ve been living under a rock for the last week, you&#8217;ll probably have noticed that <a href="http://code.google.com/appengine/">Google&#8217;s App Engine</a> now lets you run Java web apps. This includes those created with <a href="http://wicket.apache.org">Apache Wicket</a>, although you&#8217;ll need to tweak a couple of settings to make it play nicely.</p>
<p><center><img src="http://code.google.com/appengine/images/appengine_lowres.gif" alt="App Engine logo" /></center></p>
<p>The App Engine sandbox imposes <a href="http://code.google.com/appengine/docs/java/runtime.html#The_Sandbox">some restrictions</a>. The most notable of these is that you cannot run background threads. Here&#8217;s how to make Wicket play ball:</p>
<ul>
<li>Make sure you&#8217;re <a href="http://cwiki.apache.org/WICKET/faqs.html#FAQs-Myapplicationsays%22DEVELOPMENTMODE%22%2ChowdoIswitchtoproduction%3F">running in deployment mode</a> (this will disable the background thread that checks for modifications to your resource files, and is what you&#8217;ll want for deploying to a remote site like this anyway).</li>
<li>Override <tt>newSessionStore()</tt> in your <tt>WebApplication</tt> subclass and return a <tt>new HttpSessionStore(this)</tt>. (The default <tt>DiskPageStore</tt> uses a background thread and writes files, neither of which are supported in the App Engine&#8217;s sandbox.)</li>
<li><a href="http://code.google.com/appengine/docs/java/config/appconfig.html#Enabling_Sessions">Enable session support</a> in <tt>appengine-web.xml</tt>.</li>
</ul>
<p>App Engine for Java is in limited beta, but if you&#8217;ve been to the London Wicket Users Group at Google and would like me to wangle an account for you, please e-mail me (details on the <a href="/about/">About</a> page).</p>
]]></content:encoded>
			<wfw:commentRss>http://herebebeasties.com/2009-04-10/wicket-on-googles-app-engine/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>London Wicket Users Group at Google on October 1st</title>
		<link>http://herebebeasties.com/2008-08-29/london-wicket-users-group-at-google-on-october-1st/</link>
		<comments>http://herebebeasties.com/2008-08-29/london-wicket-users-group-at-google-on-october-1st/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 13:19:39 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[Apache Wicket]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://herebebeasties.com/?p=106</guid>
		<description><![CDATA[October&#8217;s London Wicket User Group meet-up is happening on Wednesday 1st at Google&#8217;s office in Victoria. It&#8217;s shaping up to be a really good event. We&#8217;re pleased to have Ari Zilka (who founded Terracotta) coming along. He will be giving a talk, as will Richard Wilkinson, who has interesting things to say about integrating Wicket [...]]]></description>
			<content:encoded><![CDATA[<p>October&#8217;s <a href="http://londonwicket.org">London Wicket User Group</a> meet-up is happening on Wednesday 1st at Google&#8217;s office in Victoria. It&#8217;s shaping up to be a really good event.</p>
<p>We&#8217;re pleased to have Ari Zilka (who founded <a href="http://www.terracotta.org/">Terracotta</a>) coming along. He will be giving a talk, as will <a href="http://www.richard-wilkinson.co.uk/">Richard Wilkinson</a>, who has interesting things to say about integrating Wicket with Guice and JPA. There will be a couple of other talks and some nice demos, too. If you&#8217;re wondering what it&#8217;s like to write real code in Wicket, don&#8217;t miss it.</p>
<p>If you&#8217;d like to come along, please wander over to <a href="http://jweekend.co.uk/dev/LWUGReg/">the jWeekend site</a> to sign up.</p>
]]></content:encoded>
			<wfw:commentRss>http://herebebeasties.com/2008-08-29/london-wicket-users-group-at-google-on-october-1st/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wicket is on the Google Open Source blog</title>
		<link>http://herebebeasties.com/2008-04-08/wicket-on-google-open-source-blog/</link>
		<comments>http://herebebeasties.com/2008-04-08/wicket-on-google-open-source-blog/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 21:28:31 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[Apache Wicket]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://herebebeasties.com/2008-04-08/wickets-on-google-open-source-blog/</guid>
		<description><![CDATA[The latest London Wicket get-together has been featured on the Google Open Source blog. Check it out for links to photos, etc. I&#8217;ve also put up some presentations and code samples from the event, including our dynamic AJAX image-cropper component.]]></description>
			<content:encoded><![CDATA[<p>The latest <a href="http://londonwicket.org">London Wicket</a> get-together has been featured on the <a href="http://google-opensource.blogspot.com/2008/04/google-hosts-apache-wicket-london-get.html">Google Open Source blog</a>. Check it out for links to photos, etc. I&#8217;ve also put up some presentations and code samples from the event, including our dynamic AJAX image-cropper component.</p>
]]></content:encoded>
			<wfw:commentRss>http://herebebeasties.com/2008-04-08/wicket-on-google-open-source-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wicket User Groups Go Global</title>
		<link>http://herebebeasties.com/2007-11-25/wicket-user-groups-go-global/</link>
		<comments>http://herebebeasties.com/2007-11-25/wicket-user-groups-go-global/#comments</comments>
		<pubDate>Sun, 25 Nov 2007 17:50:00 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[Apache Wicket]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://herebebeasties.com/2007-11-25/wicket-user-groups-go-global/</guid>
		<description><![CDATA[Wicket is looking particularly exciting at the moment. Why? Is it because Wicket 1.3 is nearly ready to take its first steps into the world? Or is it because Wicket in Action will be out soon? Nope. What&#8217;s really exciting is the way the community is taking off. Becoming an Apache project, with all the [...]]]></description>
			<content:encoded><![CDATA[<p>Wicket is looking particularly exciting at the moment. Why? Is it because Wicket 1.3 is <a href="http://wicket.apache.org/wicket-130-rc1.html">nearly ready</a> to take its first steps into the world? Or is it because <a href="http://www.manning.com/dashorst/">Wicket in Action</a> will be out soon? Nope. What&#8217;s really exciting is the way the community is taking off.</p>
<p>Becoming an <a href="http://www.apache.org/">Apache</a> project, with all the benefits that brings, has not gone unnoticed by the wider Java development community. Particularly within the enterprise, the Apache brand (and ASF license) seems to bring with it a promise of professionalism and confidence. A bunch of banks and corporates now list it on their <a href="http://www.indeed.com/jobs?q=wicket+java">job advertisements</a>, including the likes of Nokia and Time Warner. Despite the <a href="http://www.indeed.com/jobtrends?q=java+wicket&#038;relative=1">explosion in attention</a>, the signal-to-noise ratio on the mailing lists remains impressively high. People are being really helpful both there and also with bug reports and patches, so a big thank you from all us Wicket developers to all you folk out there in the community who are making this growth in interest both workable and sustainable.</p>
<p>Talking of explosions, there has been a staggering level of interest in community meet-ups. When Cemal and I founded the <a href="http://jweekend.co.uk/dev/LWUGReg/">London Wicket User Group</a> a few months back (next meeting Dec 5th) we both hoped the concept would take off elsewhere, so we&#8217;re happy to see the vast number of other groups forming across the globe, in a quite astonishing number of places: Antwerp, Amsterdam, Copenhagen, London, Minneapolis, Rio de Janeiro, Seattle, San Francisco, Stockholm, and also somewhere TBC in Austria. I&#8217;m surprised there&#8217;s not one in New York City yet. Come on guys! ;-)</p>
<p>The Amsterdam meet-up on November the 30th is looking particularly awesome (80 people registered interest, which will probably equate to 50+ people). The level of Wicket expertise gathered in one room will be unprecedented &#8211; get yourself along if you possibly can.</p>
<p>For more information, check out the wiki page: <a href="http://cwiki.apache.org/WICKET/community-meetups.html">Apache Wicket community meet-ups</a>.</p>
<p>Go Wicket!</p>
]]></content:encoded>
			<wfw:commentRss>http://herebebeasties.com/2007-11-25/wicket-user-groups-go-global/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Wander along to the upcoming London Wicket Event</title>
		<link>http://herebebeasties.com/2007-09-04/wander-along-to-the-upcoming-london-wicket-event/</link>
		<comments>http://herebebeasties.com/2007-09-04/wander-along-to-the-upcoming-london-wicket-event/#comments</comments>
		<pubDate>Tue, 04 Sep 2007 14:35:45 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[Apache Wicket]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://herebebeasties.com/2007-09-04/wander-along-to-the-upcoming-london-wicket-event/</guid>
		<description><![CDATA[I&#8217;ve put together some interesting material on making really shiny forms with Wicket. I&#8217;ll be presenting it tomorrow at the fourth London Wicket Users Group event, which is being hosted by Skills Matter in Clerkenwell. See the jWeekend registration page for more details.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve put together some interesting material on making really shiny forms with Wicket. I&#8217;ll be presenting it tomorrow at the fourth London Wicket Users Group event, which is being hosted by Skills Matter in Clerkenwell. <a href="http://jweekend.co.uk/dev/LWUGReg">See the jWeekend</a> registration page for more details.</p>
]]></content:encoded>
			<wfw:commentRss>http://herebebeasties.com/2007-09-04/wander-along-to-the-upcoming-london-wicket-event/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>EclEmma &#8211; Code coverage made easy</title>
		<link>http://herebebeasties.com/2007-06-20/eclemma-code-coverage-made-easy/</link>
		<comments>http://herebebeasties.com/2007-06-20/eclemma-code-coverage-made-easy/#comments</comments>
		<pubDate>Wed, 20 Jun 2007 23:50:36 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://herebebeasties.com/2007-06-20/eclemma-code-coverage-made-easy/</guid>
		<description><![CDATA[Do you write Java using Eclipse? Do you care about code coverage but only look at it every now and then because Cobertura or whatever you use requires a full-on Ant/Maven 2 build and you don&#8217;t bother looking as often as you should? If so, check out EclEmma, which is easy, free and fabulous.]]></description>
			<content:encoded><![CDATA[<p>Do you write Java using <a href="http://www.eclipse.org">Eclipse</a>? Do you care about code coverage but only look at it every now and then because <a href="http://cobertura.sourceforge.net/">Cobertura</a> or whatever you use requires a full-on Ant/Maven 2 build and you don&#8217;t bother looking as often as you should? If so, check out <a href="http://www.eclemma.org/">EclEmma</a>, which is easy, free and fabulous.</p>
]]></content:encoded>
			<wfw:commentRss>http://herebebeasties.com/2007-06-20/eclemma-code-coverage-made-easy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lies, damned lies and statistics.</title>
		<link>http://herebebeasties.com/2007-04-27/lies-damned-lies-and-statistics/</link>
		<comments>http://herebebeasties.com/2007-04-27/lies-damned-lies-and-statistics/#comments</comments>
		<pubDate>Fri, 27 Apr 2007 08:00:55 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[Apache Wicket]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://herebebeasties.com/2007-04-27/lies-damned-lies-and-statistics/</guid>
		<description><![CDATA[Matt Raible has a post asking people for various statistics about their web framework of choice. He&#8217;s asking for numbers for the following: How many tools (i.e. IDE plugins) are available for your web framework? How many jobs are available for your framework on Dice.com? What about Indeed.com? How many messages where [sic] posted to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://raibledesigns.com">Matt Raible</a> has a post <a href="http://raibledesigns.com/rd/entry/help_me_help_you_market">asking people for various statistics</a> about their web framework of choice. He&#8217;s asking for numbers for the following:</p>
<ul>
<li>How many tools (i.e. IDE plugins) are available for your web framework?</li>
<li>How many jobs are available for your framework on <a href="http://www.dice.com">Dice.com</a>? What about <a href="http://indeed.com">Indeed.com</a>?</li>
<li>How many messages where [<i>sic</i>] posted to your <strong>user</strong> mailing list (or forum) in March 2007?</li>
<li>How many books are available for your framework?</li>
</ul>
<p>What on earth does he intend to do with them, I wonder? All of these numbers superficially look like they should be &#8220;more is better&#8221;. On second glance, they&#8217;re anything but:</p>
<ul>
<li>If you have lots of IDE tooling available, it probably means the configuration for the framework is overly complex and unmanageable without it.</li>
<li>The framework with the largest number of jobs available is probably <a href="http://struts.apache.org/1.x/">Struts 1</a>. Enough said.</li>
<li>People only post to user lists when they are stuck. If the framework is hard to use, there will be lots of e-mails. If it has a steep learning curve, and/or the documentation is poor, this will be particularly so. On the other hand, an active list might point to a large active user base. Who knows which is which from a raw figure? It might be better to find the number of posters, not the number of messages.</li>
<li>If your framework is fairly stable, and someone has written a fabulous tome on it that is universally acknowledged as &#8220;the bible&#8221;, few people would bother writing another book for it. Niche books usually only get written if there is no book currently in that space or if the existing books are rubbish and the author(s) think they can do better. How many books are written is therefore a function of the number written on the subject before a good one arrives, and how stable your framework is. The first is a small random number, probably. The second number is &#8220;more is worse&#8221;, assuming you don&#8217;t like frameworks that change under you all the time.</li>
</ul>
<p>So, I guess I&#8217;m curious what extrapolations Matt intends to make from these figures. ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://herebebeasties.com/2007-04-27/lies-damned-lies-and-statistics/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>More on java.io.NotSerializableException debugging</title>
		<link>http://herebebeasties.com/2007-02-12/more-on-javaionotserializableexception/</link>
		<comments>http://herebebeasties.com/2007-02-12/more-on-javaionotserializableexception/#comments</comments>
		<pubDate>Mon, 12 Feb 2007 09:08:39 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[Apache Wicket]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://herebebeasties.com/2007-02-12/more-on-javaionotserializableexception/</guid>
		<description><![CDATA[Eelco took my original ten minute hack and ran with it, and has produced something that covers a lot more edge cases. It handles anonymous inner classes, externalizables, things with custom writeObject() functions and a bunch of other stuff. It also plays nicely with SecurityManagers. You can find the code in Wicket 1.3&#8242;s SerializableChecker.java. It [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://chillenious.wordpress.com/">Eelco</a> took my <a href="2007-02-08/javaionotserializableexception-in-your-httpsession/">original ten minute hack</a> and ran with it, and has produced something that covers a lot more edge cases. It handles anonymous inner classes, externalizables, things with custom writeObject() functions and a bunch of other stuff. It also plays nicely with SecurityManagers. You can find the code in Wicket 1.3&#8242;s <a href="http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/io/SerializableChecker.java?revision=532837&#038;view=markup">SerializableChecker.java</a>.  It has a couple of custom Wicket bits, but would be completely trivial to strip those out if you wanted to use this somewhere else. At about 700 lines, it&#8217;s a bit more complicated than we both expected it to be, but it&#8217;s pretty robust. Good work Eelco! ;-)</p>
<p><b>&#8211; UPDATE &#8211;</b><br />
<a href="http://crazybob.org">Bob Lee</a> has <a href="http://crazybob.org/2007/02/debugging-serialization.html">a different way of doing this</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://herebebeasties.com/2007-02-12/more-on-javaionotserializableexception/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>java.io.NotSerializableException in your HttpSession</title>
		<link>http://herebebeasties.com/2007-02-08/javaionotserializableexception-in-your-httpsession/</link>
		<comments>http://herebebeasties.com/2007-02-08/javaionotserializableexception-in-your-httpsession/#comments</comments>
		<pubDate>Thu, 08 Feb 2007 01:41:07 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[Apache Wicket]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://almaw.com/2007-02-08/javaionotserializableexception-in-your-httpsession/</guid>
		<description><![CDATA[Ever had a java.io.NotSerializableException in your code and found it very hard to debug? The JVM stack trace is nearly useless, telling you which code triggered the serialization, but not what it is trying to serialize. Particularly tedious are HTTP sessions that refuse to serialize. In Wicket we store detached components in the session between [...]]]></description>
			<content:encoded><![CDATA[<p>Ever had a <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/io/NotSerializableException.html">java.io.NotSerializableException</a> in your code and found it very hard to debug? The JVM stack trace is nearly useless, telling you which code triggered the serialization, but not <em>what</em> it is trying to serialize.</p>
<p>Particularly tedious are HTTP sessions that refuse to serialize. In <a href="http://wicketframework.org">Wicket</a> we store detached components in the session between requests. If you run a clustered app-server with session replication and add objects to your components that don&#8217;t implement Serializable, you&#8217;re toast. To avoid you deploying something with this issue and getting fired, we have a setting in development mode that tries to serialize the session on every page request. Unfortunately, although it helps you spot this problem early, it&#8217;s lumbered with <a href="http://issues.apache.org/jira/browse/WICKET-265">the same unhelpful java.io.NotSerializableException</a> as everything else in the world.</p>
<p>How do we make these issues easier to debug? Well, I&#8217;ve just written an <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/io/ObjectOutputStream.html">ObjectOutputStream</a> subclass which produces output like this:</p>
<pre>
java.lang.RuntimeException: Unable to serialize class: com.foo.C
Field hierarchy is:
  Class com.foo.A
    public com.foo.B myFieldForB
      public com.foo.C myFieldForC <----- field that is not serializable
	at DebuggingObjectOutputStream.writeObjectOverride(DebuggingObjectOutputStream.java:105)
	at DebuggingObjectOutputStream.writeObjectOverride(DebuggingObjectOutputStream.java:96)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:298)
	at DebuggingObjectOutputStream.main(DebuggingObjectOutputStream.java:28)
Caused by: java.io.NotSerializableException: com.foo.C
	... 4 more
</pre>
<p><span id="more-15"></span><br />
<a href="http://chillenious.wordpress.com/">Eelco</a> is going to plumb this into our Wicket session serialization debug check so we have much sweeter output for these problems in future. Nice! :-)</p>
<p>Here's the code:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p15code2'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p152"><td class="code" id="p15code2"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.IOException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.NotSerializableException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.ObjectOutputStream</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.Serializable</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.lang.reflect.Field</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.lang.reflect.Modifier</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.HashSet</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.LinkedList</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> DebuggingObjectOutputStream <span style="color: #000000; font-weight: bold;">extends</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aobjectoutputstream+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">ObjectOutputStream</span></a> <span style="color: #009900;">&#123;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000066; font-weight: bold;">long</span> serialVersionUID <span style="color: #339933;">=</span> 1L<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Alinkedlist+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">LinkedList</span></a> stack <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Alinkedlist+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">LinkedList</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Ahashset+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">HashSet</span></a> set <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Ahashset+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">HashSet</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> DebuggingObjectOutputStream<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aioexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">IOException</span></a> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>
&nbsp;
  @Override
  <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000066; font-weight: bold;">void</span> writeObjectOverride<span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aobject+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Object</span></a> obj<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aioexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">IOException</span></a> <span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// Check for circular reference.</span>
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>set.<span style="color: #006633;">contains</span><span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</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: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>stack.<span style="color: #006633;">isEmpty</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      stack.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Class &quot;</span> <span style="color: #339933;">+</span> obj.<span style="color: #006633;">getClass</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</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>
    <span style="color: #009900;">&#125;</span>
    set.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Afield+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Field</span></a><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> fields <span style="color: #339933;">=</span> obj.<span style="color: #006633;">getClass</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getFields</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> fields.<span style="color: #006633;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astringbuffer+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">StringBuffer</span></a> buffer <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astringbuffer+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">StringBuffer</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Afield+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Field</span></a> f <span style="color: #339933;">=</span> fields<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
      <span style="color: #000066; font-weight: bold;">int</span> m <span style="color: #339933;">=</span> f.<span style="color: #006633;">getModifiers</span><span style="color: #009900;">&#40;</span><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>fields<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">getType</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">isPrimitive</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Amodifier+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Modifier</span></a>.<span style="color: #006633;">isTransient</span><span style="color: #009900;">&#40;</span>m<span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span>
          <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Amodifier+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Modifier</span></a>.<span style="color: #006633;">isStatic</span><span style="color: #009900;">&#40;</span>m<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">continue</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><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Amodifier+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Modifier</span></a>.<span style="color: #006633;">isPrivate</span><span style="color: #009900;">&#40;</span>m<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        buffer.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;private &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
      <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Amodifier+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Modifier</span></a>.<span style="color: #006633;">isProtected</span><span style="color: #009900;">&#40;</span>m<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        buffer.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;protected &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
      <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Amodifier+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Modifier</span></a>.<span style="color: #006633;">isPublic</span><span style="color: #009900;">&#40;</span>m<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        buffer.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;public &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
      <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Amodifier+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Modifier</span></a>.<span style="color: #006633;">isFinal</span><span style="color: #009900;">&#40;</span>m<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        buffer.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;final &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
      <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Amodifier+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Modifier</span></a>.<span style="color: #006633;">isVolatile</span><span style="color: #009900;">&#40;</span>m<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        buffer.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;volatile &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
      buffer.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span>f.<span style="color: #006633;">getType</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</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;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      buffer.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span>f.<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>
      stack.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>buffer.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</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;">if</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aserializable+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Serializable</span></a>.<span style="color: #000000; font-weight: bold;">class</span>.<span style="color: #006633;">isAssignableFrom</span><span style="color: #009900;">&#40;</span>fields<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">getType</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: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
          writeObjectOverride<span style="color: #009900;">&#40;</span>fields<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aillegalaccessexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">IllegalAccessException</span></a> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
          <span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aruntimeexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">RuntimeException</span></a><span style="color: #009900;">&#40;</span>
              getPrettyPrintedStack<span style="color: #009900;">&#40;</span>fields<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">getType</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</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>, e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
      <span style="color: #009900;">&#125;</span>
&nbsp;
      <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aruntimeexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">RuntimeException</span></a><span style="color: #009900;">&#40;</span>
            getPrettyPrintedStack<span style="color: #009900;">&#40;</span>fields<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">getType</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</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;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>,
            <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Anotserializableexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">NotSerializableException</span></a><span style="color: #009900;">&#40;</span>fields<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">getType</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</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: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
      stack.<span style="color: #006633;">removeLast</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>stack.<span style="color: #006633;">size</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      set.<span style="color: #006633;">clear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      stack.<span style="color: #006633;">removeLast</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> getPrettyPrintedStack<span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> type<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    set.<span style="color: #006633;">clear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astringbuffer+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">StringBuffer</span></a> result <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astringbuffer+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">StringBuffer</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astringbuffer+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">StringBuffer</span></a> spaces <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astringbuffer+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">StringBuffer</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    result.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Unable to serialize class: &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    result.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span>type<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    result.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>Field hierarchy is:&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>stack.<span style="color: #006633;">isEmpty</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      spaces.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;  &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      result.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span>spaces<span style="color: #009900;">&#41;</span>.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span>stack.<span style="color: #006633;">removeFirst</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    result.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot; &lt;----- field that is not serializable&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">return</span> result.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>:-)</p>
]]></content:encoded>
			<wfw:commentRss>http://herebebeasties.com/2007-02-08/javaionotserializableexception-in-your-httpsession/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Tuning your JVM</title>
		<link>http://herebebeasties.com/2006-12-20/tuning-your-jvm/</link>
		<comments>http://herebebeasties.com/2006-12-20/tuning-your-jvm/#comments</comments>
		<pubDate>Wed, 20 Dec 2006 21:04:17 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://almaw.com/2006-12-20/tuning-your-jvm/</guid>
		<description><![CDATA[I&#8217;ve found a mightily useful page explaining the world of Sun JVM options. Absolutely invaluable if you&#8217;re trying to squeeze everything out of your poor overloaded appserver.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve found a mightily useful page explaining the world of <a href="http://blogs.sun.com/watt/resource/jvm-options-list.html">Sun JVM options</a>. Absolutely invaluable if you&#8217;re trying to squeeze everything out of your poor overloaded appserver.</p>
]]></content:encoded>
			<wfw:commentRss>http://herebebeasties.com/2006-12-20/tuning-your-jvm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
