February 2007

Just got back from FOSDEM 2007 in Brussels; it was really nice to meet you all and put some faces to all those nicks I’ve seen on IRC. I see Steph already put up some great pictures from the event, and that Simon’s keynote is on-line as well. I have a few things on my own camera as well, that I’ll hopefully get round to pulling off too later.

The main subject of this blog is something I wanted to post about before I left, but didn’t get chance (I really should update this thing more often– it seems I’ve had over 1000 horrible spam messages since I last played with it). It seems the Fedora team are heading for Core 7 fairly soon, and only realised recently that this will include the new gcj with 1.5 support; great news Or it least it would be if this didn’t mean those guys ended up being the first ones to take the thing public, and thus found bugs that had been lurking on the generics branch for a while…

It also sees some of my management work going out in a release, which I wasn’t expecting until Classpath 0.94. Some of it really needs more testing, and this means it ended up getting dumped on the Fedora team… whoops. My apologies and thanks to them for this, and in particular, Gary Benson, who has found and patched a number of bugs in that code while trying to get it working with Tomcat.

The most strangest of these highlights an interesting issue with Java’s typing. If you pass a character to a method, and it turns out that there isn’t a version of the method that accepts a character, but does accept a larger integer type (such as int), then the character will be safely cast to that type by the compiler.

Some of my management code fell over this when instantiating a StringBuffer, which can’t be instantiated with a single character (strangely), but can take an integer as its initial size. So my call to new StringBuffer(‘”‘) was allocating a buffer of length 34 rather than setting up a new buffer containing the character ‘”‘. It’s an interesting issue, and it makes me wonder if this has cropped up before. It would be nice if StringBuffer got an additional constructor which does take a character in order to solve this.