EmbedConnection.clearLOBMapping() incorrectly clears lobFiles causing a 
ConcurrentModificationException
-------------------------------------------------------------------------------------------------------

                 Key: DERBY-5603
                 URL: https://issues.apache.org/jira/browse/DERBY-5603
             Project: Derby
          Issue Type: Bug
          Components: JDBC
    Affects Versions: 10.8.2.2, 10.5.1.1
         Environment: Win 7 64 bit
JDK 1.6.0_24
            Reporter: Jon Steinich
            Priority: Critical


In EmbedConnection.clearLOBMapping()  the code which iterates over lobFiles has 
a finally block which clears the Set.  This causes a 
ConcurrentModificationException to be thrown and even using a concurrent data 
structure would still result in only one LOBFile being correctly closed.

This will occur anytime the lobFiles Set contains more than 1 LOBFile.

Stack Trace:
java.sql.SQLException: Java exception: ': 
java.util.ConcurrentModificationException'. 
 at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown 
Source) 
 at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source) 
 at org.apache.derby.impl.jdbc.Util.javaException(Unknown Source) 
 at 
org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown 
Source) 
 at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
Source) 
 at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) 
 at org.apache.derby.impl.jdbc.EmbedConnection.commit(Unknown Source) 
<lines removed>
Caused by: java.sql.SQLException: Java exception: ': 
java.util.ConcurrentModificationException'. 
 at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown 
Source) 
 at 
org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown
 Source) 
 ... 16 more 
Caused by: java.util.ConcurrentModificationException 
 at java.util.HashMap$HashIterator.nextEntry(Unknown Source) 
 at java.util.HashMap$KeyIterator.next(Unknown Source) 
 at org.apache.derby.impl.jdbc.EmbedConnection.clearLOBMapping(Unknown Source) 
 ... 10 more

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to