This is a Java-related problem that we cannot fix. It's related to memory fragmentation: Java can reserve a specific amount of memory from the system. In the beginning, you can picture it as a huge solid block. Every time you try to load a specific file, a small percentage of this block will be separated and given back, but can never be attached to the solid block again. This is how the block will get separated on and on. Now, if the game wants to load a graphic that requires more memory than the separated block has to offer, it crashes. We already reserve most of the block for the game that we can get from the system to begin with. That's all we can do, as this is a very specific Java problem.
We cannot solve this issue because we do not have control over how Java manages the memory.
We suggest you close all other applications and restart the game.
Hopefully this explains the situation for you. We apologize that we cannot help you with this issue more.
In the near future, the game will be updated to a new engine, which will make all Java-related issues irrelevant.