Open JDK

Saw Is Sun's Bug Fixing Policy a Failure or Success? which refers to Horrible JComboBox regression in b99 with WindowsXP L&F ... There's a whole lot to this discussion to consider. What I want to talk about is the difficulty of finding bugs in rendering graphics (like a GUI). I've written on this topic before: Automated visual verification is hard
This regression is an example of the...

Recently my friend Ed Bennett died. I'd lost track of him, and it was interesting that I learned about his death because of a comment left for me on this blog. He and I had in the 1980's led an open source project which I've written about before. Over the weekend a memorial service was held for him, and I learned something which is intriguing me.
Ed was quadrapalegic due to a skiing accident...

When you want to add features to a language
without breaking backward compatibility,
a widespread idea that you can't add new keywords.
That is why we can currently see weird proposal in Java space
that try to reuse old keywords to express
new kind of abstraction, by example,
synchronized (closure v0.2 section 3) or (Neal Gafter blog about for).
Why introducing a new keyword breaks...

Just thought I'd touch on a subject that some people forget about
when having to build products that will run on many different
machines.
Building and testing on a single machine is easy, building bits
that need to run on dozens of different machines is the hard part.
Test machines and Build machines are different.
Ideally you WANT to test on any and all machines you can get your hands
on, but...

Neal proposes to use for to tag methods that take
a synchronous closure as parameter and to call this new kind
of method.
It's better than to use synchronized
as proposed before but (there is always a but :) i see two drawbacks.
First, for is used to tag the whole method
and not one of its parameter
so there is no way to define a method that
takes a synchronous closure and an...

Mark Reinhold: Source-code management for an open JDK, Kelly O'Hair: Teamware, Mercurial, and SCCS revs that go bump in the night and Martin Englund: Migrating from TeamWare to a new SCM have posted a series of blogs (linked above) talking about the source code managment thinking as we move to the open JDK project.
I don't have much to add to what they've said. I just wanted to give them a...

As seen in Mark's recent blog on the JDK and
Source Code Management (SCM) solutions at
http://blogs.sun.com/mr/entry/openjdk_scm,
you can see that we are finally looking at converting to a new SCM.
Inside Sun the historic and
most common SCM used has been Teamware.
The Sun Workshop
product had delivered Teamware with it's compilers and tools
for many releases, but the newer Sun Studio...

This is the title of an excellent new blog entry from my teammate Luis-Miguel Alventosa. It's an exhaustive description of the principal options that are open to you to configure the security of RMI connectors for JMX agents.
http://blogs.sun.com/lmalventosa/entry/jmx_authentication_authorization

Anybody interested in the JDK 7 planning should go to Danny Coward's recent blog posting: Channeling Java SE 7. It's a good overview of the planning, of the planning process, some of the high level themes and directions that we intend to take with the next major release of the JDK.
Doing the planning for a Java release is a very complicated process. As Danny says, it involves input from...

When the foreach syntax (for(:)) has been
introduced in 1.5, a recurring question was
why foreach is not able to
iterate using an iterator.
I think i have a trick to do that using the
syntax of the closure :
Iterator&lt;String&gt; scanner=new Scanner(System.in); for(String word:() { scanner }) System.out.println(word);
Why this code works. The foreach statement...

Thanks to everyone that provided suggestions and tips for installing Ubuntu and JDK 5.0. I am happy to say that JDK 5.0 installed easily enough when I followed the rules precisely. If you're going to try this, you'll need to follow the JDK distro instructions for Ubuntu. There were no big glitches during the installation, but I was surprised that I had to put the JDK document zip file in the /tmp...

As seen in Neil Gafter's blogs, there are two rival proposals
about adding closure to Java language.
The first one, named v0.1, introduces a new kind of
type, function type in order to express the type of a closure.
The second one, named v0.2, enables to use
interface as type of closure.
The goal of this entry is to show the pro and cons of the
two proposals.
Let me take an example...

A new version of the closure proposal
has been post at the end of this week by Neal Gafter
and proposes in section 3 to tag parameter
with a special keyword to differenciate between
synchonous and asychronous closure.
For me this section contains two flaws, the first one is that
the keyword used is synchronized, the second one
is to not recognize that such feature can be usefull in...

Hey Everybody, thank you for the great comments and discussion on my previous posting. I have one aspect to the question I'd like to raise.
Like I said, we have an internal bug system. The current Bug Parade is derived from that internal bug system. The new bug system would also need to interface with the internal bug system. It seems like it wouldn't work very well to have two independant...

In my last post, i've described how to use jrunscript to
create a build script.
As olivier wrote in the comments, the build process is usually
a dependency graph and jrunscript doesn't do that by default.
But javascript is far more powerful than XML
thus it's easy to create commands that enable to declare
dependencies betweeen functions as Ant or make does.
I propose the following...

I did a little blogging on JPRT at
http://blogs.sun.com/kto/entry/jprt_sun_hardware_is_so
but that was mostly to talk about the COOL rack of
Sun hardware that I used. Now I want to talk a little more about
why we need something like JPRT, and what it does for us.
I've been working on this JPRT project for quite some time now,
so I've kind of lost touch with the real world lately.
Ronald...

The JDK6 provides a new command jrunscript
that enables to execute script shell in Java environment.
By default, jrunscript uses javascript as scripting language
and provides some useful default functions like cp, cd, cat, etc.
These global functions seem designed to ease the creation of
build scripts, so i propose to show the basics of how
to write such scripts.
First, the script...

Hi all, as we're getting ready to start launching the open sourced JDK project we have a number of questions that are being pondered. The question at the top of my mind today is the bug tracking system. I would like to open up some discussion with you people as to what you find useful in a public bug tracking system.
One of the things I found is this book: Producing Open Source Software which...

I'm on the front page of java.sun.com with an article derived from my blog entries on MXBeans. Janice Heiss helped me reformat these entries (two blog entries plus an extended blog comment) into the article you see today.

In a previous entry, i've written about declaring a method
that doesn't return normally using null,
the type of null, as return type.
A comment from Neal Gafter make me realize that i was wrong
but i now think the closure spec is wrong too.
What the closure proposal says is that a function that doesn't
return normally should use null.
Not the converse, so i agree with neal that a...