New memory model and GC
On the server side multiple applications run inside the same VM. They are separated by the class loader but they share the same memory heap. That means that one memory consuming application can nearly stop a server.
On the other hand the garbage collection stops the whole server for a noticeable time. Even well configured servers with a heap of 1GB or more stop working for a second and more. IBM has measured pause times of 8 minutes on their large system. A server must be able to give an answer within 100 milli seconds or it is useless for a wide area of applications.
A new memory model could solve these issues. Objects of different classloaders are incompatible, why not use a seperate heap for every classloader? Since the GC time heavily depends on the heap size this may reduce down times and solves the protection issue. There are some problems to solve to get that going but I think it is necessary for a reliable server.