One of the shiniest new feature of Java 5.0 (aka Java 1.5) is a rich set of concurrent programming classes in java.util.concurrent (aka JSR 166), much of which is a direct port of Doug Lea's Concurrent Programming in Java library. Since I don't have the luxury of using Java 5.0 yet, I've resorted to using Doug's original library which is, for the most part, functionally equivalent to java.util.concurrent but not close enough for comfort, particularly since concurrency code tend to be very sensitive to minor changes.
The good news is that Dawid Kurzyniec backported java.util.concurrent package to run under Java 1.4 and made it available as open source. Apparently Sun is letting this happen because it's own code is based on Doug's open source library.
There are some shortcomings but nothing much to cry over. My only complaint is that it doesn't use the java.util.concurrent package name which means I'll have to update the package names later (simple but still change nonetheless). But that I can see the technical and legal issues preventing that from happening. I am just glad someone did this.