The transaction rolled back because an error was thrown during the transaction. This error was - java.lang.OutOfMemoryError. Something is causing your JVM to run out of memory. This could be due to a problem with implementation - Java's version of "memory leaks" - objects not getting de-referenced properly so they are never garbage collected. Or it could be that the program is just using a lot of memory for legitimate reasons - you may have to rethink some algorithms or processes you are using (i.e. - if you're processing a large amount of data at a time, you may need to "chunk" the data to make better use of resources), or you may want to increase the amount of memory available to the JVM using the -Xmx or -Xms command line parameters.
Write once, run anywhere, because there's nowhere to hide! - /. A.C.