I constantly detect OOM in PermGen for my environment:
I know about String.intern
You typically get this error when redeploying an application while having a classloader leak, because it means all your classes are loaded again while the old versions stay around.
There are two solutions: