<?xml version="1.0"?>
<rss version="2.0">
<channel>
	<title>Planet Classpath</title>
	<link>http://planet.classpath.org/</link>
	<language>en</language>
	<description>Planet Classpath - http://planet.classpath.org/</description>
	<ttl>30</ttl>

<item>
	<title>Dalibor Topic: Fedora gets a Java SIG</title>
	<guid>http://robilad.livejournal.com/61162.html</guid>
	<link>http://robilad.livejournal.com/61162.html</link>
	<description>Stanislav Ochotnicky from Red Hat &lt;a href=&quot;http://lists.fedoraproject.org/pipermail/devel/2010-August/142190.html&quot;&gt;started&lt;/a&gt; a discussion last month on the developer mailing list of the Fedora GNU/Linux distribution to create a SIG for people who are interested in improving the state of Java in Fedora. The discussion seems to be finished now, with the Java SIG page established on the Fedora Project &lt;a href=&quot;https://fedoraproject.org/wiki/SIGs/Java&quot;&gt;wiki&lt;/a&gt;, and the first IRC &lt;a href=&quot;https://fedoraproject.org/wiki/SIGs/Java#FIRST_IRC_MEETING&quot;&gt;meeting&lt;/a&gt; coming up next week.</description>
	<pubDate>Thu, 02 Sep 2010 11:45:34 +0000</pubDate>
</item>
<item>
	<title>Dalibor Topic: JVM Language Summit 2010 Recordings On Oracle Media Network</title>
	<guid>http://robilad.livejournal.com/60786.html</guid>
	<link>http://robilad.livejournal.com/60786.html</link>
	<description>The recordings of the majority of the sessions from the &lt;a href=&quot;http://openjdk.java.net/projects/mlvm/jvmlangsummit/index.html&quot;&gt;JVM Language Summit&lt;/a&gt; 2010 have been &lt;a href=&quot;http://medianetwork.oracle.com/search/index?q=jvm+language+summit&quot;&gt;uploaded&lt;/a&gt; to the Oracle Media Network. &lt;a href=&quot;http://java.about.com/bio/Paul-Leahy-47074.htm&quot;&gt;Paul Leahy&lt;/a&gt; has compiled a &lt;a href=&quot;http://java.about.com/b/2010/09/01/jvm-language-summit-sessions-online.htm&quot;&gt;list&lt;/a&gt; of session recordings and their corresponding abstracts. Slide decks for most of the sessions are available on the JVM Language Summit &lt;a href=&quot;http://wiki.jvmlangsummit.com/Main_Page#Agenda_for_the_2010_JVM_Language_Summit&quot;&gt;wiki&lt;/a&gt;.</description>
	<pubDate>Thu, 02 Sep 2010 10:25:14 +0000</pubDate>
</item>
<item>
	<title>Jeroen Frijters: Running RSSOwl on IKVM.NET</title>
	<guid>http://weblog.ikvm.net/PermaLink.aspx?guid=6c8de1ef-18dc-4c97-a4ff-4cffe52fce52</guid>
	<link>http://weblog.ikvm.net/PermaLink.aspx?guid=6c8de1ef-18dc-4c97-a4ff-4cffe52fce52</link>
	<description>&lt;p&gt;
      I recently upgraded my RSS reader from the older version I was still using to the
      current version. That turned out to be a mistake. The new version was even more broken
      than the old version, so I decided it was time to switch. I remembered &lt;a href=&quot;http://www.rssowl.org/&quot;&gt;RSSOwl&lt;/a&gt; from &lt;a href=&quot;http://lists.gnu.org/archive/html/classpath/2005-03/msg00149.html&quot;&gt;several
      years ago&lt;/a&gt; when I tested it on IKVM (it uses the Eclipse &lt;a href=&quot;http://en.wikipedia.org/wiki/Standard_Widget_Toolkit&quot;&gt;Standard
      Widget Toolkit&lt;/a&gt;, so like Eclipse it was a good test app back when AWT support was
      completely useless).
   &lt;/p&gt;
        &lt;p&gt;
      I downloaded the most recent version and played with it and it appeared to suit my
      needs. Of course, after I decided that I was going to start using it, I wanted to
      run it on IKVM and not in dynamic mode, but compiled with ikvmc. Fortunately, RSSOwl
      uses OSGi in much the same way as Eclipse, so I was able to reuse the work I did to
      get Eclipse to compile with ikvmc.
   &lt;/p&gt;
        &lt;p&gt;
      To play along at home, follow these instructions (on Windows):
   &lt;/p&gt;
        &lt;ul&gt;
          &lt;li&gt;
         Download &lt;a href=&quot;http://downloads.sourceforge.net/rssowl/rssowl-2.0.5.win32.zip&quot;&gt;rssowl-2.0.5.win32.zip&lt;/a&gt;, &lt;a href=&quot;http://www.frijters.net/ikvmbin-0.44.0.5.zip&quot;&gt;ikvmbin-0.44.0.5.zip&lt;/a&gt; and &lt;a href=&quot;http://www.frijters.net/rssowl-clr.zip&quot;&gt;rssowl-clr.zip&lt;/a&gt; and
         put them all in the same directory.&lt;/li&gt;
          &lt;li&gt;
         Open a Command Prompt and go to the directory where you downloaded the zip files.&lt;/li&gt;
          &lt;li&gt;
         Run these commands:&lt;br /&gt;&lt;code&gt;unzip rssowl-2.0.5.win32.zip&lt;/code&gt;&lt;br /&gt;&lt;code&gt;cd rssowl&lt;/code&gt;&lt;br /&gt;&lt;code&gt;unzip ..\ikvmbin-0.44.0.5.zip&lt;/code&gt;&lt;br /&gt;&lt;code&gt;unzip ..\rssowl-clr.zip&lt;/code&gt;&lt;br /&gt;&lt;code&gt;mk&lt;/code&gt;&lt;/li&gt;
          &lt;li&gt;
         Start RSSOwl by running rssowl-clr.exe&lt;/li&gt;
        &lt;/ul&gt;
        &lt;img height=&quot;0&quot; src=&quot;http://weblog.ikvm.net/aggbug.ashx?id=6c8de1ef-18dc-4c97-a4ff-4cffe52fce52&quot; width=&quot;0&quot; /&gt;</description>
	<pubDate>Wed, 25 Aug 2010 10:27:23 +0000</pubDate>
</item>
<item>
	<title>Jeroen Frijters: New Development Snapshot</title>
	<guid>http://weblog.ikvm.net/PermaLink.aspx?guid=ac6cfb6a-6138-4c36-895e-636c77242e39</guid>
	<link>http://weblog.ikvm.net/PermaLink.aspx?guid=ac6cfb6a-6138-4c36-895e-636c77242e39</link>
	<description>&lt;p&gt;
      While the 0.44 release candidates have been baking, I've been working on 0.45. There
      are some interesting changes related to resource handling and stub classes.
   &lt;/p&gt;
        &lt;p&gt;
          &lt;strong&gt;Resources&lt;/strong&gt;
        &lt;/p&gt;
        &lt;p&gt;
       Previously, if you looked at the URL returned by ClassLoader.getResource() for
      an ikvmc compiled assembly you see something ugly like this:
   &lt;/p&gt;
        &lt;p&gt;
       ikvmres://IKVM.OpenJDK.Jdbc,%20Version=0.44.0.5,%20Culture=neutral,%20PublicKeyToken=13235d27fcbfff58/META-INF/services/java.sql.Driver
   &lt;/p&gt;
        &lt;p&gt;
      Now with 0.45, you see:
   &lt;/p&gt;
        &lt;p&gt;
      jar:file:/C:/.virtual-ikvm-home/assembly/IKVM.OpenJDK.Jdbc__0.45.3887.0__13235d27fcbfff58/resources/resources.jar!/META-INF/services/java.sql.Driver
   &lt;/p&gt;
        &lt;p&gt;
      This is also a bit strange, because C:\.virtual-ikvm-home doesn't actually exist,
      but it is the IKVM Virtual File System directory that was introduced with the switch
      to OpenJDK, to facilitate the fact that OpenJDK likes to load lots of files from the
      installation directory.
   &lt;/p&gt;
        &lt;p&gt;
      Starting with 0.45, the virtual file system is also used to load resources and stub
      classes. When you compile your jar with ikvmc, the resources in the jar will be copied
      into a new jar (usually with the same name) and that jar will be attached as a managed
      resource to the target assembly. This resource is projected into VFS and the normal
      Java resource loading mechanism is (more or less) used to load resources from the
      jar.
   &lt;/p&gt;
        &lt;p&gt;
      This has two main advantages. The first is that this makes it more likely that Java
      code that makes various assumptions about being being able to explicitly open a resource
      jar, will work. The second is that this method of storing resources, usually results
      in smaller assemblies.
   &lt;/p&gt;
        &lt;p&gt;
      Another benefit of this change is that I finally fixed the issue with ikvmc skipping
      resources due to name clashes. Previously there was only a single resource namespace
      per assembly, but now an assembly can contain multiple resource jars.
   &lt;/p&gt;
        &lt;p&gt;
          &lt;strong&gt;Stub Classes&lt;/strong&gt;
        &lt;/p&gt;
        &lt;p&gt;
      Some Java code requires .class files for system classes. This is usually because they
      want to do dynamic code generation and Java's reflection isn't really good enough
      for that. For a long time IKVM has supported this by dynamically creating the .class
      files (in a runtime equivalent of ikvmstub) whenever code tried to load a resource
      that ended with .class and a corresponding type was found. This used the same ikvmres
      protocol mechanism as normal resources. With this snapshot, the stub classes have
      also moved to VFS. They are still generated on demand, but they are now accessible
      via the Java file IO APIs. This means that the sun.boot.class.path property can now
      point to VFS and that Java code, like javac, that depends on sun.boot.class.path will
      now work.
   &lt;/p&gt;
        &lt;p&gt;
      You can now build a working javac.exe like this:
   &lt;/p&gt;
        &lt;p&gt;
          &lt;code&gt;ikvmc -main:com.sun.tools.javac.Main -out:javac.exe -r:IKVM.OpenJDK.Tools.dll&lt;/code&gt;
        &lt;/p&gt;
        &lt;p&gt;
      The resulting javac.exe will be very small (4KB), because all the code is in IKVM.OpenJDK.Tools.dll
      (the equivalent of tools.jar).
   &lt;/p&gt;
        &lt;p&gt;
      Changes:
   &lt;/p&gt;
        &lt;ul&gt;
          &lt;li&gt;
         Fixed java.util.zip.Inflater to throw exception for corrupt zip files (&lt;a href=&quot;http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36560&quot;&gt;http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36560&lt;/a&gt;). 
      &lt;/li&gt;
          &lt;li&gt;
         Added the ability to nest ikvmc response files and added error handling to response
         file reading. 
      &lt;/li&gt;
          &lt;li&gt;
         Made most ikvmc warnings local to the target that is being compiled (in multi target
         mode), to allow warnings to be suppressed (or turned into an error) for a specific
         target. 
      &lt;/li&gt;
          &lt;li&gt;
         Added -writeSuppressWarningsFile:
            ikvmc option. 
            &lt;/li&gt;&lt;li&gt;
               Added support for comment lines in ikvmc response files. 
            &lt;/li&gt;&lt;li&gt;
               Volker implemented Window.setMinimumSize(). 
            &lt;/li&gt;&lt;li&gt;
               Massive change to change resource handling. Java resources are now stored in jars
               that are stored as managed .NET resources. The jars are projected into VFS and the
               assembly class loaders know how to load resources from these jars. 
            &lt;/li&gt;&lt;li&gt;
               Volker added support for &quot;My Computer&quot; folder. 
            &lt;/li&gt;&lt;li&gt;
               Volker fixed a regression in Toolkit.createImage(ImageProducer). 
            &lt;/li&gt;&lt;li&gt;
               Fixed build to work when Mono isn't installed. 
            &lt;/li&gt;&lt;li&gt;
               Stub classes are now projected into VFS. 
            &lt;/li&gt;&lt;li&gt;
               Stub classes (as resources) are no longer generated if a resource with that name already
               exists in the assembly. 
            &lt;/li&gt;&lt;li&gt;
               System property &quot;sun.boot.class.path&quot; now points to stub classes in VFS. 
            &lt;/li&gt;&lt;li&gt;
               Removed the requirement to have peverify and ilasm in the PATH. They are now located
               automatically and if they are not found, the corresponding build steps are skipped. 
            &lt;/li&gt;&lt;li&gt;
               Separated managed and native build steps and made managed the default target. This
               allows doing a build with &quot;nant&quot; with just nant and JDK 1.6 in the PATH. 
            &lt;/li&gt;&lt;li&gt;
               Changed default build target to automatically generate a CommonAssemblyInfo.cs with
               todays build number. 
            &lt;/li&gt;&lt;li&gt;
               Fixed java.lang.ref.Reference to not store a strong reference to java.lang.Class objects,
               if class GC is enabled. Note that class GC is only available on .NET 4.0 and when
               IKVM is specifically built for .NET 4.0.&lt;/li&gt;
        &lt;/ul&gt;
        &lt;p&gt;
      Binaries available here: &lt;a href=&quot;http://www.frijters.net/ikvmbin-0.45.3887.zip&quot;&gt;ikvmbin-0.45.3887.zip&lt;/a&gt;&lt;/p&gt;
        &lt;img height=&quot;0&quot; src=&quot;http://weblog.ikvm.net/aggbug.ashx?id=ac6cfb6a-6138-4c36-895e-636c77242e39&quot; width=&quot;0&quot; /&gt;</description>
	<pubDate>Tue, 24 Aug 2010 06:32:03 +0000</pubDate>
</item>
<item>
	<title>Stefan Ring: 23 Aug 2010</title>
	<guid>http://www.advogato.org/person/Ringding/diary.html?start=0</guid>
	<link>http://www.advogato.org/person/Ringding/diary.html?start=0</link>
	<description>&lt;b&gt;The CACAO 1.0 that wasn’t&lt;/b&gt;

&lt;p&gt; &lt;/p&gt;&lt;p&gt; I have a confession to make: it seems that there will be no
CACAO 1.0 release, and I’m to blame for that. Maintaining
two branches of CACAO has become tiresome and quite boring
over time, and I never fully understood what the 1.0 branch
was there for, anyway. So when yet another problem with &lt;a href=&quot;http://icedtea.classpath.org/&quot;&gt;IcedTea&lt;/a&gt; (which was
using CACAO 0.99.4 at the time) popped up which could
trivially be solved by switching to the
“default” branch, I
suggested that &lt;a href=&quot;http://icedtea.classpath.org/&quot;&gt;IcedTea&lt;/a&gt; would be
better off just using the Mercurial version, and this is
what they did. Now, as this version identifies itself as
1.1, I don’t see the point of releasing a 1.0 version
from a
branch that nobody cares about (or should care about, IMHO)
anymore.&lt;/p&gt;</description>
	<pubDate>Mon, 23 Aug 2010 10:28:23 +0000</pubDate>
</item>
<item>
	<title>Joe Darcy: Project Coin: Try out try-with-resources</title>
	<guid>http://blogs.sun.com/darcy/entry/project_coin_try_out_try</guid>
	<link>http://blogs.sun.com/darcy/entry/project_coin_try_out_try</link>
	<description>&lt;p&gt;

As of build 105 of JDK 7, the compiler and libraries have support for Project Coin's &lt;a href=&quot;http://blogs.sun.com/darcy/entry/project_coin_updated_arm_spec&quot; title=&quot;Project Coin: Updated ARM Spec&quot;&gt;&lt;code&gt;try&lt;/code&gt;-with-resources statement&lt;/a&gt; (ARM blocks).

&lt;/p&gt;

&lt;p&gt;

We're curious to get feedback on how &lt;code&gt;try&lt;/code&gt;-with-resources works in practice, so please &lt;a href=&quot;http://download.java.net/jdk7/&quot;&gt;download the build&lt;/a&gt;, use the feature to on your favorite &lt;code&gt;Closeable&lt;/code&gt; type, and report back on how it goes.

&lt;/p&gt;</description>
	<pubDate>Fri, 20 Aug 2010 23:59:25 +0000</pubDate>
</item>
<item>
	<title>Mario Torre: Fortune of the Day</title>
	<guid>http://www.jroller.com/neugens/entry/fortune_of_the_day11</guid>
	<link>http://www.jroller.com/neugens/entry/fortune_of_the_day11</link>
	<description>&lt;p&gt;Another fortune, I promise two real cool blog entries in the next couple of days :) (with screenshots and all the fun things!)&lt;/p&gt;

&lt;pre&gt;... Where was Stac Electronics when Microsoft invented Doublespace?
Where were Xerox and Apple when Microsoft invented the GUI?
Where was Apple's QuickTime when Microsoft invented Video
for Windows? Where was Spyglass Inc.'s Mosaic when Microsoft
invented Internet Explorer? Where was Sun when Microsoft
invented Java?
&lt;/pre&gt;</description>
	<pubDate>Wed, 18 Aug 2010 09:28:19 +0000</pubDate>
</item>
<item>
	<title>Tom Tromey: Blog Reading Solved</title>
	<guid>http://tromey.com/blog/?p=683</guid>
	<link>http://tromey.com/blog/?p=683</link>
	<description>&lt;p&gt;I &lt;a href=&quot;http://tromey.com/blog/?p=602&quot;&gt;wrote&lt;/a&gt; a while ago about my blog-reading woes.  Those woes are now over!&lt;/p&gt;
&lt;p&gt;Lars Magne Ingebrigtsen, of Gnus and &lt;a href=&quot;http://www.gmane.org/&quot;&gt;gmane &lt;/a&gt;fame, has now brought us &lt;a href=&quot;http://www.gwene.org/&quot;&gt;gwene&lt;/a&gt; — an RSS to NNTP gateway.  You enter the feeds you want to read, and soon they show up as newsgroups in gmane.  Thanks also should go to Ted Zlanatov, for bringing this up on the gmane discussion list, and thus getting it all rolling.&lt;/p&gt;
&lt;p&gt;I haven’t quite retired my rss2email cron job, but that is mostly out of laziness.  Any day now.&lt;/p&gt;
&lt;p&gt;Normally I am unhappy about the whole SaaS trend, but gmane gets a pass.  I am not sure if it is because Lars seems trustworthy, or because NNTP is so obviously a fringe interest, or because gmane is at least theoretically replaceable in the event of the worst.&lt;/p&gt;</description>
	<pubDate>Sat, 14 Aug 2010 19:13:50 +0000</pubDate>
</item>
<item>
	<title>Mark Wielaard: Oracle tries to destroy free java – now what?</title>
	<guid>http://gnu.wildebeest.org/blog/mjw/?p=654</guid>
	<link>http://gnu.wildebeest.org/blog/mjw/2010/08/13/oracle-tries-to-destroy-free-java-now-what/</link>
	<description>&lt;p&gt;Seems Oracle bought Sun to become a &lt;a href=&quot;http://www.theregister.co.uk/2010/08/13/oracle_sues_google/&quot;&gt;java patent troll&lt;/a&gt;. Trying to destroy the alternative free java implementation that is part of android. Sun used to be agnostic towards Free Software in the past, then became a huge fan on &lt;a href=&quot;http://www.fsf.org/news/fsf-welcomes-gpl-java.html&quot;&gt;java liberation day&lt;/a&gt;. Now that Oracle is in control and starts its quest to destroy the free java world, we are back to the dark ages. So, now what?&lt;/p&gt;
&lt;p&gt;Oracle is still distributing a free version of java itself through &lt;a href=&quot;http://openjdk.java.net/&quot;&gt;OpenJDK&lt;/a&gt; on which &lt;a href=&quot;http://icedtea.classpath.org&quot;&gt;IcedTea&lt;/a&gt; is based. Implementations derived from that source base seem safe against copyright and patent claims as long as one follows the obligations of the GPL. That is of course only for patent and copyrights Oracle holds or can pass on (through its stewardship of the JCP). To protect against claims by unrelated companies or when you have a free implementation of java not based on code distributed by Oracle, like &lt;a href=&quot;http://gnu.org/software/classpath/&quot;&gt;GNU Classpath&lt;/a&gt;, try to get your implementation covered by a Free Software friendly patent pool. For example gcj/libgcj/GNU Classpath (as are some parts of the apache and eclipse java stacks) are part of the “System Components” of &lt;a href=&quot;http://www.openinventionnetwork.com/&quot;&gt;OIN&lt;/a&gt; (and Oracle has joined OIN).&lt;/p&gt;
&lt;p&gt;Finally if you contribute to any Sun/Oracle java implementation demand that they change their Contributor Agreement to be truly reciprocal, not just for copyrights, but also for any patent claims covering the project you contribute to. So that anybody that wants to share the project you contributed to will always and irrevocably get all the rights to do that (not just for the GPL version). Point 3 in the current &lt;a href=&quot;http://openjdk.java.net/legal/&quot;&gt;Sun/Oracle Contributor Agreement &lt;/a&gt;isn’t reciprocal, you grant a perpetual, irrevocable, non-exclusive, worldwide, no-charge, royalty-free license to any patent claims you might have to Sun/Oracle, but they are not granting back to you or the wider community any they hold on the project as a whole.&lt;/p&gt;</description>
	<pubDate>Fri, 13 Aug 2010 14:35:52 +0000</pubDate>
</item>
<item>
	<title>Mario Torre: Fortune of the Day</title>
	<guid>http://www.jroller.com/neugens/entry/fortune_of_the_day10</guid>
	<link>http://www.jroller.com/neugens/entry/fortune_of_the_day10</link>
	<description>&lt;pre&gt;Humorix Holiday Gift Idea #5

AbsoluteZero(tm) Cryogenic Refrigerator
$29,999.95 for economy model at Cryo-Me-A-River, Inc.

The pundits have been hyping new technology allowing
your home appliances to have Internet access.

Most people aren't too keen with the thought of their
refrigerator sharing an IP address with their can opener.

But with the new AbsoluteZero(tm) Refrigerator,
that might change. This is not a fridge for your food; it's a
fridge for your overclocked, overheating CPU.

You stick your computer inside, bolt the door shut,
turn the temperature down to 5 degrees Kelvin, and
you've got the perfect environment for accelerating
your CPU to 1 Terahertz or more.

This cryogenic cooling system may not actually
reach absolute zero, but it comes mighty close.

Unfortunately, the AbsoluteZero(tm) is the size of a small
house, consumes a constant stream of liquid nitrogen, and
requires it's own nuclear reactor (not included).

But that's a small price to pay for the
ability to play Quake 3 at 100,000 frames per second.
&lt;/pre&gt;</description>
	<pubDate>Tue, 10 Aug 2010 08:53:34 +0000</pubDate>
</item>
<item>
	<title>Mark Wielaard: WordPress 3 rocks</title>
	<guid>http://gnu.wildebeest.org/blog/mjw/?p=647</guid>
	<link>http://gnu.wildebeest.org/blog/mjw/2010/08/08/wordpress-3-rocks/</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://codex.wordpress.org/Version_3.0#Multisite&quot;&gt;WordPress 3.0 integrated Multisite support&lt;/a&gt;! I only maintain two blogs, but it was already handy to put them under the same “Super Admin” install. WordPress really is pretty smooth these days and highly customizable.&lt;/p&gt;</description>
	<pubDate>Sun, 08 Aug 2010 19:40:38 +0000</pubDate>
</item>
<item>
	<title>Joe Darcy: Project Coin: Uniform Suppression in try-with-resources</title>
	<guid>http://blogs.sun.com/darcy/entry/project_coin_uniform_suppression</guid>
	<link>http://blogs.sun.com/darcy/entry/project_coin_uniform_suppression</link>
	<description>&lt;p&gt;

As &lt;a href=&quot;http://blogs.sun.com/darcy/entry/project_coin_updated_arm_spec&quot; title=&quot;Project Coin: Updated ARM Spec&quot;&gt;previously considered&lt;/a&gt;, the specification of the &lt;code&gt;try&lt;/code&gt;-with-resources statement has been updated to require uniform suppression of all throwables.  That is, the semantics of the code around the implicitly generated calls to &lt;code&gt;close&lt;/code&gt; was previously

&lt;/p&gt;

&lt;blockquote&gt;
    &lt;code&gt;try {&lt;/code&gt;&lt;br /&gt;
      &lt;code&gt;#resource.close();&lt;/code&gt;&lt;br /&gt;
    &lt;code&gt;} catch(&lt;b&gt;Exception&lt;/b&gt; #suppressedException) {&lt;/code&gt;&lt;br /&gt;
      &lt;code&gt;#primaryException.addSuppressedException(#suppressedException);&lt;/code&gt;&lt;br /&gt;
    &lt;code&gt;}&lt;/code&gt;&lt;br /&gt;
&lt;/blockquote&gt;

&lt;p&gt;

and has been replaced with

&lt;/p&gt;

&lt;blockquote&gt;
    &lt;code&gt;try {&lt;/code&gt;&lt;br /&gt;
      &lt;code&gt;#resource.close();&lt;/code&gt;&lt;br /&gt;
    &lt;code&gt;} catch(&lt;b&gt;Throwable&lt;/b&gt; #suppressedException) {&lt;/code&gt;&lt;br /&gt;
      &lt;code&gt;#primaryException.addSuppressedException(#suppressedException);&lt;/code&gt;&lt;br /&gt;
    &lt;code&gt;}&lt;/code&gt;&lt;br /&gt;
&lt;/blockquote&gt;


&lt;p&gt;

(The &lt;a href=&quot;http://hg.openjdk.java.net/jdk7/tl/langtools/rev/13354e1abba7&quot;&gt;initial implementation&lt;/a&gt; actually implemented the latter semantics; a &lt;a href=&quot;http://hg.openjdk.java.net/jdk7/tl/langtools/rev/38e2c23309f1&quot;&gt;test has been added&lt;/a&gt; to verify the behavior.)

&lt;/p&gt;</description>
	<pubDate>Thu, 05 Aug 2010 16:45:00 +0000</pubDate>
</item>
<item>
	<title>Robert Lougher: Debian Linux on cheap MIPS mini netbook</title>
	<guid>tag:blogger.com,1999:blog-300388730782291770.post-1194782190207723541</guid>
	<link>http://draenog.blogspot.com/2010/08/debian-linux-on-cheap-mips-mini-netbook.html</link>
	<description>Computing-wise, I've taken a break from the JamVM/OpenJDK port for a couple of days while I play with my latest toy : a cheap mini-netbook based on a Chinese MIPS clone.  It's branded CnMbook, but it's available (or was) under &lt;a href=&quot;http://en.wikipedia.org/wiki/Skytone_Alpha-400&quot;&gt;dozens of names&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Yes, it's been available for a while.  I first investigated it over a year ago as I wanted a MIPS machine on which I could do the port of the code-copying JIT (I did the MIPS port of JamVM back in 2007, and I've not touched it since).  But it was 170 pounds, which was too much for the tiny spec, and I got an EeePC instead.&lt;br /&gt;&lt;br /&gt;However, I still don't like Intel, even though it finally became my main architecture in 2008 (albeit AMD).  And I like it even less as a mobile processor, as it's the last area where it doesn't dominate.&lt;br /&gt;&lt;br /&gt;So what lead to this sudden surge of interest?  I've been waiting for years for the fabled ARM-based netbooks, and a couple of weeks ago I saw a cheap WinCE mini-netbook in a local discount shop which I was passing.  My brother (the author of &lt;a href=&quot;http://en.wikipedia.org/wiki/Squashfs&quot;&gt;SquashFS&lt;/a&gt;) thought it shouldn't be too difficult to get Linux working on it.  This lead to a weekend long investigation, which showed up some startling results.&lt;br /&gt;&lt;br /&gt;The mini-netbooks appear to be based on one of two ARM9-based SoCs (so these still aren't the low-cost Cortex A8 ones I've been waiting for).  Either the Anyka AK7802 or Via's WonderMedia VT8505 SoC.  The amazing thing?  There's no publicly available Linux kernel (with source) for any of them.  There is a binary-only Android kernel for the VT8505 but no public source.  For the AK7802 there's nothing, and as Anyka have not made any SoC documentation publicly available it's likely that there never will be.&lt;br /&gt;&lt;br /&gt;In contrast, Ingenic, the maker of the MIPS clone in the CnMbook have made &lt;a href=&quot;http://www.ingenic.cn/eng/productServ/kfyd/Linux/pfCustomPage.aspx&quot;&gt;available&lt;/a&gt; the full source to their modified kernel, u-boot bootloader, rootfs and applications.  It came with CELinux, and an ancient 2.4.20 kernel.  But it didn't take my brother long to get a modern-ish 2.6.24 kernel running on it (he's working on 2.6.31), and with Debian MIPS Linux it makes a nice little portable development system.  Compiling is rather slow, but vim runs well on console, which is all you need!&lt;br /&gt;&lt;br /&gt;The cost?  65 quid off ebay for an ex-display model as you can't buy them anymore, the ARM9 WinCE machines having completely replaced them.&lt;br /&gt;&lt;br /&gt;I'll next post my experience of running JamVM/OpenJDK on it :)&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/300388730782291770-1194782190207723541?l=draenog.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 03 Aug 2010 23:47:35 +0000</pubDate>
</item>
<item>
	<title>Ken Gilmer: Friday afternoon remote debugging, remotely.</title>
	<guid>http://community.buglabs.net/jconnolly/posts/204-Friday-afternoon-remote-debugging-remotely-</guid>
	<link>http://community.buglabs.net/jconnolly/posts/204-Friday-afternoon-remote-debugging-remotely-</link>
	<description>&lt;p&gt;I had the opportunity to work on a nasty little defect from home this afternoon.  Some background:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Originally we used the &lt;a href=&quot;http://sourceforge.net/projects/avetanabt/&quot;&gt;AvetanaBT&lt;/a&gt;
 implementation for java-level API hooks into &lt;a href=&quot;http://www.bluez.org/&quot;&gt;bluez&lt;/a&gt;
 for bluetooth programming. &lt;/li&gt;
&lt;li&gt;It has served our needs well, and was built on top of &lt;a href=&quot;https://phoneme.dev.java.net/&quot;&gt;phoneME&lt;/a&gt;
/JavaME's &lt;a href=&quot;http://download-llnw.oracle.com/javame/config/cldc/ref-impl/midp2.0/jsr118/javax/microedition/io/package-summary.html&quot;&gt;javax.microedition.io&lt;/a&gt;
 libraries.  &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://rschuster.blogs.evolvis.org/tag/openjdk/&quot;&gt;We're moving to openjdk-6&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://download-llnw.oracle.com/javase/6/docs/api/javax/microedition/io&quot;&gt;No javax.microedition.io in a J2SE compatible jvm/classpath environment&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Need to abandon avetanaBT or re-implement javax.microedition.io.* on our own (ick)&lt;/li&gt;
&lt;li&gt;I investigated a (more maintained) bluetooth solution for a J2SE environment and discovered &lt;a href=&quot;http://bluecove.org/&quot;&gt;bluecove&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;When originally rolling out AvetanaBT, I &lt;a href=&quot;http://pastebin.com/f303a541b&quot;&gt;had some issues cross-compiling the JNI&lt;/a&gt;
 and having it properly linked to libbluetooth, resulting in nasty UnsatisfiedLinkErrors upon System.loadLibrary calls.  I ended up fixing them but look back on those build issues with fear and loathing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Fast foward to yesterday where I've successfully been able to cross-compile and &lt;a href=&quot;http://svn.buglabs.net/svn/!history/11553/?stop_revision=11541&quot;&gt;osgi-ify&lt;/a&gt;
 &lt;a href=&quot;http://www.matthew.ath.cx/projects/java/&quot;&gt;libbatthew&lt;/a&gt;
, &lt;a href=&quot;http://dbus.freedesktop.org/doc/dbus-java/&quot;&gt;java-dbus&lt;/a&gt;
, and bluecove.  With all that stuff built, I wanted to run a &lt;a href=&quot;http://bluecove.org/bluecove-examples/bluecove-tester/&quot;&gt;quick test&lt;/a&gt;
 and make sure all the build mojo was worked out (linking, cross compilation, bluez4 compatibility, openjdk-6 &amp;amp; classpath compaibility).  I planned to use the &lt;a href=&quot;http://bluecove.org/bluecove-examples/bluecove-tester/bluecove-tester-app.jar&quot;&gt;bluecove-tester-app.jar&lt;/a&gt;
 to test and make sure that java/jni/bluez interaction works at the basic device-scan level.  I stick all the jni libs in the right places and give it a whirl aaaand:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;

&lt;span style=&quot;font-family: courier;&quot;&gt;
&lt;strong&gt;root@bug20:~# java -Djava.library.path=/usr/lib/jni/ -cp /usr/share/java/com.buglabs.bug.jni.bluecove.jar:/home/root/junit.jar:. -jar bluecove-tester-app.jar --console&lt;/strong&gt;

&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;BlueCove tester Console application (keyboard codes the same as in MIDP application)
	2 - Start Client
	3 - Stop Client
	5 - Start Server
	6 - Stop Server
	* - Run Discovery
	7 - Services Search
	d - toggle BlueCove Debug
	T - Start TCK Agent
	q - Quit
&lt;strong&gt;*&lt;/strong&gt;

error start error  java.lang.UnsatisfiedLinkError: com.intel.bluetooth.BluetoothStackBlueZ.nativeGetDeviceID(IJ)I
java.lang.UnsatisfiedLinkError: com.intel.bluetooth.BluetoothStackBlueZ.nativeGetDeviceID(IJ)I
	at com.intel.bluetooth.BluetoothStackBlueZ.nativeGetDeviceID(Native Method)
	at com.intel.bluetooth.BluetoothStackBlueZ.initialize(BluetoothStackBlueZ.java:136)
	at com.intel.bluetooth.BlueCoveImpl.setBluetoothStack(BlueCoveImpl.java:949)
	at com.intel.bluetooth.BlueCoveImpl.detectStack(BlueCoveImpl.java:482)
	at com.intel.bluetooth.BlueCoveImpl.access$500(BlueCoveImpl.java:65)
	at com.intel.bluetooth.BlueCoveImpl$1.run(BlueCoveImpl.java:1020)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.intel.bluetooth.BlueCoveImpl.detectStackPrivileged(BlueCoveImpl.java:1018)
	at com.intel.bluetooth.BlueCoveImpl.getBluetoothStack(BlueCoveImpl.java:1011)
	at javax.bluetooth.LocalDevice.getLocalDeviceInstance(LocalDevice.java:75)
	at javax.bluetooth.LocalDevice.getLocalDevice(LocalDevice.java:95)
	at net.sf.bluecove.TestResponderCommon.initLocalDeviceConfig(TestResponderCommon.java:71)
	at net.sf.bluecove.TestResponderCommon.startLocalDevice(TestResponderCommon.java:66)
	at net.sf.bluecove.TestResponderClient.(TestResponderClient.java:124)
	at net.sf.bluecove.Switcher.createClient(Switcher.java:269)
	at net.sf.bluecove.Switcher.createClient(Switcher.java:262)
	at net.sf.bluecove.Switcher.startDiscovery(Switcher.java:326)
	at net.sf.bluecove.se.Console.main(Console.java:70)
	at net.sf.bluecove.se.Main.runConsole(Main.java:86)
	at net.sf.bluecove.se.Main.main(Main.java:54) &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;...&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;Ugly.  Looks exactly like my linker problem before.  Thankfully with the &lt;a href=&quot;http://www.angstrom-distribution.org/repo/&quot;&gt;angstrom feeds&lt;/a&gt;
 being part of ipkg's config by default, it was easy enough to install ldd and determine if it linked correctly.  It didn't:&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;root@bug20:~# &lt;strong&gt;ldd libbluecove_arm.so&lt;/strong&gt;
 

        libc.so.6 =&amp;gt; /lib/libc.so.6 (0x4000f000)

        /lib/ld-linux.so.3 (0x2a000000)

root@bug20:~# 

&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
Okay so recompile it and make sure it links with the appropriate -L flags to the cross compiler and now:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;root@bug20:~#&lt;strong&gt; ldd libbluecove_arm.so &lt;/strong&gt;


        libbluetooth.so.3 =&amp;gt; /usr/lib/libbluetooth.so.3 (0x4000f000)

        libc.so.6 =&amp;gt; /lib/libc.so.6 (0x4002a000)

        /lib/ld-linux.so.3 (0x2a000000)

root@bug20:~#&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;Looks good!  Except:&lt;/p&gt;
&lt;p&gt;

&lt;span style=&quot;font-family: courier;&quot;&gt;
&lt;strong&gt;root@bug20:~# java -Djava.library.path=/usr/lib/jni/ -cp 
/usr/share/java/com.buglabs.bug.jni.bluecove.jar:/home/root/junit.jar:. 
-jar bluecove-tester-app.jar --console&lt;/strong&gt;

&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;BlueCove tester Console application 
(keyboard codes the same as in MIDP application)
	2 - Start Client
	3 - Stop Client
	5 - Start Server
	6 - Stop Server
	* - Run Discovery
	7 - Services Search
	d - toggle BlueCove Debug
	T - Start TCK Agent
	q - Quit
&lt;strong&gt;*&lt;/strong&gt;

error start error  java.lang.UnsatisfiedLinkError: 
com.intel.bluetooth.BluetoothStackBlueZ.nativeGetDeviceID(IJ)I
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;WTF!!!  So I recheck everything and even recheck my knowledge of linking and gcc flags and am I even sure my parents are my parents?  You know, one of those kinds of afternoons.  I resigned to let it go and resume fixing it today, remotely.  Remotely remotely.  I mean using openjdk-6 built-in sweet sweet remote debugging capabilities.  The fact that this is BUILT IN to openjdk-6 (at least for the zero implementation) means you just follow the&lt;a href=&quot;http://www.eclipsezone.com/eclipse/forums/t53459.html&quot;&gt; simple java remote debugging instructions for eclipse&lt;/a&gt;
 and that's it.  I can even do it via our VPN and access the BUG sitting on my desk in the office to test.  30 seconds of setup and you just start stepping through code.  It's beautiful.&lt;/p&gt;
&lt;p&gt;One thing that perturbed me was that the exception stacktrace gave an UnsatisfiedLinkError and the last method in the stacktrace was &lt;span style=&quot;font-family: courier;&quot;&gt;BluetoothStackBlueZ.nativeGetDeviceID(IJ)I&lt;/span&gt;
 .  But as I step through the code,  I see:&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;    private int nativeGetDeviceID(int id, long findLocalDeviceBTAddress) throws BluetoothStateException {

&lt;/span&gt;
 &lt;/p&gt;
&lt;p&gt;No native declaration?  That means... it's uh, not native.  But wtf is going on here?  Who says it's native?&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;root@bug20:~# zipinfo bluecove-tester-app.jar | grep BlueZ.class

-rw-r--r--  2.3 unx    20622 bx defN 25-Dec-08 17:55 com/intel/bluetooth/BluetoothStackBlueZ.class

&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;  Why you little sneaky jar you.  I see what's going on here.  In some old implementation of bluecove, this nativeGetDeviceID was uh, NATIVE.  In my newer (2.1.0) it's NOT native.  For backwards compatibility they kept the method name &quot;nativeGetDeviceID&quot; despite the fact that it's not a jni call anymore.  &lt;/p&gt;
&lt;p&gt;But how can I be certain?  I mean, I demand satisfaction.  I need to know that this is indeed the cause of my problems.  Naturally, the jar is binary-only, meaning I can't just inspect the source for the godforsaken line.  But I need to know!  So I google around for a decompiler in linux and behold: &lt;a href=&quot;http://java.decompiler.free.fr/jd-gui/downloads/jd-gui-0.3.2.linux.i686.tar.gz&quot;&gt;JD-GUI for linux!&lt;/a&gt;
  Sure enough:&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;created on: 07/30/10&quot; height=&quot;313&quot; src=&quot;http://communityasset1.buglabs.net/photos/0000/0925/screenshot-2_large.png?1280523706&quot; width=&quot;500&quot; /&gt;
&lt;/p&gt;
&lt;p&gt;ooh I so have you now.  You little defect you:&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;private native int nativeGetDeviceID(int paramInt, long paramLong) throws BluetoothStateException;&lt;/span&gt;
  &lt;/p&gt;
&lt;p&gt;Next time I'll uh, just download the&lt;a href=&quot;http://bluecove.org/bluecove-examples/bluecove-tester/bluecove-tester.jar&quot;&gt; tester jar&lt;/a&gt;
 without the mind-bendingly-subtle divergent API changes pre-bundled.  That could have saved me a lot of pain, but then it wouldn't have been so rewarding to figure out, now would it?&lt;/p&gt;</description>
	<pubDate>Fri, 30 Jul 2010 21:07:40 +0000</pubDate>
</item>
<item>
	<title>Michael Starzinger: Puzzling Java statement of the day</title>
	<guid>http://www.antforge.org/115 at http://www.antforge.org</guid>
	<link>http://www.antforge.org/blog/2010/07/30/puzzling-java-statement</link>
	<description>&lt;p&gt;Some days ago I stumbled across a Java statement which I thought was trivial at first, only to discover that I had no idea. I have a reasonable understanding of what a &lt;span class=&quot;caps&quot;&gt;JVM&lt;/span&gt; does and how Java bytecode is executed. But as this example shows once again, that doesn’t necessarily spread to the Java programming language. The snippet below should explain my point.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;int lorem = 1, ipsum = 2, dolor = 3;
if (lorem == (lorem = ipsum))
	f();
if ((ipsum = dolor) == ipsum)
	g();
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Which of the above two methods &lt;code&gt;f()&lt;/code&gt; and &lt;code&gt;g()&lt;/code&gt; is actually invoked? Can you tell without compiling the code? Possible answers are:
	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;&lt;strong&gt;None&lt;/strong&gt; of the two methods get invoked, both call-sites are dead code.&lt;/li&gt;
		&lt;li&gt;&lt;strong&gt;Just &lt;code&gt;f()&lt;/code&gt;&lt;/strong&gt; is invoked and the call-site of &lt;code&gt;g()&lt;/code&gt; is dead code.&lt;/li&gt;
		&lt;li&gt;&lt;strong&gt;Just &lt;code&gt;g()&lt;/code&gt;&lt;/strong&gt; is invoked and the call-site of &lt;code&gt;f()&lt;/code&gt; is dead code.&lt;/li&gt;
		&lt;li&gt;&lt;strong&gt;Both&lt;/strong&gt; methods are invoked, the conditions are pointless.&lt;/li&gt;
	&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;

	&lt;p&gt;Ironically, I finally understood what was going on after looking at the generated bytecode (good old &lt;code&gt;javap&lt;/code&gt; is your friend). I am not posting the disassembled code because that would spoil the fun. But once you look at it, the answer appears to be quite obvious.&lt;/p&gt;</description>
	<pubDate>Fri, 30 Jul 2010 20:44:50 +0000</pubDate>
</item>
<item>
	<title>Andrew Hughes: IcedTea7 1.13 Released!</title>
	<guid>http://blog.fuseyism.com/?p=104</guid>
	<link>http://blog.fuseyism.com/index.php/2010/07/29/icedtea7-113-released/</link>
	<description>&lt;p&gt;We are pleased to announce a new major release of IcedTea7, 1.13.&lt;/p&gt;
&lt;p&gt;This update contains the following security updates:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2010-2783&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=616895&quot;&gt;RH616895&lt;/a&gt;: IcedTea ‘Extended JNLP Services’ arbitrary file access&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2548&quot;&gt;CVE-2010-2548&lt;/a&gt;,  &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=616893&quot;&gt;RH616893&lt;/a&gt;: IcedTea Incomplete property access check for unsigned applications&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-0837&quot;&gt;CVE-2010-0837&lt;/a&gt;, &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6902299&quot;&gt;S6902299&lt;/a&gt;: JAR “unpack200″ must verify input parameters&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-0845&quot;&gt;CVE-2010-0845&lt;/a&gt;, &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6684807&quot;&gt;S6894807&lt;/a&gt;: No ClassCastException for HashAttributeSet constructors if run with -Xcomp&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-0838&quot;&gt;CVE-2010-0838&lt;/a&gt;, &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6899653&quot;&gt;S6899653&lt;/a&gt;: CMM readMabCurveData Buffer Overflow Vulnerability&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-0082&quot;&gt;CVE-2010-0082&lt;/a&gt;, &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6626217&quot;&gt;S6626217&lt;/a&gt;: Loader-constraint table allows arrays instead of only the base-classes&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-0095&quot;&gt;CVE-2010-0095&lt;/a&gt;, &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6893954&quot;&gt;S6893954&lt;/a&gt;: Subclasses of InetAddress may incorrectly interpret network addresses&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-0085&quot;&gt;CVE-2010-0085&lt;/a&gt;, &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6736390&quot;&gt;S6736390&lt;/a&gt;: File TOCTOU deserialization vulnerability&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-0091&quot;&gt;CVE-2010-0091&lt;/a&gt;, &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6887703&quot;&gt;S6887703&lt;/a&gt;: Unsigned applet can retrieve the dragged information before drop action occurs&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-0088&quot;&gt;CVE-2010-0088&lt;/a&gt;, &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6745393&quot;&gt;S6745393&lt;/a&gt;: Inflater/Deflater clone issues&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-0084&quot;&gt;CVE-2010-0084&lt;/a&gt;, &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6633872&quot;&gt;S6633872&lt;/a&gt;: Policy/PolicyFile leak dynamic ProtectionDomains.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-0092&quot;&gt;CVE-2010-0092&lt;/a&gt;, &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6888149&quot;&gt;S6888149&lt;/a&gt;: AtomicReferenceArray causes SIGSEGV -&amp;gt; SEGV_MAPERR error&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-0094&quot;&gt;CVE-2010-0094&lt;/a&gt;, &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6893947&quot;&gt;S6893947&lt;/a&gt;: Deserialization of RMIConnectionImpl objects should enforce stricter checks&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-0093&quot;&gt;CVE-2010-0093&lt;/a&gt;, &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6892265&quot;&gt;S6892265&lt;/a&gt;: System.arraycopy unable to reference elements beyond Integer.MAX_VALUE bytes&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-0840&quot;&gt;CVE-2010-0840&lt;/a&gt;, &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6904691&quot;&gt;S6904691&lt;/a&gt;: Applet Trusted Methods Chaining Privilege Escalation Vulnerability&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-0848&quot;&gt;CVE-2010-0848&lt;/a&gt;, &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6914823&quot;&gt;S6914823&lt;/a&gt;: AWT Library Invalid Index Vulnerability&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-0847&quot;&gt;CVE-2010-0847&lt;/a&gt;, &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6914866&quot;&gt;S6914866&lt;/a&gt;: ImagingLib arbitrary code execution vulnerability&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-3555&quot;&gt;CVE-2009-3555&lt;/a&gt;, TLS: MITM attacks via session renegotiation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The IcedTea project provides a harness to build the source code from OpenJDK6 using Free Software build tools. It also includes the only Free Java plugin and Web Start implementation, and support for additional architectures over and above x86, x86_64 and SPARC via the Zero assembler port.&lt;/p&gt;
&lt;h2&gt;What’s New?&lt;/h2&gt;
&lt;p&gt;—————–&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updated to OpenJDK7 &lt;a href=&quot;http://openjdk.java.net/projects/jdk7/milestones/&quot;&gt;milestone 7&lt;/a&gt;/&lt;a href=&quot;http://download.java.net/jdk7/changes/jdk7-b89.html&quot;&gt;b89&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Removed VisualVM support; now hosted at &lt;a href=&quot;http://icedtea.classpath.org/hg/visualvm&quot;&gt;http://icedtea.classpath.org/hg/visualvm&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Removed old plugin.&lt;/li&gt;
&lt;li&gt;Bumped to CACAO 1.1.0 pre-release snapshot.&lt;/li&gt;
&lt;li&gt;libjpeg7 &amp;amp; libpng 1.4 supported.&lt;/li&gt;
&lt;li&gt;Latest security updates and hardening patches:
&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;&lt;li&gt;(&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2010-0837&lt;/a&gt;): JAR “unpack200″ must verify input parameters (&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6902299&quot;&gt;6902299&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;(&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2010-0845&lt;/a&gt;): No ClassCastException for HashAttributeSet constructors if run with -Xcomp (&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6894807&quot;&gt;6894807&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;(&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2010-0838&lt;/a&gt;): CMM readMabCurveData Buffer Overflow Vulnerability (&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6899653&quot;&gt;6899653&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;(&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2010-0082&lt;/a&gt;): Loader-constraint table allows arrays instead of only the base-classes (&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6626217&quot;&gt;6626217&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;(&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2010-0095&lt;/a&gt;): Subclasses of InetAddress may incorrectly interpret network addresses (&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6893954&quot;&gt;6893954&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;(&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2010-0085&lt;/a&gt;): File TOCTOU deserialization vulnerability (&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6736390&quot;&gt;6736390&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;(&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2010-0091&lt;/a&gt;): Unsigned applet can retrieve the dragged information before drop action occurs (&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6887703&quot;&gt;6887703&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;(&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2010-0088&lt;/a&gt;): Inflater/Deflater clone issues (&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6678385&quot;&gt;6678385&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;(&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2010-0084&lt;/a&gt;): Policy/PolicyFile leak dynamic ProtectionDomains. (&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6678385&quot;&gt;6678385&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;(&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2010-0092&lt;/a&gt;): AtomicReferenceArray causes SIGSEGV -&amp;gt; SEGV_MAPERR error (&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6888149&quot;&gt;6888149&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;(&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2010-0094&lt;/a&gt;): Deserialization of RMIConnectionImpl objects should enforce stricter checks (&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6893947&quot;&gt;6893947&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;(&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2010-0093&lt;/a&gt;): System.arraycopy unable to reference elements beyond Integer.MAX_VALUE bytes (&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6892265&quot;&gt;6892265&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;(&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2010-0840&lt;/a&gt;): Applet Trusted Methods Chaining Privilege Escalation Vulnerability (&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6904691&quot;&gt;6904691&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;(&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2010-0848&lt;/a&gt;): AWT Library Invalid Index Vulnerability (&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6914823&quot;&gt;6914823&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;(&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2010-0847&lt;/a&gt;): ImagingLib arbitrary code execution vulnerability (&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6914866&quot;&gt;6914866&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;(&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2009-3555&lt;/a&gt;): TLS: MITM attacks via session renegotiation&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6639665&quot;&gt;6639665&lt;/a&gt;: ThreadGroup finalizer allows creation of false root ThreadGroups&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6898622&quot;&gt;6898622&lt;/a&gt;: ObjectIdentifer.equals is not capable of detecting incorrectly encoded CommonName OIDs&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6910590&quot;&gt;6910590&lt;/a&gt;: Application can modify command array in ProcessBuilder&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6909597&quot;&gt;6909597&lt;/a&gt;: JPEGImageReader stepX Integer Overflow Vulnerability&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6932480&quot;&gt;6932480&lt;/a&gt;: Crash in CompilerThread/Parser. Unloaded array klass?&lt;/li&gt;
&lt;li&gt;(&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2010-2783&lt;/a&gt;,  &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=616895&quot;&gt;RH616895&lt;/a&gt;): IcedTea ‘Extended JNLP Services’ arbitrary file access&lt;/li&gt;
&lt;li&gt;(&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2010-2548&lt;/a&gt;,  &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=616893&quot;&gt;RH616893&lt;/a&gt;): IcedTea Incomplete property access check for unsigned applications&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Bug fixes
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=179&quot;&gt;PR179&lt;/a&gt;: Rhino bootclasspath issue&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=512&quot;&gt;PR512&lt;/a&gt;: Extract jaxws getdtdtype patch to boot tree instead of main tree.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=521&quot;&gt;PR521&lt;/a&gt;: Don’t hardlink the copy of generated.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6963870&quot;&gt;S6963870&lt;/a&gt;: NPE in CompoundBorder.getInsets()&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6967533&quot;&gt;S6967533&lt;/a&gt;: Epoch bug: ExceptionInInitializerError on systems with uninitialized clock&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6944361&quot;&gt;S6944361&lt;/a&gt;: Missing CKR_ values in PKCS11Exception&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=453&quot;&gt;PR453&lt;/a&gt;, &lt;a href=&quot;https://bugs.openjdk.java.net/show_bug.cgi?id=100142&quot;&gt;OJ100142&lt;/a&gt;: Fix policy evaluation to match the proprietary JDK.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;SystemTap
&lt;ul&gt;
&lt;li&gt;Added JNI call tracing using systemtap version 1.0+ when configuring with –enable-systemtap. See tapset/hotspot_jni.stp.&lt;/li&gt;
&lt;li&gt;Add support for Zero build on Hitachi SH.&lt;/li&gt;
&lt;li&gt;Removed the old plugin, replaced by the NPPlugin.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=476&quot;&gt;PR476&lt;/a&gt;: Enable building SystemTap support on GCC 4.5.&lt;/li&gt;
&lt;li&gt;Fix hotspot tapset object_alloc size variable.&lt;/li&gt;
&lt;li&gt;Workaround  &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=613284&quot;&gt;RH613824&lt;/a&gt;: Missing and wrong hotspot.* probepoint arguments&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Zero/Shark
&lt;ul&gt;
&lt;li&gt;Formatting changes and other fixes to match upstream&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=428&quot;&gt;PR428&lt;/a&gt;: Shark on ARM precompiled header incls&lt;/li&gt;
&lt;li&gt;Update Shark for LLVM r95390 API change.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6927165&quot;&gt;S6927165&lt;/a&gt;: Zero S/390 fixes (from upstream)&lt;/li&gt;
&lt;li&gt;Implemented Shark host CPU feature autotuner using LLVM 2.7 APIs.&lt;/li&gt;
&lt;li&gt;Add s390 support to TCK setup helper script&lt;/li&gt;
&lt;li&gt;Strip stupid options that llvm-config supplies&lt;/li&gt;
&lt;li&gt;Update Shark for LLVM r94686 API change.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6914622&quot;&gt;S6914622&lt;/a&gt;, &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6909153&quot;&gt;S6909153&lt;/a&gt;, &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6913869&quot;&gt;S6913869&lt;/a&gt; upstream Zero fixes.&lt;/li&gt;
&lt;li&gt;Fixed Shark sharkCompiler mattr memory corruption bug when using llvm 2.7.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=525&quot;&gt;PR525&lt;/a&gt;: Shark made not entrant deopt sigsegv regression after bump to b20 and hs17.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=483&quot;&gt;PR483&lt;/a&gt;: Fix miscompilation of sun.misc.Unsafe::getByte.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=324&quot;&gt;PR324&lt;/a&gt;, &lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=481&quot;&gt;481&lt;/a&gt;: Fix Shark VM crash.&lt;/li&gt;
&lt;li&gt;Update Shark for LLVM 2.8 API change r100304&lt;/li&gt;
&lt;li&gt;Shark calling static jni methods jclass argument fix.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=484&quot;&gt;PR484&lt;/a&gt;: Shark jit code block “0xcdcdcdcd” zombie wipeout Sigsegv crash&lt;/li&gt;
&lt;li&gt;Backport new frame anchor and stack overflow code for Zero and Shark&lt;/li&gt;
&lt;li&gt;Fix stack leak in Shark&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=494&quot;&gt;PR494&lt;/a&gt;: Shark fails to catch Exception using catch (Throwable e)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;NPPlugin fixes
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=446&quot;&gt;PR446&lt;/a&gt;: Use JDK_UPDATE_VERSION to set the jpi version.&lt;/li&gt;
&lt;li&gt;Re-designed frame embedding code so that the applet is dynamically packed into given handle. This increases stability and breaks reliance on the assumption that the browser will always provide a handle in a certain sequence.
&lt;/li&gt;&lt;li&gt;Encode new lines, carriage returns, and other special characters before sending them to Java side (de-coding code is already in effect on Java side).&lt;/li&gt;
&lt;li&gt;Centralised and increased timeouts to give slow-loading applets enough time to load.&lt;/li&gt;
&lt;li&gt;Fix security permissions related to get/set property, based on specifications.&lt;/li&gt;
&lt;li&gt;Added support for JSObject.finalize()&lt;/li&gt;
&lt;li&gt;Liveconnect message processing design changes.&lt;/li&gt;
&lt;li&gt;Message protocol overhaul to fix race conditions&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=166&quot;&gt;PR166&lt;/a&gt;: Create FIFO pies in temp dir instead of ~/.icedteaplugin&lt;/li&gt;
&lt;li&gt;Profiled memory usage and implemented proper cleanup for C++ side.&lt;/li&gt;
&lt;li&gt;Update debug output string and function/structure names to change ‘GCJ’ references to ITNP/IcedTea NP Plugin&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=461&quot;&gt;PR461&lt;/a&gt;: plugin working for NSS enabled builds with firefox including a private NSS copy&lt;/li&gt;
&lt;li&gt;Removed unnecessary debug and trace output&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=474&quot;&gt;PR474&lt;/a&gt;: Patch from Paulo Cesar Pereira de Andrade, incrementing malloc size to account for NULL terminator.&lt;/li&gt;
&lt;li&gt; &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=524387&quot;&gt;RH524387&lt;/a&gt;: javax.net.ssl.SSLKeyException: RSA premaster secret error&lt;/li&gt;
&lt;li&gt;Set context classloader for all threads in an applet’s threadgroup&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=436&quot;&gt;PR436&lt;/a&gt;: Close all applet threads on exit&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=480&quot;&gt;PR480&lt;/a&gt;: NPPlugin with NoScript extension.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=488&quot;&gt;PR488&lt;/a&gt;: Question mark changing into underscore in URL.&lt;/li&gt;
&lt;li&gt; &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=592553&quot;&gt;RH592553&lt;/a&gt;: Fix bug causing 100% CPU usage.&lt;/li&gt;
&lt;li&gt;Don’t generate a random pointer from a pthread_t in the debug output.&lt;/li&gt;
&lt;li&gt;Add ForbiddenTargetException for legacy support.&lt;/li&gt;
&lt;li&gt;Use variadic macro for plugin debug message printing.&lt;/li&gt;
&lt;li&gt;Don’t link the plugin with libxul libraries.&lt;/li&gt;
&lt;li&gt;Fix race conditions in plugin initialization code that were causing hangs.&lt;/li&gt;
&lt;li&gt; &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=506730&quot;&gt;RH506730&lt;/a&gt;: BankID (Norwegian common online banking authentication system) applet fails to load.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=491&quot;&gt;PR491&lt;/a&gt;: pass java_{code,codebase,archive} parameters to Java.&lt;/li&gt;
&lt;li&gt;Adds javawebstart.version property and give user permission to read that property.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;NetX:
&lt;ul&gt;
&lt;li&gt;Make path sanitization consistent; use a blacklisting approach.&lt;/li&gt;
&lt;li&gt;Make the SingleInstanceServer thread a daemon thread.&lt;/li&gt;
&lt;li&gt;Handle JNLP files which use native libraries but do not indicate it&lt;/li&gt;
&lt;li&gt;Allow JNLP classloaders to share native libraries&lt;/li&gt;
&lt;li&gt;Added encoding support&lt;/li&gt;
&lt;li&gt;Do not use Look and Feel related methods for setting up security dialogs&lt;/li&gt;
&lt;li&gt;Error out when unsigned jnlp applications request permissions&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;PulseAudio:
&lt;ul&gt;
&lt;li&gt;Add missing .c file to PulseAudio build&lt;/li&gt;
&lt;li&gt;Eliminate spurious exception throwing.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The tarball can be downloaded from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/download/source/icedtea-1.13.tar.gz&quot;&gt;http://icedtea.classpath.org/download/source/icedtea-1.13.tar.gz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sha256sum: 4d65cfb55dbe2e2fa6b980c686b34ec9f45852d5eeafd0fec6f874524743ad15&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following people helped with this release:&lt;/p&gt;
&lt;p&gt;Gary Benson, Deepak Bhole, Andrew John Hughes, Nobuhiro Iwamatsu, Matthias Klose, Omair Majid, Edward Nevill, Xerxes Rånby, Stefan Ring, Pavel Tisnovsky, Jon VanAlten, Mark Wielaard, Man Lung Wong&lt;/p&gt;
&lt;p&gt;We would also like to thank the bug reporters and testers!&lt;/p&gt;
&lt;p&gt;To get started:&lt;/p&gt;
&lt;pre&gt;$ tar xzf icedtea-1.13.tar.gz
$ cd icedtea-1.13
&lt;/pre&gt;
&lt;p&gt;Full build requirements and instructions are in INSTALL:&lt;/p&gt;
&lt;pre&gt;$ ./configure [--enable-zero --with-openjdk --enable-pulse-java
--enable-systemtap ...]
$ make
&lt;/pre&gt;</description>
	<pubDate>Thu, 29 Jul 2010 08:53:03 +0000</pubDate>
</item>
<item>
	<title>Andrew Hughes: IcedTea6 1.8.1 Released!</title>
	<guid>http://blog.fuseyism.com/?p=103</guid>
	<link>http://blog.fuseyism.com/index.php/2010/07/28/icedtea6-181-released/</link>
	<description>&lt;p&gt;[Reposted on behalf of Matthias Klose, release manager for 1.8]&lt;/p&gt;
&lt;p&gt;We are proud to announce the release of IcedTea6 1.8.1.&lt;/p&gt;
&lt;p&gt;This update contains the following security updates:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2783&quot;&gt;CVE-2010-2783&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=616895&quot;&gt;RH616895&lt;/a&gt;: IcedTea ‘Extended JNLP Services’ arbitrary file access&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2010-2548&quot;&gt;CVE-2010-2548&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=616893&quot;&gt;RH616893&lt;/a&gt;: IcedTea Incomplete property access check for unsigned applications&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The IcedTea project provides a harness to build the source code from OpenJDK6 using Free Software build tools. It also includes the only Free Java plugin and Web Start implementation, and support for additional architectures over and above x86, x86_64 and SPARC via the Zero assembler port.&lt;/p&gt;
&lt;h2&gt;What’s New?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6678385&quot;&gt;S6678385&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=551835&quot;&gt;RH551835&lt;/a&gt;: Fixes jvm crashes when window is resized.&lt;/li&gt;
&lt;li&gt;Produces the “expected” behavior for full screen applications, when running the Metacity window manager.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=453&quot;&gt;PR453&lt;/a&gt;, &lt;a href=&quot;https://bugs.openjdk.java.net/show_bug.cgi?id=100142&quot;&gt;OJ100142&lt;/a&gt;: Fix policy evaluation to match the proprietary JDK.&lt;/li&gt;
&lt;li&gt;IcedTeaNPPlugin.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=524387&quot;&gt;RH524387&lt;/a&gt;: javax.net.ssl.SSLKeyException: RSA premaster secret error&lt;/li&gt;
&lt;li&gt;Set context classloader for all threads in an applet’s threadgroup&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=436&quot;&gt;PR436&lt;/a&gt;: Close all applet threads on exit&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=480&quot;&gt;PR480&lt;/a&gt;: NPPlugin with NoScript extension.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=488&quot;&gt;PR488&lt;/a&gt;: Question mark changing into underscore in URL.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=592553&quot;&gt;RH592553&lt;/a&gt;: Fix bug causing 100% CPU usage.&lt;/li&gt;
&lt;li&gt;Don’t generate a random pointer from a pthread_t in the debug output.&lt;/li&gt;
&lt;li&gt;Add ForbiddenTargetException for legacy support.&lt;/li&gt;
&lt;li&gt;Use variadic macro for plugin debug message printing.&lt;/li&gt;
&lt;li&gt;Don’t link the plugin with libxul libraries.&lt;/li&gt;
&lt;li&gt;Fix race conditions in plugin initialization code that were causing hangs.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=506730&quot;&gt;RH506730&lt;/a&gt;: BankID (Norwegian common online banking authentication system) applet fails to load.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=491&quot;&gt;PR491&lt;/a&gt;: pass java_{code,codebase,archive} parameters to Java.&lt;/li&gt;
&lt;li&gt;Adds javawebstart.version property and give user permission to read that property.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;NetX:
&lt;ul&gt;
&lt;li&gt;Fix security flaw in NetX that allows arbitrary unsigned apps to set any java property.&lt;/li&gt;
&lt;li&gt;Fix a flaw that allows unsigned code to access any file on the machine (accessible to the user) and write to it.&lt;/li&gt;
&lt;li&gt;Make path sanitization consistent; use a blacklisting approach.&lt;/li&gt;
&lt;li&gt;Make the SingleInstanceServer thread a daemon thread.&lt;/li&gt;
&lt;li&gt;Handle JNLP files which use native libraries but do not indicate it&lt;/li&gt;
&lt;li&gt;Allow JNLP classloaders to share native libraries&lt;/li&gt;
&lt;li&gt;Added encoding support&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;PulseAudio:
&lt;ul&gt;
&lt;li&gt;Eliminate spurious exception throwing.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Zero/Shark:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=483&quot;&gt;PR483&lt;/a&gt;: Fix miscompilation of sun.misc.Unsafe::getByte.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=324&quot;&gt;PR324&lt;/a&gt;,&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=481&quot;&gt;PR481&lt;/a&gt;: Fix Shark VM crash.&lt;/li&gt;
&lt;li&gt;Fix Zero build on Hitachi SH.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;SystemTap support:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=436&quot;&gt;PR476&lt;/a&gt;: Enable building SystemTap support on GCC 4.5.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The tarball can be downloaded here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://icedtea.classpath.org/download/source/icedtea6-1.8.1.tar.gz&quot;&gt;http://icedtea.classpath.org/download/source/icedtea6-1.8.1.tar.gz&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;The following people helped with this release: Gary Benson, Deepak Bhole, Andrew John Hughes, Mark Wielaard, Matthias Klose, Omair Majid, Pavel Tisnovsky, Xerxes Rånby, Jon VanAlten, Man Lung Wong, and many others.&lt;/p&gt;
&lt;p&gt;We would also like to thank the bug reporters and testers!&lt;/p&gt;
&lt;p&gt;To get started:&lt;/p&gt;
&lt;pre&gt;$ hg clone http://icedtea.classpath.org/hg/release/icedtea6-1.8.1
$ cd icedtea6-1.8.1
&lt;/pre&gt;
&lt;p&gt;Full build requirements and instructions are in INSTALL:&lt;/p&gt;
&lt;pre&gt;$ ./configure [--enable-visualvm --with-openjdk --enable-pulse-java
--enable-systemtap --enable-nss ...]
$ make
&lt;/pre&gt;&lt;/ul&gt;</description>
	<pubDate>Wed, 28 Jul 2010 12:38:21 +0000</pubDate>
</item>
<item>
	<title>Marcos Roriz: FISL, I was there \o/</title>
	<guid>http://marcosroriz.wordpress.com/?p=269</guid>
	<link>http://marcosroriz.wordpress.com/2010/07/27/fisl-i-was-there-o/</link>
	<description>&lt;p&gt;Hello guys, well when I applied to Google Summer of Code I had no idea on how it was going to change my life. So far not only I have been learning new things, but also meeting awesome developers. The climax of this was when we (brazillian students) asked for  a small financial help to Google to take us to FISL (&lt;em&gt;&lt;strong&gt;F&lt;/strong&gt;orum &lt;strong&gt;I&lt;/strong&gt;nternacional de &lt;strong&gt;S&lt;/strong&gt;oftware &lt;strong&gt;L&lt;/strong&gt;ivre&lt;/em&gt; – International Free Software Forum) in Brazil. Google did the amazing favor to help us so that we can learn/spread free software to others. We are in huge debt with them, and we’re amazed by their concerns about free software ideals. We managed not only to meet there (&lt;code&gt;#gsoc-br&lt;/code&gt;) but also we managed to meet excellent FOSS developers there and had a lecture about the GsoC experience in FISL.&lt;/p&gt;
&lt;p&gt;There I met the remaining gsocers, we shared our difficulties and we exchanged tips on how to solve problems. They all joked on me, :/, when I said that I preferred svn over dscm, like git or mercurial. But at the same time they gave me a very brief and informal talk/introduction to git (which I’m kinda liking &lt;img alt=&quot;:D&quot; class=&quot;wp-smiley&quot; src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif&quot; /&gt; ). I talked also a lot about X and XCB with friend and hackers there since it’s directly related to my proposal.&lt;/p&gt;
&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_270&quot; style=&quot;width: 710px;&quot;&gt;&lt;a href=&quot;http://marcosroriz.files.wordpress.com/2010/07/x2_20afbf2.jpeg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;size-full wp-image-270&quot; height=&quot;525&quot; src=&quot;http://marcosroriz.files.wordpress.com/2010/07/x2_20afbf2.jpeg?w=700&amp;amp;h=525&quot; title=&quot;GSoCers&quot; width=&quot;700&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;GSoCers&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;I had a chance to meet some badass developers (like ‘Maddog’) and get amazing talks (like &lt;em&gt;Glassfigh in OSGi bundles&lt;/em&gt; and &lt;em&gt;What’s new on OpenJDK 7&lt;/em&gt;). I took some photos and the most cool was with the GNU.&lt;/p&gt;
&lt;p&gt;Overall, It was a amazing experience, and I want to thank again Google, specially Carol (which is so kind =]), all the cool guys there (FISL) and my mentor Mario Torre (which understand that I’m a little behind but getting up the schedule now =).&lt;/p&gt;
&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_271&quot; style=&quot;width: 710px;&quot;&gt;&lt;a href=&quot;http://marcosroriz.files.wordpress.com/2010/07/dsc01840.jpg&quot;&gt;&lt;img alt=&quot;GNU and Me&quot; class=&quot;size-full wp-image-271&quot; height=&quot;525&quot; src=&quot;http://marcosroriz.files.wordpress.com/2010/07/dsc01840.jpg?w=700&amp;amp;h=525&quot; title=&quot;GNU and Me&quot; width=&quot;700&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;GNU and Me&lt;/p&gt;&lt;/div&gt;
&lt;br /&gt;Filed under: &lt;a href=&quot;http://marcosroriz.wordpress.com/category/google-summer-of-code/&quot;&gt;Google Summer of Code&lt;/a&gt; Tagged: &lt;a href=&quot;http://marcosroriz.wordpress.com/tag/fisl/&quot;&gt;FISL&lt;/a&gt;, &lt;a href=&quot;http://marcosroriz.wordpress.com/tag/gnu-classpath/&quot;&gt;GNU Classpath&lt;/a&gt;, &lt;a href=&quot;http://marcosroriz.wordpress.com/tag/google-summer-of-code/&quot;&gt;Google Summer of Code&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/marcosroriz.wordpress.com/269/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/marcosroriz.wordpress.com/269/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/marcosroriz.wordpress.com/269/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/marcosroriz.wordpress.com/269/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/marcosroriz.wordpress.com/269/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/marcosroriz.wordpress.com/269/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/marcosroriz.wordpress.com/269/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/marcosroriz.wordpress.com/269/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/marcosroriz.wordpress.com/269/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/marcosroriz.wordpress.com/269/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=marcosroriz.wordpress.com&amp;amp;blog=6936855&amp;amp;post=269&amp;amp;subd=marcosroriz&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;</description>
	<pubDate>Tue, 27 Jul 2010 17:14:59 +0000</pubDate>
</item>
<item>
	<title>Robert Lougher: ... a thousand words (JamVM/OpenJDK update 2)</title>
	<guid>tag:blogger.com,1999:blog-300388730782291770.post-6902265698887613245</guid>
	<link>http://draenog.blogspot.com/2010/07/thousand-words-jamvmopenjdk-update-2.html</link>
	<description>Firstly apologies to the people who commented on my first progress update (18th May).  I'd hoped to do a blog update &lt;span style=&quot;font-style: italic;&quot;&gt;way&lt;/span&gt; before now, but I've had a lot less time to work on JamVM/OpenJDK port than I expected...&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Xerces Ranby&lt;/span&gt; asked:&lt;br /&gt;&lt;blockquote&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Does JamVM still produce those quick and fast startup times when using the OpenJDK class libraries compared to the fast startup times obtainable when using GNU Classpath classes?&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;[best of 3 runs]&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;rob@traken:~/JAM/tests$ time /usr/lib/jvm/jamvm-openjdk/jre/bin/java -showversion hello&lt;br /&gt;java version &quot;1.6.0_0&quot;&lt;br /&gt;OpenJDK Runtime Environment (IcedTea6 1.6.1) (6b16-1.6.1-3ubuntu1)&lt;br /&gt;JamVM (build 1.5.5-openjdk, inline-threaded interpreter)&lt;br /&gt;&lt;br /&gt;Hello World!&lt;br /&gt;&lt;br /&gt;real 0m0.046s&lt;br /&gt;user 0m0.030s&lt;br /&gt;sys 0m0.000s&lt;br /&gt;&lt;br /&gt;rob@traken:~/JAM/tests$ time jamvm -showversion hello&lt;br /&gt;java version &quot;1.5.0&quot;&lt;br /&gt;JamVM version 1.5.5-devel&lt;br /&gt;Copyright (C) 2003-2010 Robert Lougher &lt;br /&gt;...&lt;br /&gt;Build information:&lt;br /&gt;Execution Engine: inline-threaded interpreter&lt;br /&gt;Compiled with: gcc 4.5.0 20100211 (experimental)&lt;br /&gt;Boot Library Path: /usr/local/classpath/lib/classpath&lt;br /&gt;Boot Class Path: /usr/local/jamvm/share/jamvm/classes.zip:/usr/local/classpath/share/classpath/glibj.zip&lt;br /&gt;&lt;br /&gt;Hello World!&lt;br /&gt;&lt;br /&gt;real 0m0.048s&lt;br /&gt;user 0m0.030s&lt;br /&gt;sys 0m0.020s&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;gnu_andrew&lt;/span&gt; asked:&lt;br /&gt;&lt;blockquote&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Will JamVM still support GNU Classpath, as CACAO does?&lt;/span&gt;&lt;/blockquote&gt;Yes, most definitely.  I still consider GNU Classpath as JamVM's main class-library as it's where my chief loyalty lies.  On more practical grounds, even after the OpenJDK port is functionally complete it will still be a long time before it is as tested as JamVM/GNU Classpath.  FWIW, many embedded systems seem to be quite happy with GNU Classpath.  GNU Classpath is considerably smaller &quot;out of the box&quot; and much easier to build...&lt;br /&gt;&lt;br /&gt;As far as development is concerned, I've taken a different approach to &lt;span style=&quot;font-weight: bold;&quot;&gt;Cacao&lt;/span&gt;.  Cacao implements the class-library differences within the VM-specific code using &lt;span style=&quot;font-family: courier;&quot;&gt;#ifdef&lt;/span&gt;s.  While there's nothing wrong with that, I personally think it makes the code harder to read, and it's harder to get an overview of the changes.&lt;br /&gt;&lt;br /&gt;Instead, I've tried to abstract the differences into a &lt;span style=&quot;font-style: italic;&quot;&gt;classlib interface&lt;/span&gt;.  At times this has taken some thought and quite a lot of code re-arranging.  If anything it's made the code cleaner, as a lot of the messier details are hidden (in general, I'm not a fan of information hiding, but removal of some of the VMFoo details makes the intent clearer).&lt;br /&gt;&lt;br /&gt;Having said that, the classlib interface is mostly driven by the differences between GNU Classpath and OpenJDK as I find them.  I'd like to think the interface is reasonably generic, but it will probably need changing if another class-library came along...&lt;br /&gt;&lt;br /&gt;Currently the classlib interface has 40 functions, the gnuclasspath directory has 8 files, totalling 2552 LOC, and openjdk 10 files totalling 3491 LOC.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Christian Thalinger&lt;/span&gt; (hello, twisti!), &lt;span style=&quot;font-weight: bold;&quot;&gt;linuxhippy&lt;/span&gt; (hello, Clemens!), &lt;span style=&quot;font-weight: bold;&quot;&gt;Michael Starzinger&lt;/span&gt; (hello, Michi!), &lt;span style=&quot;font-weight: bold;&quot;&gt;Stefan Ring&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;Yeah, it's taken a long time, and lots of prevaricating.  It's not been &lt;span style=&quot;font-style: italic;&quot;&gt;quite&lt;/span&gt; as boring and tedious as I expected; some of it I've actually enjoyed :)  Debian might even re-instate JamVM (sticking pins in the Debian T-shirt I bought at FOSDEM, while looking for the Fedora 13 CDROM).&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/300388730782291770-6902265698887613245?l=draenog.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 27 Jul 2010 01:30:21 +0000</pubDate>
</item>
<item>
	<title>Lillian Angel: Petition to open JavaFX</title>
	<guid>http://langel.wordpress.com/?p=295</guid>
	<link>http://langel.wordpress.com/2010/07/19/petition-to-open-javafx/</link>
	<description>&lt;p&gt;Please take a moment to sign this &lt;a href=&quot;http://steveonjava.com/javafx-petition/&quot;&gt;petition&lt;/a&gt; to open source JavaFX.&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/langel.wordpress.com/295/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/langel.wordpress.com/295/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/langel.wordpress.com/295/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/langel.wordpress.com/295/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/langel.wordpress.com/295/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/langel.wordpress.com/295/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/langel.wordpress.com/295/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/langel.wordpress.com/295/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/langel.wordpress.com/295/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/langel.wordpress.com/295/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=langel.wordpress.com&amp;amp;blog=231016&amp;amp;post=295&amp;amp;subd=langel&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;</description>
	<pubDate>Mon, 19 Jul 2010 18:19:58 +0000</pubDate>
</item>
<item>
	<title>Riccardo Mottola: Native Print Preview in GNUstep</title>
	<guid>tag:blogger.com,1999:blog-15746899.post-682826251773711635</guid>
	<link>http://multixden.blogspot.com/2010/07/native-print-preview-in-gnustep.html</link>
	<description>&lt;a href=&quot;http://1.bp.blogspot.com/_4TJfaVrgjAU/TD1omO0x45I/AAAAAAAAAKY/Np63AMA0VPE/s1600/graphos_preview.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5493662126485660562&quot; src=&quot;http://1.bp.blogspot.com/_4TJfaVrgjAU/TD1omO0x45I/AAAAAAAAAKY/Np63AMA0VPE/s320/graphos_preview.png&quot; style=&quot;float: left; margin: 0 10px 10px 0; cursor: pointer; cursor: hand; width: 320px; height: 163px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;The upcoming GSPdf version can be used seamlessly to do Print Preview in GNUstep. The provision to do that has long been in GNUstep's printing code, but no application exploited it.&lt;/p&gt;&lt;p&gt;GSPdf is undergoing quite some restructuring and is now a true document-based application. This allows it to register properly for the post script viewing task. Activationg GhostScript's anti-aliasing is supported too (look at the screenshot, where Graphos itself is running without).&lt;/p&gt;&lt;p&gt;GSPdf is an interface to ghostscript as gv is, so the displayed quality should remain the same.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/15746899-682826251773711635?l=multixden.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 14 Jul 2010 07:35:05 +0000</pubDate>
</item>
<item>
	<title>Marcos Roriz: Updates…</title>
	<guid>http://marcosroriz.wordpress.com/?p=266</guid>
	<link>http://marcosroriz.wordpress.com/2010/07/03/updates-2/</link>
	<description>&lt;p&gt;Hello guys, sorry for the lack of updates, been a busy week here.&lt;br /&gt;
The progress so far is that I’m ending up the refactoring in Escher (already finished the core java pkgs) which lend me changing almost all classes in XPeer @ GNU Classpath, I’m waiting right now to submit this patch and some review of my mentor (Mario Torre) so I can make it a best refactoring.&lt;br /&gt;
So far:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reintegrated 	Escher to XPeer @ GNU Classpath (First task)&lt;/li&gt;
&lt;li&gt;Refactored 	Escher (Almost finishing)&lt;/li&gt;
&lt;li&gt;Next 	→ Generate the protocol code in a description way (Mario Torre 	gave the huge cool idea in generating on @nnotations &lt;img alt=&quot;:D&quot; class=&quot;wp-smiley&quot; src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif&quot; /&gt; )&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One of the things that I changed in XPeer too was the lazy connection. IMHO there is no need to wait for someone to getDisplay() to make all the overhead of connecting to the Xserver. Since usually after the instantiation of the Xtoolkit class there will be use it I did the start right ahead. This change made *somehow* the start of the gui way faster. Am I missing the reason behind lazy connection?&lt;/p&gt;
&lt;br /&gt;Filed under: &lt;a href=&quot;http://marcosroriz.wordpress.com/category/free-software/&quot;&gt;Free Software&lt;/a&gt;, &lt;a href=&quot;http://marcosroriz.wordpress.com/category/free-software/gnu-classpath-free-software/&quot;&gt;GNU Classpath&lt;/a&gt;, &lt;a href=&quot;http://marcosroriz.wordpress.com/category/google-summer-of-code/&quot;&gt;Google Summer of Code&lt;/a&gt;, &lt;a href=&quot;http://marcosroriz.wordpress.com/category/ciencia-da-computacao/java/&quot;&gt;Java&lt;/a&gt; Tagged: &lt;a href=&quot;http://marcosroriz.wordpress.com/tag/escher/&quot;&gt;Escher&lt;/a&gt;, &lt;a href=&quot;http://marcosroriz.wordpress.com/tag/gnu-classpath/&quot;&gt;GNU Classpath&lt;/a&gt;, &lt;a href=&quot;http://marcosroriz.wordpress.com/tag/google-summer-of-code/&quot;&gt;Google Summer of Code&lt;/a&gt;, &lt;a href=&quot;http://marcosroriz.wordpress.com/tag/open-source/&quot;&gt;Open Source&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/marcosroriz.wordpress.com/266/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/marcosroriz.wordpress.com/266/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/marcosroriz.wordpress.com/266/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/marcosroriz.wordpress.com/266/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/marcosroriz.wordpress.com/266/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/marcosroriz.wordpress.com/266/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/marcosroriz.wordpress.com/266/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/marcosroriz.wordpress.com/266/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/marcosroriz.wordpress.com/266/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/marcosroriz.wordpress.com/266/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=marcosroriz.wordpress.com&amp;amp;blog=6936855&amp;amp;post=266&amp;amp;subd=marcosroriz&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;</description>
	<pubDate>Sat, 03 Jul 2010 21:57:24 +0000</pubDate>
</item>
<item>
	<title>Andrew Overholt: Fedora 13 Release Party in Toronto area:  Monday July 5</title>
	<guid>http://overholt.ca/wp/?p=196</guid>
	<link>http://overholt.ca/wp/?p=196</link>
	<description>&lt;p&gt;On Monday July 5th starting at 6 PM there will be a Fedora 13 release party at Seneca College’s York University campus.  More details are available here:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.chris.tylers.info/index.php?/archives/238-Fedora-13-Release-Event.html&quot;&gt;http://blog.chris.tylers.info/index.php?/archives/238-Fedora-13-Release-Event.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;and&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://fedoraproject.org/wiki/Release_Party_F13_Toronto&quot;&gt;https://fedoraproject.org/wiki/Release_Party_F13_Toronto&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;All are welcome to attend.  I look forward to seeing new and existing Fedora users alike.  Bring your laptops to try Fedora 13 if you haven’t already.  We’ll also have installation media available and a machine set up for creating live Fedora 13 USB sticks.&lt;/p&gt;</description>
	<pubDate>Fri, 02 Jul 2010 18:40:15 +0000</pubDate>
</item>
<item>
	<title>Andrew Overholt: Eclipse Helios DemoCamp Toronto</title>
	<guid>http://overholt.ca/wp/?p=183</guid>
	<link>http://overholt.ca/wp/?p=183</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://overholt.ca/HeliosDemoCamp/008-toronto.jpg.html&quot;&gt;&lt;img alt=&quot;Toronto as seen from the CN Tower on a recent evening&quot; src=&quot;http://overholt.ca/HeliosDemoCamp/toronto-sm.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;On Tuesday, Red Hat hosted an &lt;a href=&quot;http://wiki.eclipse.org/Eclipse_DemoCamps_Helios_2010/Toronto&quot;&gt;Eclipse DemoCamp&lt;/a&gt; at our Toronto office to celebrate the Helios release.&lt;br /&gt;
&lt;a href=&quot;http://overholt.ca/HeliosDemoCamp/002-attendees2.jpg.html&quot;&gt;&lt;br /&gt;
&lt;img alt=&quot;Some of the attendees&quot; src=&quot;http://overholt.ca/HeliosDemoCamp/attendees2-sm.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Over 30 people crammed into our conference room to hear from these intrepid presenters:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Elliott Baron, Path-Sensitive Static Analysis for C/C++&lt;/li&gt;
&lt;li&gt;John Bossons, Wizards to make JPA value objects thread-safe&lt;/li&gt;
&lt;li&gt;Jason van Zyl, m2eclipse and tycho&lt;/li&gt;
&lt;li&gt;Chris Aniszczyk, Understanding and Using Git at Eclipse&lt;/li&gt;
&lt;li&gt;Ian Bull, Managing your eclipse installs&lt;/li&gt;
&lt;li&gt;Kenn Hussey, b3 Aggregator&lt;/li&gt;
&lt;li&gt;Andrew Overholt &amp;amp; Charley Wang, Eclipse Linux Tools project&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&quot;http://overholt.ca/HeliosDemoCamp/007-presenters.jpg.html&quot;&gt;&lt;img alt=&quot;Presenters minus Jason who had to leave early&quot; src=&quot;http://overholt.ca/HeliosDemoCamp/presenters-sm.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It was great to have diversity in both topics of presentation and attendees.  Two attendees came from a long way away &lt;strong&gt;just&lt;/strong&gt; to attend the DemoCamp:  Ian “Ctrl-awesome” Bull from Victoria, BC, Canada; and Alex Kurtakov from Pazardzhik, Bulgaria!  Unlike the &lt;a href=&quot;http://wiki.eclipse.org/Eclipse_DemoCamps_Helios_2010/Guelph&quot;&gt;Guelph DemoCamp&lt;/a&gt; when I asked if there were any C or C++ programmers in the room and got one “sort of” from the back, we had some actual C++ people in attendance!  There was also representation from academia including &lt;a href=&quot;http://senecac.on.ca/&quot;&gt;Seneca College&lt;/a&gt; and the &lt;a href=&quot;http://www.utoronto.ca/&quot;&gt;University of Toronto&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://overholt.ca/HeliosDemoCamp/006-marcelochris.jpg.html&quot;&gt;&lt;img src=&quot;http://overholt.ca/HeliosDemoCamp/marcelochris-sm.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://overholt.ca/HeliosDemoCamp/005-ianbull.jpg.html&quot;&gt;&lt;img alt=&quot;Ctrl-Awesome&quot; src=&quot;http://overholt.ca/HeliosDemoCamp/ianbull-sm.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thankfully it wasn’t too hot this year and no one melted (at least as far as I know).  After the presentations, we enjoyed some refreshments compliments of the Eclipse Foundation; thanks, Lynn &amp;amp; Ralph!&lt;/p&gt;
&lt;p&gt;I’d like to extend a big thank you to the presenters for showing off their wares and to the attendees for spending their evening with us.  Ralph mentioned the European Eclipse Stammtisch gatherings … I wonder if we could get something like that going in Toronto?&lt;/p&gt;
&lt;p&gt;All the photos taken by me available here:  &lt;a href=&quot;http://overholt.ca/HeliosDemoCamp/&quot;&gt;HeliosDemoCamp&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Fri, 02 Jul 2010 16:21:45 +0000</pubDate>
</item>
<item>
	<title>Riccardo Mottola: GWorkspace 0.8.8 released</title>
	<guid>tag:blogger.com,1999:blog-15746899.post-3665555523822462464</guid>
	<link>http://multixden.blogspot.com/2010/07/gworkspace-088-released.html</link>
	<description>&lt;a href=&quot;http://4.bp.blogspot.com/_4TJfaVrgjAU/TCw-1dZMG9I/AAAAAAAAAKQ/9UIYfTbLc2U/s1600/gworkspace_088_neos_grab.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5488831134002060242&quot; src=&quot;http://4.bp.blogspot.com/_4TJfaVrgjAU/TCw-1dZMG9I/AAAAAAAAAKQ/9UIYfTbLc2U/s320/gworkspace_088_neos_grab.png&quot; style=&quot;float: left; margin: 0 10px 10px 0; cursor: pointer; cursor: hand; width: 320px; height: 244px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;GWorkspace 0.8.8 is out! Many thanks to all those who helped with testing or contributed with patches.&lt;/p&gt;&lt;p&gt;GWorkspace is GNUstep's standard workspace manager.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Among the improvements:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;the GWMetadata subproject is now controlled by a configure option. This means &lt;br /&gt;that sqlite is no longer a hard dependency if live folders and search&lt;br /&gt;functionality is not desired. It also means that if selected, it will be really&lt;br /&gt;configured, built and installed (up to now it was manual).&lt;/li&gt;&lt;li&gt;portability issues fixed (SPARC crashes, HURD constants)&lt;/li&gt;&lt;li&gt;builds on Windows (MinGW)&lt;/li&gt;&lt;li&gt;clean-ups and updates in the build system&lt;/li&gt;&lt;li&gt;extensive warning fixing and code clean-up (like header imports)&lt;/li&gt;&lt;li&gt;use standard classes and functions (NSProgressIndicator, info panel...)&lt;/li&gt;&lt;li&gt;improved terminal services interface and interaction&lt;/li&gt;&lt;li&gt;improvements with the detection of optional PDFkit for the PDF contents inspector&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The compulsory screenshot shows GWorkspace running with the Neos theme from GAP.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/15746899-3665555523822462464?l=multixden.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 01 Jul 2010 07:12:13 +0000</pubDate>
</item>
<item>
	<title>Roman Kennke: Tavis Ormandy: Asshole at work</title>
	<guid>http://rkennke.wordpress.com/?p=337</guid>
	<link>http://rkennke.wordpress.com/2010/06/11/tavis-ormandy-asshole-at-work/</link>
	<description>&lt;p&gt;Just some weeks ago this so called security expert (and Google employee) &lt;a href=&quot;http://blog.metasploit.com/2010/04/java-web-start-argument-injection.html&quot;&gt;disclosed security problems in Java Webstart&lt;/a&gt;,today &lt;a href=&quot;http://www.computerworld.com/s/article/9177948/Google_researcher_gives_Microsoft_5_days_to_fix_XP_zero_day_bug&quot;&gt;he disclosed security problem in Windows Help&lt;/a&gt;. The problem is not so much that he discloses security issues, but the way he does it. The pattern seems to be similar in both cases. He notifies the company of the security issue, giving them some time (in Java’s case it was at least a month) and then goes on to publish the full disclosure just a couple of days later for idiotic reasons. This misleads the security teams of the companies in the first place and gives them no realistic chance to address the issue in a timely and professional manner, leaving millions of users vulnerable. Of course since everybody loves Google and hates Microsoft and Oracle, he gets lots of applause for this, which is most likely exactly what he wants. If I were Google I would fire him instead for repeated irresponsible and unprofessional handling of security issues. Rant over.&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/rkennke.wordpress.com/337/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/rkennke.wordpress.com/337/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/rkennke.wordpress.com/337/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/rkennke.wordpress.com/337/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/rkennke.wordpress.com/337/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/rkennke.wordpress.com/337/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/rkennke.wordpress.com/337/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/rkennke.wordpress.com/337/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/rkennke.wordpress.com/337/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/rkennke.wordpress.com/337/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=rkennke.wordpress.com&amp;amp;blog=9951657&amp;amp;post=337&amp;amp;subd=rkennke&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;</description>
	<pubDate>Fri, 11 Jun 2010 14:44:41 +0000</pubDate>
</item>
<item>
	<title>Gary Benson: Shark build passes TCK</title>
	<guid>http://gbenson.net/?p=213</guid>
	<link>http://gbenson.net/?p=213</link>
	<description>&lt;p&gt;An IcedTea build of OpenJDK using Shark passed the Java SE 6 TCK today. Fedora 12, x86_64, LLVM 2.6, icedtea6-7674917fa451.  Dr Fun is here!&lt;/p&gt;</description>
	<pubDate>Thu, 10 Jun 2010 15:16:23 +0000</pubDate>
</item>
<item>
	<title>Roman Kennke: One year at Sun (Oracle)</title>
	<guid>http://rkennke.wordpress.com/?p=332</guid>
	<link>http://rkennke.wordpress.com/2010/05/31/one-year-at-sun-oracle/</link>
	<description>&lt;p&gt;Today marks my first anniversary at Sun/Oracle. Last year at this time I arrived in Santa Clara, then came JavaOne, then came 2 weeks with my new team at the east coast and then came a really cool year working in the deployment team (great people). Lots of things happened, in October Selma (my 3rd child) was born, in January the Sun/Oracle deal was finally approved, some weeks ago we had a pretty bad security issue, etc etc. In Germany, Sun is still Sun (officially) … and I won’t be experiencing Oracle anymore (although I am already experiencing Oracle indirectly through my US collegues). Today I resigned my position at Sun and starting in July I will join &lt;a href=&quot;http://www.jroller.com/dgilbert/&quot; title=&quot;David Gilbert&quot;&gt;David&lt;/a&gt; to work at JP Morgan in Geneva. Sun was a great time and I wish it had lasted longer, but life has different plans with me &lt;img alt=&quot;;-)&quot; class=&quot;wp-smiley&quot; src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif&quot; /&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dilbert.com/strips/comic/2010-05-27/&quot; title=&quot;Dilbert.com&quot;&gt;&lt;img alt=&quot;Dilbert.com&quot; border=&quot;0&quot; src=&quot;http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/90000/0000/700/90731/90731.strip.gif&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/rkennke.wordpress.com/332/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/rkennke.wordpress.com/332/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/rkennke.wordpress.com/332/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/rkennke.wordpress.com/332/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/rkennke.wordpress.com/332/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/rkennke.wordpress.com/332/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/rkennke.wordpress.com/332/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/rkennke.wordpress.com/332/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/rkennke.wordpress.com/332/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/rkennke.wordpress.com/332/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=rkennke.wordpress.com&amp;amp;blog=9951657&amp;amp;post=332&amp;amp;subd=rkennke&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;</description>
	<pubDate>Mon, 31 May 2010 14:11:47 +0000</pubDate>
</item>
<item>
	<title>Jonathan Gibbons: jtreg: old and new</title>
	<guid>http://blogs.sun.com/jjg/entry/jtreg_old_and_new</guid>
	<link>http://blogs.sun.com/jjg/entry/jtreg_old_and_new</link>
	<description>jtreg 4.1 is now available, and one of the new features is a new &quot;agentvm&quot; mode. Here, by way of a short historical review, is a comparison of the new agentvm mode against the existing othervm and samevm modes.

&lt;h5&gt;In the beginning...&lt;/h5&gt;

&lt;p&gt;
The spec for jtreg calls for tests to execute in a scratch directory which can be cleared before every test. Early versions of Java™ did not provide the ability to change the current directory when executing a command in a sub process, and so the first versions of jtreg were split into a complicated shell script and a Java program using the JavaTest™ test framework. The shell script analyzed the command line arguments, determined the scratch directory to be used, and set it as the current directory before finally executing the test harness itself.

&lt;/p&gt;&lt;p&gt;
Even back then, there was support for two modes: &quot;othervm&quot;, being the ability to run every test in its own JVM, different from (other than) the JVM used to run the test harness, and &quot;samevm&quot;, being the ability to run every test in the same JVM used to run the test harness. However, to begin with, the use of &quot;othervm&quot; was strongly recommended, because the risk of tests affecting one another was quite high, and the abilility to recover from over-zealous tests was quite limited. And, although &quot;samevm&quot; was conceptually well defined for running API tests (&lt;code&gt;@run main Foo&lt;/code&gt;, etc) it was less well defined for compilation tests (&lt;code&gt;@compile&lt;/code&gt;, etc) and there is still some legacy code in javac that was added to work around the limitations (e.g. &lt;code&gt;-XDstdout&lt;/code&gt;, to force the compiler to write to the stream used by the jtreg &lt;code&gt;@compile/ref=&lt;/code&gt; option.)

&lt;/p&gt;&lt;p&gt;
&lt;img src=&quot;http://blogs.sun.com/jjg/resource/jtreg-old-new/jtreg2-samevm.png&quot; /&gt;
&lt;img src=&quot;http://blogs.sun.com/jjg/resource/jtreg-old-new/jtreg2-othervm.png&quot; /&gt;

&lt;/p&gt;&lt;h5&gt;And then ...&lt;/h5&gt;

&lt;p&gt;
As jtreg evolved, the maintenance of the wrapper script became increasingly difficult. Eventually, the script was translated into Java code, and merged with the harness itself. However, the issue of the current directory remained an issue, and so after analyzing the command line arguments, jtreg performed a check to see if the JVM being used was acceptable for the execution of the test run itself. This is primarily an issue for samevm mode, when the correct current directory must be set, the correct version of Java must be in use, and so on. If any of the checks failed, jtreg restarted itself using the correct parameters -- the correct version of Java, the correct current directory and so on.  In this case, the Java code was behaving as &quot;a better wrapper script&quot;, and although there were now potentially two JVMs involved, making the name &quot;samevm&quot; somewhat ambiguous, the name of the mode stuck. (Well, the tests themselves were mostly all executing in the &quot;same VM&quot;...)

&lt;/p&gt;&lt;p&gt;
And along the way, samevm mode has been improved such that it is now the recommended mode to use for all the tests in the OpenJDK langtools repositories. To be fair, making that happen has involved changes to the test harness, the tests and in a couple of cases, to the tools themselves. But the payoffs have been substantial, and we can now execute over 1700 tests in just one sixth of the time it would using using othervm mode. (11 minutes vs. 66 minutes on my laptop)

&lt;/p&gt;&lt;p&gt;
&lt;img src=&quot;http://blogs.sun.com/jjg/resource/jtreg-old-new/jtreg3-samevm.png&quot; /&gt;
&lt;img src=&quot;http://blogs.sun.com/jjg/resource/jtreg-old-new/jtreg3-othervm.png&quot; /&gt;

&lt;/p&gt;&lt;h5&gt;But ...&lt;/h5&gt;

&lt;p&gt;
While we have been able to fix the tests in the langtools repositories to use samevm mode, it has not been so easy to find the resources to do the same for the tests in the jdk repositories.  Common problems are tests not closing open files when they exit, and tests trying to set a security manager.  These conditions are not an issue when running tests in othervm mode, but both are problematic in samevm mode.  If files are left open in the scratch directory, on Windows that will prevent the files being deleted, which in turn will cause problems for all the subsequent tests in the test run.  Setting a security manager always been forbidden in samevm because originally it could only be set once anyway, and even now, it is possible to set a security manager that you cannot remove. Together, these and other problems, significantly reduce the number of tests in the jdk repositories that can be run in samevm mode, and that can therefore benefit from the corresponding improvement in performance.

&lt;/p&gt;&lt;p&gt;
Ideally, it would be possible to make sure that most tests can be run in samevm mode. But updating tests is a risky business at the best of times, and even harder when the original authors are no longer available. And so, in practice, it has been easier to improve the test harness...

&lt;/p&gt;&lt;h5&gt;And so...&lt;/h5&gt;

&lt;p&gt;
The new agentvm mode provides a way to work around these problems. It's still a problem if a test leaves open files when run on Windows, or if it sets a security manager that cannot be unset, but with the new agentvm mode, such problems do not affect the rest of the tests in the test run.

&lt;/p&gt;&lt;p&gt;
In agentvm mode, jtreg runs in one JVM and creates JVMs with the required characteristics (version of JDK, directory, VM options) as needed to run the tests.  More significantly, when each test completes, jtreg will do some housekeeping to restore the JVM involved and the scratch directory to a standard initial state.  If any of the housekeeping fails for any reason, the JVMs are allowed to exit. But if the housekeeping is successful, the JVMs are kept available for reuse by any subsequent tests that need JVMs with the same characteristics.  

&lt;/p&gt;&lt;p&gt;
Thus, for &quot;well-behaved&quot; tests, agentvm mode will provide similar performamce to samevm mode, because there will not be any overhead to create a new JVM for each test. But, for less well behaved tests, agentvm mode will automatically degrade to something more like othervm mode, starting new JVMs as necessary for each test.

&lt;/p&gt;&lt;p&gt;
How many JVMs does jtreg use in agentvm mode at any time?  Typically, just two: one to run the test harness, and one to run the tests. That's the same as samevm mode, except it's better, insofar as the JVM used to run the tests will be restarted if there are any problems. There may be three, because agentvm mode allows us to relax the restrictions inherent in samevm mode about not allowing different JVM options or even versions of Java for the compilation and execution of tests. It can do this while still retaining the performance of samevm mode, by creating and using different agent JVMs with the appropriate parameters.

&lt;/p&gt;&lt;p&gt;
Thus, with agentvm mode, it is now possible to compile tests using a standard JVM but to execute the compiled classes with special VM options, such as for profiling. Previously, this combination was only possible with othervm mode.

&lt;/p&gt;&lt;p&gt;
And, with agentvm mode, it is now possible to compile tests with a standard version of JDK, and to execute the tests using a version of the Java platform that does not include javac.  Previously, jtreg could only test versions of the Java platform that included javac.

&lt;/p&gt;&lt;p&gt;
Note: if any tests are explicitly marked /othervm, they will obviously be run in their own JVM, separate from the reusable JVMs used for the rest of the tests. 

&lt;/p&gt;&lt;p&gt;
To try out the new agentvm mode, just use the &lt;code&gt;-agentvm&lt;/code&gt; option instead of &lt;code&gt;-samevm&lt;/code&gt; or &lt;code&gt;-othervm&lt;/code&gt;. Or, if you have scripts or Makefiles already set up to run jtreg in samevm mode, there's a backdoor environment variable you can set to use agentvm mode instead, until you're ready to commit any change to your script or Makefile: just set &lt;code&gt;JTREG_USE_AGENTVM_FOR_SAMEVM&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt;.

&lt;/p&gt;&lt;p&gt;
&lt;img src=&quot;http://blogs.sun.com/jjg/resource/jtreg-old-new/jtreg4-agentvm.png&quot; /&gt;
&lt;img src=&quot;http://blogs.sun.com/jjg/resource/jtreg-old-new/jtreg4-agentvm2.png&quot; /&gt;

&lt;/p&gt;&lt;h5&gt;Finally...&lt;/h5&gt;

&lt;p&gt;
Note that when you use agentvm mode, it doesn't make the problems of running a test in samevm mode go away -- it just makes jtreg better able to identify and then tolerate such issues. When issues occur, the performance will degrade to similar to that of othervm mode.  To keep the performance up to the level of samevm mode, the issues in the tests reported by jtreg will still need to be fixed. But that's a different story...

&lt;/p&gt;&lt;hr /&gt;
&lt;small&gt;Thanks to &lt;a href=&quot;http://blogs.sun.com/darcy&quot;&gt;Joe Darcy&lt;/a&gt;
and &lt;a href=&quot;http://blogs.sun.com/alanb&quot;&gt;Alan Bateman&lt;/a&gt; for their feedback on this note.&lt;/small&gt;</description>
	<pubDate>Fri, 28 May 2010 01:56:12 +0000</pubDate>
</item>
<item>
	<title>Jonathan Gibbons: jtreg 4.1</title>
	<guid>http://blogs.sun.com/jjg/entry/jtreg_4_1</guid>
	<link>http://blogs.sun.com/jjg/entry/jtreg_4_1</link>
	<description>&lt;p&gt;
There is a new version of jtreg available, 4.1, with a number of useful new features. Most of these are to do with the way that jtreg runs tests, but one feature, limited support for &lt;a href=&quot;http://blogs.sun.com/jjg/feed/entries/atom#JUnit&quot;&gt;JUnit tests&lt;/a&gt;, involves a spec change for the test descriptions, which means that this new version of jtreg will be required to run any testsuites that include such tests.

&lt;/p&gt;&lt;p&gt;
jtreg can be downloaded from the &lt;a href=&quot;http://openjdk.java.net/jtreg&quot;&gt;OpenJDK jtreg page&lt;/a&gt;.



&lt;/p&gt;&lt;h5&gt;New &quot;agentvm&quot; mode&lt;/h5&gt;

&lt;p&gt;
Up to now, jtreg has provided two ways of running tests: in &quot;othervm&quot; mode and in &quot;samevm&quot; mode. In &quot;othervm&quot; mode, a new JVM is created for each action that needs it. This provides the maximum isolation between tests, at a very high cost in performance.  In &quot;samevm&quot; mode, all Java actions are run in the same VM, which provides high performance at the risk of tests being able to affect the behavior of any subsequent tests. In some cases, a bad test can prevent all subsequent tests from being able to execute.

&lt;/p&gt;&lt;p&gt;
Problems can arise when setting a security manager such that it cannot be removed when a test completes, or failing to close any open files in the scratch directory, which on Windows means they cannot be deleted before the next test runs.

&lt;/p&gt;&lt;p&gt;
&quot;Agentvm&quot; mode is a new mode that is &quot;like samevm mode, but better&quot;.  JVMs created to run tests will be reused for subsequent tests provided that the jtreg harness can successfully perform a certain amount of cleanup after each test. If ever the cleanup fails, the corresponding JVMs will be terminated, and new ones will be started if necessary for any subsequent tests.

&lt;/p&gt;&lt;p&gt;
In &quot;samevm&quot; mode, because the same JVM is used for both test compilation and test execution, it is not possible to specify JVM options to be used just when executing a test. This restriction is not necessary in &quot;agentvm&quot; mode, and separate JVMs will be created if needed for any actions requiring different JVM characteristics. Assuming the cleanup after a test is successful, all the JVMs used by a test will be saved for reuse by later tests that may need JVMs with those same characteristics. However, if any of the cleanup fails, all the JVMs used by the test will be terminated, because in general it is not possible to determine which of the JVMs may have been at fault.

&lt;/p&gt;&lt;p&gt;
The new mode can be selected with the &lt;code&gt;-agentvm&lt;/code&gt; option.  For those situations where &quot;samevm&quot; mode is currently being used, it is also possible to select the new mode by setting the environment variable &lt;code&gt;JTREG_USE_AGENTVM_FOR_SAMEVM&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt;. This may be convenient if you don't have easy access to the command line used to invoke jtreg.

&lt;/p&gt;&lt;h5&gt;Better links in HTML report files&lt;/h5&gt;

&lt;p&gt;
When jtreg writes HTML report files, it creates links from the report to files in the work directory, and these links could easily be broken if the files in these directories were moved. jtreg now checks if the report directory and work directory are &quot;closely related&quot;, meaning they are the same, or one is a parent of the other, or if they have a common parent.  In these cases, jtreg will use relative links from the report files to the test result files in the work directory, so that if the two directories are moved together and their relative relationship is retained, the links will remain valid.


&lt;/p&gt;&lt;h5&gt;&lt;a name=&quot;JUnit&quot;&gt;JUnit&lt;/a&gt; tests&lt;/h5&gt;

&lt;p&gt;
Limited support has been added for running JUnit tests. Tests still require a standard jtreg test description, but you can use a new action &quot;&lt;code&gt;@run junit &lt;/code&gt;&lt;i&gt;classname&lt;/i&gt;&quot;, which will invoke the test in the manner of JUnit 4. The class will be compiled if necessary, or it can be compiled explicitly in the standard way with the &quot;&lt;code&gt;@build&lt;/code&gt;&quot; and &quot;&lt;code&gt;@compile&lt;/code&gt;&quot; actions.  (Thanks to &lt;a href=&quot;http://blogs.sun.com/jrose&quot;&gt;John Rose&lt;/a&gt; for providing this feature.)


&lt;/p&gt;&lt;h5&gt;Separate compilation: &lt;code&gt;-compilejdk:&lt;/code&gt;&lt;i&gt;jdk&lt;/i&gt;&lt;/h5&gt;

&lt;p&gt;
Up to now, jtreg has only been able to test versions of JDK, or more accurately, versions of Java that include the compiler javac. jtreg now has a new option to specify an alternate JDK to be used for any @compile actions in a test. This includes all implicit @compile actions as well. This means that jtreg is now able to test versions of the Java platform that do not include javac.  

&lt;/p&gt;&lt;p&gt;Notes:
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;
If the &lt;code&gt;-compilejdk&lt;/code&gt; option is not used, the same version of Java used to compile and run the tests, as now.
&lt;/li&gt;&lt;li&gt;
Previously, if no version of Java to test was specified on the command line, the value defaulted to the version of Java used to run jtreg. If this value was a JRE embedded in a JDK, the JDK was used instead.  Now, if &lt;code&gt;-compilejdk&lt;/code&gt; is specified, the preference to use a JDK instead of the embedded JRE is no longer required. If in doubt, always do one of the following:
&lt;ul&gt;
&lt;li&gt;specify &lt;code&gt;-testjdk&lt;/code&gt; for the JDK used to compile and run the tests
&lt;/li&gt;&lt;li&gt;specify &lt;code&gt;-compilejdk&lt;/code&gt; for the JDK used to compile the tests, 
and &lt;code&gt;-testjdk&lt;/code&gt; for the JDK or other version of Java to run the tests
&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;
Some shell tests invoke the compiler directly, using the value in the TESTJAVA environment variable. (For example, &lt;code&gt;${TESTJAVA}${FS}bin${FS}javac -d classes HelloWorld.java&lt;/code&gt;.) jtreg provides a new environment variable, COMPILEJAVA, which will be set to the value of &lt;code&gt;-compilejdk&lt;/code&gt; if it was specified, and &lt;code&gt;$TESTJAVA&lt;/code&gt; otherwise. If the tests in a testsuite might be run with &lt;code&gt;-compilejdk&lt;/code&gt; set, any shell tests using &lt;code&gt;$TESTJAVA&lt;/code&gt; to access the compiler should be updated to use &lt;code&gt;$COMPILEJAVA&lt;/code&gt; instead.
&lt;/li&gt;&lt;/ul&gt;

&lt;h5&gt;Improved path handling&lt;/h5&gt;

&lt;p&gt;
In various situations, jtreg creates or modifies search paths, such as a classpath or sourcepath, for use in the actions of a test. Previously, jtreg did not check whether the components it was adding to a path actually existed, and this could cause problems for some tests that checked the contents of these paths (for example, with the javac &lt;code&gt;-Xlint&lt;/code&gt; or &lt;code&gt;-Xlint:all&lt;/code&gt; options.)  Components to be added to a path are now checked to verify they identify an existing file or directory.


&lt;/p&gt;&lt;h5&gt;Future source&lt;/h5&gt;

&lt;p&gt;
The &lt;code&gt;@compile&lt;/code&gt; action now checks the modification time of source files to be compiled, and gives a warning if the last modified time is in the future.


&lt;/p&gt;&lt;h5&gt;New option &lt;code&gt;-allowSetSecurityManager&lt;/code&gt;[&lt;code&gt;:&lt;/code&gt;&lt;i&gt;value&lt;/i&gt;]&lt;/h5&gt;

&lt;p&gt;
jtreg now allows tests in samevm mode and the new agentvm mode to set the security manager. (It was always possible to set the security manager in othervm mode.)  If the security manager cannot be reset when the test completes, then in samevm mode, verbose messages will be printed directly to the console output, and in agentvm mode, the test's JVM(s) will be terminated. Acceptable values are &lt;code&gt;yes&lt;/code&gt;, &lt;code&gt;on&lt;/code&gt; or &lt;code&gt;true&lt;/code&gt; and &lt;code&gt;no&lt;/code&gt;, &lt;code&gt;off&lt;/code&gt; or &lt;code&gt;false&lt;/code&gt;. The feature is enabled by default; use &lt;code&gt;-allowSetSecurityManager:off&lt;/code&gt; to disable it.


&lt;/p&gt;&lt;h5&gt;New suboption for &lt;code&gt;-retain&lt;/code&gt;&lt;/h5&gt;

&lt;p&gt;
The -retain option allows you to specify which files in the scratch directory should be retained when a test completes. The default (when the option is not specified) is to leave the files in the scratch directory until the beginning of the next test (if any.)  This is convenient when running a single test, but is not convenient when there is a problem cleaning up any files at the beginning of the next test -- by then, the identity of the test that created the files has been lost. 

&lt;/p&gt;&lt;p&gt;
A new suboption is now available for &lt;code&gt;-retain&lt;/code&gt;: &lt;code&gt;-retain:none&lt;/code&gt;. With this option, all files remaining in the scratch directory when a test completes will be removed immediately. Any problems that may arising in deleting these files will cause the test to be reported with an ERROR result.


&lt;/p&gt;&lt;h5&gt;&lt;code&gt;-classpathappend&lt;/code&gt; in samevm mode&lt;/h5&gt;

&lt;p&gt;
The &lt;code&gt;-classpathappend&lt;/code&gt; option did not work in samevm mode, and has now been fixed.


&lt;/p&gt;&lt;hr /&gt;

&lt;small&gt;Thanks to &lt;a href=&quot;http://blogs.sun.com/darcy&quot;&gt;Joe Darcy&lt;/a&gt;
for his feedback on this note.&lt;/small&gt;</description>
	<pubDate>Fri, 28 May 2010 01:50:14 +0000</pubDate>
</item>

</channel>
</rss>
