}
protected void freeEvenMoreMemory(long freeMemory, long totalMemory) {
//Empty some caches... Drastic measure when memory is low and a System.gc was insufficient to release memory
HibernateInitializer hibernateInitializer = CoreServices.lookup().getHibernateInitializer();
hibernateInitializer.evictAllCaches();
System.gc();
long newFreeMemory = Runtime.getRuntime().freeMemory();
long newTotalMemory = Runtime.getRuntime().totalMemory();
if (!isLowMemory(newFreeMemory, newTotalMemory)) {
float percentage = (float) (newFreeMemory / (newTotalMemory * 1.0));