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