<?xml version="1.0"?>
<!-- RSS generated by Radio UserLand v8.0.8 on Wed, 09 Jun 2004 22:29:33 GMT -->
<rss version="2.0">
	<channel>
		<title>Moazam Raja: Java</title>
		<link>http://www.unixville.com/~moazam/categories/java/</link>
		<description>general Java language and programming</description>
		<copyright>Copyright 2004 Moazam Raja</copyright>
		<lastBuildDate>Wed, 09 Jun 2004 22:29:33 GMT</lastBuildDate>
		<docs>http://backend.userland.com/rss</docs>
		<generator>Radio UserLand v8.0.8</generator>
		<managingEditor>moazam@unixville.com</managingEditor>
		<webMaster>moazam@unixville.com</webMaster>
		<category domain="http://www.weblogs.com/rssUpdates/changes.xml">rssUpdates</category> 
		<skipHours>
			<hour>0</hour>
			<hour>2</hour>
			<hour>3</hour>
			<hour>4</hour>
			<hour>5</hour>
			<hour>6</hour>
			<hour>7</hour>
			<hour>8</hour>
			</skipHours>
		<ttl>60</ttl>
		<item>
			<title>Logging GC output to a file, the differences between Xloggc and verbose:gc</title>
			<description>&lt;br&gt;
I&apos;m sure people have noticed this little idiosyncrasy in the way that garbage collection log output is handled in the JVM. But if you have not, this is a good data point when preparing to read through GC logs.

If you simply use the &lt;b&gt;verbose:gc&lt;/b&gt; flag, you&apos;ll have GC log output sent to the stdout console. Now, if you use the &lt;b&gt;-Xloggc:[&lt;i&gt;filename&lt;/i&gt;]&lt;/b&gt; switch, the GC data will be sent to a log file which you can grep through later. But either way, you get the the same GC data ...right? &lt;b&gt;Wrong&lt;/b&gt;. 

The &lt;b&gt;-Xloggc:[&lt;i&gt;filename&lt;/i&gt;]&lt;/b&gt; switch has the additional effect of turning on the &lt;b&gt;-XX:+PrintGCTimeStamps&lt;/b&gt; switch and hence gives your log files the added benefit of time stamps. Wierd! I&apos;d expect both of these switches to have the same exact behavior. I might file an RFE or Bug on this tonight.

Oh, for those who want to use it, the &lt;b&gt;-Xloggc&lt;/b&gt; switch was introduced in 1.4.0 and newer VMs.</description>
			<guid>http://www.unixville.com/~moazam/categories/java/2004/06/09.html#a30</guid>
			<pubDate>Wed, 09 Jun 2004 22:18:49 GMT</pubDate>
			</item>
		<item>
			<title>View from the Trenches: Looking at Thread-Dumps, by Alexandre Rafalovitch</title>
			<link>http://dev2dev.bea.com/products/wlplatform81/articles/thread_dumps.jsp</link>
			<description>&lt;br&gt;
Alexandre Rafalovitch, a BEA Backline Support Engineer emailed me about reading thread dumps and his proposal for formatting dump data. I&apos;ve read through &lt;a href=&quot;http://dev2dev.bea.com/products/wlplatform81/articles/thread_dumps.jsp&quot;&gt;Alexandres article&lt;/a&gt;, and while I&apos;m not a big fan of using XML for everything, he definitely presents an excellent view on making thread dumps easier to read and diagnose. The really cool part is that Alexandre has written &lt;a href=&quot;http://dev2dev.bea.com/resourcelibrary/utilitiestools/monitoring.jsp&quot;&gt;an application&lt;/a&gt; which takes standard thread dump data, converts it into XML, then uses XSLT to convert the data into the format of your choice.

I&apos;m actually a bit surprised that there isn&apos;t a JSR in progress to address this issue. I think one of the reasons for this is that most developers and users are not interested in the nuances of thread dump readability. Of course, as backline engineers, this topic is near and dear to myself and Alexandre. Alexandre will be presenting this in a session at JavaONE 2004, session TS-1646. I&apos;ll be sure to attend. 
&lt;br&gt;&lt;br&gt;
&lt;i&gt;
&quot;What would be a perfect solution here is to be able to convert these thread-dumps into some sort of intermediate structure/language that has flexible structure, can tolerate missing fields, and can be processed by third-party tools in various ways. And, of course, if it can somehow involve a currently popular technology, so much the better.

Do we have such an intermediate language? Indeed we do &amp;#151; it is XML. It is somewhat human readable, has many tools written for it, and already has not one but several transformation and reporting technologies built on top of it, such as XSLT, XQuery, and XDB.&quot;&lt;/i&gt; &lt;a href=&quot;http://dev2dev.bea.com/products/wlplatform81/articles/thread_dumps.jsp&quot;&gt;[full article]&lt;/a&gt;</description>
			<guid>http://www.unixville.com/~moazam/categories/java/2004/06/08.html#a29</guid>
			<pubDate>Wed, 09 Jun 2004 06:00:40 GMT</pubDate>
			</item>
		<item>
			<title>Debugging Backwards in Time - Omniscient Debugging</title>
			<link>http://www.lambdacs.com/debugger/debugger.html</link>
			<description>&lt;br&gt;
I can&apos;t believe that I didn&apos;t know about this before! ODB allows you to do &apos;Omniscient Debugging&apos; on Java applications, with or without the original source code.

The ODB debugger allows &quot;..developers to step backwards through the execution of a program to determine where and how programming errors occurred. By recording each state change in the target application, it allows the developer to navigate &quot;backwards in time&quot; to see what the values of variables and objects WERE, enormously simplifying the task of debugging programs.&quot;

&lt;a href=&quot;http://www.lambdacs.com/debugger/ODBDescription.html&quot;&gt;One page description of the ODB&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://www.lambdacs.com/debugger/Article.html&quot;&gt;Article , Debugging Backwards in Time&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://www.lambdacs.com/debugger/AADEBUG_Mar_03.pdf&quot;&gt;AADEBUG paper on Omniscient Debugging (pdf)&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://www.lambdacs.com/debugger/UserManual/ODBUserManual.html&quot;&gt;ODB User Manual&lt;/a&gt;</description>
			<guid>http://www.unixville.com/~moazam/categories/java/2004/06/01.html#a20</guid>
			<pubDate>Tue, 01 Jun 2004 18:15:53 GMT</pubDate>
			</item>
		<item>
			<title>Download the source code of the Java SDK</title>
			<link>http://wwws.sun.com/software/communitysource/j2se/java2//download.html</link>
			<description>&lt;br&gt;
Want to look at the code of the JVM or build a test version of your own? Use the source. 

And look, detailed build instructions are available too!</description>
			<guid>http://www.unixville.com/~moazam/categories/java/2004/05/31.html#a19</guid>
			<pubDate>Mon, 31 May 2004 23:48:35 GMT</pubDate>
			</item>
		<item>
			<title>The ultimate programming font.</title>
			<link>http://www.tobias-jung.de/seekingprofont/</link>
			<description>&lt;br&gt;
While this is not exactly Java specific, it&apos;s one of those things that every developer should have.

&lt;img src=&quot;http://www.unixville.com/~moazam/images/moazam/profont9pt.gif&quot; border=&quot;1&quot;&gt;</description>
			<guid>http://www.unixville.com/~moazam/categories/java/2004/05/25.html#a17</guid>
			<pubDate>Tue, 25 May 2004 23:47:01 GMT</pubDate>
			</item>
		<item>
			<title>Debugging thread related hangs in the JVM</title>
			<link>http://www.unixville.com/~moazam/stories/2004/05/18/debuggingHangsInTheJvm.html</link>
			<description>&lt;br&gt;
Once in a while Java users and developers run into problems where their Java application simply seems to hang. No core file is generated, no IO is detected, the process just sits there waiting...for something. Usually these problems can be traced to OS and JVM level threading.</description>
			<guid>http://www.unixville.com/~moazam/categories/java/2004/05/25.html#a16</guid>
			<pubDate>Tue, 25 May 2004 21:27:49 GMT</pubDate>
			</item>
		<item>
			<title>J2SE Update Release Cycles</title>
			<link>http://www.unixville.com/~moazam/stories/2004/05/18/j2seUpdateReleaseCycles.html</link>
			<description>
Many people are running on very old minor releases of J2SE. I&apos;ve seen companies running 1.2.2_04 while 1.2.2_17 is out! Here is some info on how the J2SE update cycle works, and why you should upgrade to the newest update releases.</description>
			<guid>http://www.unixville.com/~moazam/categories/java/2004/05/18.html#a13</guid>
			<pubDate>Tue, 18 May 2004 18:06:55 GMT</pubDate>
			</item>
		<item>
			<title>J2SE Code Names</title>
			<link>http://java.sun.com/j2se/codenames.html</link>
			<description>
This little list helps to make sense of those J2SE BugIDs which reference J2SE code names.

&lt;table cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; border=&quot;0&quot; style=&quot;margin-left:4em;&quot;&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot; style=&quot;font-size:95%; border-bottom-width:medium; border-bottom-width: 1px; border-bottom-style: solid;&quot;&gt;&lt;b&gt;VERSION&lt;/b&gt;
&lt;/th&gt;
&lt;th align=&quot;left&quot; style=&quot;font-size:95%; border-bottom-width:medium; border-bottom-width: 1px; border-bottom-style: solid;&quot;&gt;&lt;b&gt;CODE NAME&lt;/b&gt;&lt;/th&gt;
&lt;th align=&quot;center&quot; style=&quot;font-size:95%; border-bottom-width:medium; border-bottom-width: 1px; border-bottom-style: solid;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;RELEASE DATE&lt;/b&gt;&lt;/th&gt;

&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JDK 1.1.4&lt;/td&gt;
&lt;td&gt;Sparkler&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;Sept 12, 1997&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JDK 1.1.5&lt;/td&gt;
&lt;td&gt;Pumpkin&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;Dec 3, 1997&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;JDK 1.1.6&lt;/td&gt;
&lt;td&gt;Abigail&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;April 24, 1998&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JDK 1.1.7&lt;/td&gt;
&lt;td&gt;Brutus&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;Sept 28, 1998&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;

&lt;td&gt;JDK 1.1.8&lt;/td&gt;
&lt;td&gt;Chelsea&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;April 8, 1999&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;J2SE 1.2&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Playground&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;&lt;b&gt;Dec 4, 1998&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;J2SE 1.2.1&lt;/td&gt;

&lt;td&gt;(none)&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;March 30, 1999&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;J2SE 1.2.2&lt;/td&gt;
&lt;td&gt;Cricket&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;July 8, 1999&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;J2SE 1.3&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Kestrel&lt;/td&gt;

&lt;td align=&quot;right&quot;&gt;&lt;b&gt;May 8, 2000&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;J2SE 1.3.1&lt;/td&gt;
&lt;td&gt;Ladybird&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;May 17, 2001&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;J2SE 1.4.0&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Merlin&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;&lt;b&gt;Feb 13, 2002&lt;/b&gt;&lt;/td&gt;

&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;J2SE 1.4.1&lt;/td&gt;
&lt;td&gt;Hopper&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;Sept 16, 2002&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;J2SE 1.4.2&lt;/td&gt;
&lt;td&gt;Mantis&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;June 26, 2003&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td colspan=2&gt;&lt;br&gt;&lt;b&gt;Future Releases&lt;/b&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;J2SE 1.5.0&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Tiger&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;&lt;i&gt;Not yet released&lt;/i&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;J2SE 1.5.1&lt;/td&gt;
&lt;td&gt;Dragonfly (dragon)&lt;/td&gt;

&lt;td align=&quot;right&quot;&gt;&lt;i&gt;Not yet released&lt;/i&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;J2SE 1.6.0&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Mustang&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;&lt;i&gt;Not yet released&lt;/i&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</description>
			<guid>http://www.unixville.com/~moazam/categories/java/2004/05/17.html#a12</guid>
			<pubDate>Tue, 18 May 2004 06:42:02 GMT</pubDate>
			</item>
		<item>
			<title>Previewing your own apps with JGoodies L&amp;F within NetBeans</title>
			<link>http://www.unixville.com/~moazam/stories/2004/05/17/previewingYourOwnAppsWithJgoodiesLfWithinNetbeans.html</link>
			<description>&lt;br&gt;Once you have &lt;a href=&quot;http://www.unixville.com/~moazam/stories/2004/05/17/usingJgoodiesWithNetbeansIde.html&quot;&gt;NetBeans running with the JGoodies UI&lt;/a&gt;, it&apos;s very easy to preview your own applications to see how they would look with the JGoodies UI.</description>
			<guid>http://www.unixville.com/~moazam/categories/java/2004/05/17.html#a8</guid>
			<pubDate>Mon, 17 May 2004 23:32:31 GMT</pubDate>
			</item>
		<item>
			<title>Using JGoodies with NetBeans</title>
			<link>http://www.unixville.com/~moazam/stories/2004/05/17/usingJgoodiesWithNetbeansIde.html</link>
			<description>&lt;br&gt;
Here is a quick tutorial on using the JGoodies UI library with the NetBeans IDE.</description>
			<guid>http://www.unixville.com/~moazam/categories/java/2004/05/17.html#a5</guid>
			<pubDate>Mon, 17 May 2004 22:32:09 GMT</pubDate>
			</item>
		</channel>
	</rss>
