well if java server can handle 5k+ players without lags caused by java performance, there is no problem with java server. Actually it is much better, because you can quickly patch bugs, customize server etc.. Java uses JIT compiling to native instructions and other JVM features, so the performance difference is getting smaller and smaller. Yes, good C++ programmer can always overperform the Java, but i bet PTS L2 server wasn't writted by those guys. PTS is better only if you have original files and want offic like without customizations. For better performance, Java server should make DB operations asynchronnous when possible, because IO operations are slow (look at node.js). I think in PTS server, there is something called CacheD, which handles those async DB operations.
The problem with java server is that you need someone who is very interrested in L2 and has very good IT/programming knowledge, which is very hard to find. All these guys i know are just normal guys with little knowledge of programming in Java, but nothing more.