[ http://issues.apache.org/jira/browse/DERBY-1693?page=all ]
Mike Matrigali updated DERBY-1693: ---------------------------------- I agree, my guess is that we are trying to print out the whole blob/clob in the log statement text. This is very unlikely what the user wants. And in the current architecture anytime you try to do 2 different things with streamed blob/clob then the blob/clob is going to get instantiated in memory. So for instance on an insert we can stream the blob to the store, but if we need to print it to the log first we are going to call toString and end up with it in memory (of course you could stream to disk and back but doesn't seem worth it for logstatement text). My question is what should log statement text do. The easiest is just not print values for the blob/clob. Is that ok? > Out of Memory Error with derby.language.logStatementText=true > ------------------------------------------------------------- > > Key: DERBY-1693 > URL: http://issues.apache.org/jira/browse/DERBY-1693 > Project: Derby > Issue Type: Bug > Affects Versions: 10.2.0.0 > Environment: JVM INFO : > java version "1.5.0_02" > Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_02-b09) > Java HotSpot(TM) Client VM (build 1.5.0_02-b09, mixed mode) > OS : Windows XP Professional > Reporter: Manjula Kutty > Priority: Minor > > While running a test with blobs and clobs of random size but not exceeding > more than 5MB , with derby.language.logStatementText=true , The inserts are > faling with out of memory error. Once that error occurs then the test loses > all connections to the database. If I take off the > derby.language.logStatementText=true property from derby.properties, the test > runs fine. Here is the stack Trace > java.lang.OutOfMemoryError: Java heap space > ---SQLException Caught--- > SQLState: XJ001 > Severity: 0 > Message: Java exception: 'Java heap space: java.lang.OutOfMemoryError'. > java.lang.OutOfMemoryError: Java heap space > java.sql.SQLException: No current connection. > at > org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExc > eptionFactory.java:45) > at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:89) > at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:105) > at org.apache.derby.impl.jdbc.Util.noCurrentConnection(Util.java:209) > at > org.apache.derby.impl.jdbc.EmbedConnection.checkIfClosed(EmbedConnect > ion.java:1351) > at > org.apache.derby.impl.jdbc.EmbedConnection.setupContextStack(EmbedCon > nection.java:1529) > at > org.apache.derby.impl.jdbc.EmbedConnection.rollback(EmbedConnection.j > ava:946) > at > com.ibm.db2j.tests.scenario.utils.DbTasks.insertMail(DbTasks.java:400 > ) > at > com.ibm.db2j.tests.scenario.tasks.Refresh.insertMail(Refresh.java:62) > at com.ibm.db2j.tests.scenario.tasks.Refresh.doWork(Refresh.java:43) > at com.ibm.db2j.tests.scenario.tasks.Refresh.run(Refresh.java:21) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira