Java heap space error caused by linked hashmap of jar_cache file?

Hello guys!
I’ve been working on openfire server and already managed to make it work,but recently I received Java heap space error:out of memory as about once a day,every time the server hangs without response.
I dumped and researched it in my jvm and found there are some clues:


The red bars stand for the memory they are allocated;
As far as I can see the map spend too much memory on those jar_cache file entities and does no gc on it!But I noticed those cache files are normally created and recycled and spend little space on disk…I just don’t know where the map is maintained and where should i start to fix this.
Any suggestions?