Monday, April 30, 2007

Apache JAMES Server 2.3.1 released

The Apache JAMES project is happy to announce the final version
of JAMES Server 2.3.1. This is a bugfix release. You should upgrade as soon as possible.

JAMES Server 2.3.1 can be downloaded at:

The bugfixes / tasks since 2.3.0 are:

* Remove from docs
* OOM caused by unbounded cache in InetAddress (was James leaks memory slowly)
* doesn't handle multiple TO-recipient
* crashes on line "from_addr = os.environ['USER'] + '@' + socket.getfqdn()"
* ServerConnection doesn't properly handle the TCP/IP backlog
* Search & Fix broken links on the new website
* MBoxMailRepository.remove(String key) causes ClassCastException
* Failure to correctly set mail.smtp.localhost leads to mail servers
being listed on and mail being rejected by Spamhaus.
* MailAddress not check for valid syntax if new MailAddress(user, domain) is used
* use localhost to connect to local smtpserver. We should use
* exporting variables using on solaris breaks
* James will not start if there is directory with too many files and folders in the repostiory path
* python/ is not added to the binary distribution package

* Update license headers to follow the latest ASF requirements as of November the 1st
* Merge 2.3.0a1 to 2.3.0 final releases on JIRA
* Upgrade dnsjava to 2.0.3 when available
* Add documentation for the dns ttl issue
* Make sure our container use an expiration for cached dns data

For more information see the changelog page.

Apache James Team

Apachecon Flickr Group

I find it difficult to track down everyone's Apachecon pictures on flickr, tags are OK but not brilliant for this so I've created an Apachecon group on flickr at

If you are attending any Apachecon feel free to join the group and post your pictures, the more the merrier.

Apachecon. Get yours at

Monday, April 23, 2007

Cows go out

Petal, originally uploaded by ki113rb33s.

As a shamless excuse for blogging another of my photos you might like to know that the dairy farmers round my house have turned their cows back out to the grass after spending the winter indoors.

Welcome back girls.

Friday, April 20, 2007

UK tests Moon lander technology

According to the bbc, that is, see here .
I was slightly disappointed to see that its all in the passe "nasa" style of 1980's white and bare metal. I'd kind of hoped for a more victorian retro mahogany and brass effect. But that's probably because I just finished reading "The Witches of Chiswick" this morning, which has a similar theme to "The difference engine" but way more British and a quite a bit sillier, though none the less clever for that, and much more unputdownable (if there is such a word ;-).

Thursday, April 19, 2007

Democracy is getting sooo complicated...

I'll be at Apachecon EU 07 on May 3rd when Scotland goes to the polls, so I've filled out a request for Nikki to be my proxy, like a good citizen should.

The hard part has been working out, with two different proportional representation (PR) voting systems in action, how to explain how I want her to cast my votes. We have the Additional Member System in place for election to the Scottish Parliament, which has two ballot papers, and Single Transferable vote (STV) for council elections. That means three ballot papers, and the STV one requires us to rank the candidates in order of preference, whereas the others are of the traditional "X" in the box variety.

Whats more I see that there are now concerns about the electronic vote counting machines.

However If you live in the Tarbolton/Symington/Craigie area of South Ayrshire make sure to put Sam Gardiner "1" for the council, failing that make him "2", or "3" etc. (I'm sure that you can see a pattern emerging)
IMHO, and judging from what I can see around me, local issues are no place for party politics.

Sadly I also think that STV removes some of the direct local accountability that first past the post elections enforce.

Ah well, at least we do get to vote, and can be reasonably comfortable that there won't be rioting , ballot rigging (if the machines actually work), voter intimidation (other than that caused by the complexity of the task!), or a military coup.

Wednesday, April 18, 2007

Quote of the [specify timeperiod]


Nikki said "You get the champagne I'll get the hamsters"

Tuesday, April 17, 2007

Apache James at Apachecon US 2007

Well the Call For Papers for Apachecon US 2007 is now open:

  • The Call for Papers is now open for ApacheCon US, to be held November
  • 12-16 at the Peachtree Westin, Atlanta. The conference will consist
  • of two day of tutorials (November 12-13) and three days of regular
  • conference sessions (November 14-16).
  • Please log in to the website at
  • to submit your proposal.
I've submitted the talk on James which I'm giving in Amsterdam on May 2nd.

JSR-000313 Java Platform, Enterprise Edition 6 Specification - Withdrawn

A couple of days ago I got this email on the JCP interest list:

This JSR seems to have had attracted some positive interest not least, I suspect, because the stated goals included:
  • "the Java EE platform has fostered a vibrant community and marketplace for additional technologies, frameworks, and applications that work with the platform. Some of these provide facilities that are missing from the platform. Others provide alternatives to platform facilities. A major theme for this release is to embrace and support those technologies as part of the overall Java EE landscape, while also continuing to simplify the platform to better target a wider range of developers. To that end we propose two goals for this release - extensibility and profiles"
This seemed to indicate that JEE was about to mature into something which could accept some competition, allow more freedom for architects to build things they way they want to within JEE, and simultaneously resolve the obsolescence and bloat which was becoming apparent by providing alternative distributions based on the needs of targeted application types, e.g
  • "... the first version of a Java EE Web Profile - a subset of the Java EE platform targeted at web application development.".

It seems from the vote comments that this has been a victim of concerns over IP, For example SAP said:
  • "We will need to get more clarification for the new proposed license terms which seem to require a license fee per Java EE profile. If this means a fundamental change in the Java EE licensing model, SAP may decide to vote "NO" on this JSR based on the proposed license terms. "
and it seems in part to have been fuelled by the ASF's position on the Java SE TCK, Red Hat said:
  • "The spec lead of the EE6 specification has confirmed that the EE6 TCK would contain no "field of use restrictions", as originally raised by Apache with regard to another JSR (i.e. the SE TCK licensing). That is a good thing.

    However, in the absence of an explicit JSPA rule that would forbid such field-of-use restrictions, we will remain worried that a similar issue might resurface anytime, for any JSR.
We all know that there's a big gap between intention and execution, and JEE 6 might not have been the universal panacea it hoped to be, but take a second to join me and lets cross our fingers and hope that the value of the changes proposed in this JSR are not lost just because we're having another IP turf war.

Monday, April 16, 2007

Still having trouble with ClassCastException?

Photo Sharing and Video Hosting at Photobucket
ClassCastException is still the most common search term that sends people to this blog, although "swim across the atlantic ocean" is about to overtake it thanks, I can only guess, to fans of Detroit Roller Derby (don't ask ...).

So to be helpful to those readers who are not from Michigan I thought I'd clarify things as much as I can, be warned though it isn't much.

Because Sun's spec doesn't enforce a requirement for ClassCastExceptions to show the classes of the objects which you are trying to cast (see this earlier post) it is normally only possible to make any sense of a ClassCastException by reading the source code, and you really need to attach a debugger and examine the object that your programme is trying to cast before you can start to figure out why it won't work.

If your object seems to be of the correct class the problem is probably related to ClassLoaders, this article explains succinctly why that happens.

Sometimes, if you're smart, you can make a smart guess.

Sometimes (more often if programmers will take my advice) the exception message will tell you, but don't count on it.

If you are seeing a ClassCastException being thrown by a product you have installed then you need to check its documentation.

If the documentation doesn't help then you need to get help from the people who wrote it.

Gmail atom feeds - per label

I just discovered that adding a "/label-name" to the end of the Gmail Atom URL ( gives you a feed of the unread mail just for that label.

Just what I always wanted.

Up 'till now I didn't bother with the feed because the noise to signal ratio was off the scale, but
now I can have a feed of only the things which make it into my "@personal" label. (With this URL

Surprisingly I didn't find this documented anywhere.

Now if I can find a feed-reader for my phone I might, finally, be able to overcome the problem of having too much mail for my phone to handle. In the words of the Dead Kennedys Give me convenience or give me Death.

On the other hand I don't think I'll bother, I don't want to become as socially dysfunctional as a crackberry addict.

Wednesday, April 11, 2007

Apache James at Apachecon EU 2007

While I'm blogging I ought to tell you that I finished, and submitted, the slides for my talk on Apache James at Apachecon EU 2007 and let me tell you, if you like diagrams you're in for a treat!

Now I need to put some polish on the lyrics.

Ain't it a weird new world we live in...

P1010742, originally uploaded by lilangus.

My kids spent last night with my mum and her man, and I haven't seen or heard from them yet, 'cos I'm at work.

How weird, then, that I should find out what they've been up to today via this damned internet thing before I get home to see them.

To paraphrase Professor Hubert J. Farnsworth; What did you expect? We're living in the future.

Swim Across the Atlantic ocean 3,462 miles

Out of idle lunchtime curiosity I was aimlessly surfing the web when I came across the Detroit Derby Girls site, I thought roller derby was dead and gone, but seems its coming back again.

Anyhow, I thought I'd see if they had merchandise which I could buy from my desk in Scotland. Though quite what for I can't imagine. The merch. is available from Detroit Threads (in Hamtramck, MI.)
(BTW If you're passing send me something suitable for a bloke who wears a small in tee shirts...)
But the threads' website isn't an online shop.

So, I thought I should find out how to get there from here, naturally, and I clicked the "map" link in the threads' web page.
That goes to and I chose to get directions from my office, this is what I got.

It starts weirldy enough in the lane out the back, and not in the street. Then in great and precise detail it sends me the length of the UK, and across from Dover to Boulougne and on to Le Havre on Atlantic coast of France.
Then it surpasses itself, at instruction 40, telling me to "Swim Across the Atlantic ocean 3,462 miles". Nice.

But what's perplexing me now is how they can tell that it'll take me "About 30 days"...

If you're still reading this rubbish you can see some nice photos of the Detroit Derby Girls in action here.

I know nothing, I'm not a fortune teller, and you'd be insane to think that I am. This disclaimer was cribbed from an email footer I once received. It is so ridiculous I had to have it for myself.

Statements in this blog that are not purely historical are forward-looking statements including, without limitation, statements regarding my expectations, objectives, anticipations, plans, hopes, beliefs, intentions or strategies regarding the future. Factors that could cause actual results to differ materially from the forward looking statements include risks and uncertainties such as any unforeseen event or any unforeseen system failures, and other risks. It is important to note that actual outcomes could differ materially from those in such forward-looking statements.

Danny Angus Copyright © 2006-2013 (OMG that's seven years of this nonsense)