As others have posted, this is indicative of bad code. Java can certainly leak memory in the form of retained live references.
> Of course you shouldn't be using version 1.2.3.4.5, our code only works with 1.2.3.4.4, everybody knows that.
That's completely independent of the language or runtime being used, and is purely a project management issue (which breaking changes go into which version).
> that only runs on an obscure 6-year-old JVM
If there is code that imports classes specific to a JVM (com.sun, etc), then that code is doing something pretty much universally agreed on in the Java community to be a 'bad thing'. Otherwise, bytecode from Java 1.0 still runs on the latest JVM without issue.
You can use any language or runtime badly. There is a lot of code out there written in Java, and a lot of 'commodity' Java developers writing it. Of course there is going to be a greater volume of bad code, that's not an indictment of the platform itself.