In an interesting article about GAE, Dmitriy Setrakyan points out several limitations of the new Java support in the Google App Engine. Most importantly:
1. You have no control over number of deployment instances.
2. You have no control over load balancing
3. You cannot use any of the existing clustering infrastructure you have
What this means practically is that the GAE is not suited for deployment of large-scale distributed applications, where fine-grained control over how jobs are split and distributed or how threads are managed is necessary.
This doesn’t mean it will not come one day, and I doubt that Google will (forever) leave this part of the market to Amazon. But for now the GAE/J is best for deploying web apps that don’t care about how their infrastructure is managed, only that it is available.