[ https://issues.apache.org/jira/browse/DERBY-3354?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12568177#action_12568177 ]
Kathey Marsden commented on DERBY-3354: --------------------------------------- Thanks for the patch. I tried it out and it and have a few comments. 1) In EmbedBlob should the call to localConn.removeLOBMapping(locator); be in a finally block like it is in EmbedClob? 2) In jdk15 we don't have free() so would still have a leak. Do you have any suggestions for a jdk15 solution? 3) I removed the call to free() from the repro and ran java LocLeak and got. Retrieving row 99000 Exception in thread "main" java.sql.SQLException: Java exception: ': java.util.ConcurrentModificationException'. at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:95) at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:88) at org.apache.derby.impl.jdbc.Util.javaException(Util.java:245) at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403) at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346) at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:1946) at org.apache.derby.impl.jdbc.EmbedConnection.rollback(EmbedConnection.java:1521) at LocLeak.main(LocLeak.java:14) Caused by: java.sql.SQLException: Java exception: ': java.util.ConcurrentModificationException'. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:13 5) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70) ... 7 more Caused by: java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793) at java.util.HashMap$ValueIterator.next(HashMap.java:821) at org.apache.derby.impl.jdbc.EmbedConnection.clearLOBMapping(EmbedConnection.java:2737) at org.apache.derby.impl.jdbc.EmbedConnection.rollback(EmbedConnection.java:1519) ... 1 more > Select from large lob table with embedded gives OutOfMemoryError > ---------------------------------------------------------------- > > Key: DERBY-3354 > URL: https://issues.apache.org/jira/browse/DERBY-3354 > Project: Derby > Issue Type: Bug > Components: SQL > Affects Versions: 10.3.1.4, 10.3.2.1, 10.4.0.0 > Reporter: Kathey Marsden > Attachments: derby-3354.diff, LocLeak.java > > > Retrieving from a large table with lobs gives an OutOfMemoryException, even > if free() is explictly called on the lob. I believe this is because > EmbedConnection.addLobMapping is called for every lob creation but is never > cleared until commit or rollback, even if the lob is freed. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.