Java and Java Open Source projects
The quantity and quality of Java Open Source projects could be it worst enemy.
Russell Beattie said it quite well. There are too many options in the Java world, and even if they could be better than the .NET ones, this is not good for Java. One of the biggest fears any developer/IT manager/CTO has, is to build applications on top of technologies that won't succeed, and there is no room in the future for 5 persistence engines, 5 web application development frameworks, etc.
On the other hand, the 'safe bet', that would be the 'standard' J2EE set of technologies is being challenged with these Open Source projects, so it's not clear that is _that_ safe. These open source projects are very appealing for developers, who are the ones that usually make development platforms succeed.