|
25 | 25 |
|
26 | 26 | import java.io.Serializable;
|
27 | 27 | import java.util.Iterator;
|
28 |
| -import java.util.List; |
29 | 28 | import java.util.Map;
|
30 | 29 |
|
31 | 30 | import org.jboss.logging.Logger;
|
@@ -187,11 +186,10 @@ private void prepareCollectionFlushes(PersistenceContext persistenceContext) thr
|
187 | 186 |
|
188 | 187 | LOG.debug( "Dirty checking collections" );
|
189 | 188 |
|
190 |
| - final List list = IdentityMap.entries( persistenceContext.getCollectionEntries() ); |
191 |
| - final int size = list.size(); |
192 |
| - for ( int i = 0; i < size; i++ ) { |
193 |
| - Map.Entry e = ( Map.Entry ) list.get( i ); |
194 |
| - ( (CollectionEntry) e.getValue() ).preFlush( (PersistentCollection) e.getKey() ); |
| 189 | + Iterator<Map.Entry<PersistentCollection,CollectionEntry>> entriesIterator = IdentityMap.entriesIterator( persistenceContext.getCollectionEntries() ); |
| 190 | + while ( entriesIterator.hasNext() ) { |
| 191 | + Map.Entry<PersistentCollection,CollectionEntry> e = entriesIterator.next(); |
| 192 | + e.getValue().preFlush( e.getKey() ); |
195 | 193 | }
|
196 | 194 | }
|
197 | 195 |
|
@@ -248,27 +246,25 @@ private void flushCollections(final EventSource session, final PersistenceContex
|
248 | 246 |
|
249 | 247 | LOG.trace( "Processing unreferenced collections" );
|
250 | 248 |
|
251 |
| - List list = IdentityMap.entries( persistenceContext.getCollectionEntries() ); |
252 |
| - int size = list.size(); |
253 |
| - for ( int i = 0; i < size; i++ ) { |
254 |
| - Map.Entry me = ( Map.Entry ) list.get( i ); |
255 |
| - CollectionEntry ce = (CollectionEntry) me.getValue(); |
| 249 | + Iterator<Map.Entry<PersistentCollection,CollectionEntry>> entriesIterator = IdentityMap.entriesIterator( persistenceContext.getCollectionEntries() ); |
| 250 | + while ( entriesIterator.hasNext() ) { |
| 251 | + Map.Entry<PersistentCollection,CollectionEntry> me = entriesIterator.next(); |
| 252 | + CollectionEntry ce = me.getValue(); |
256 | 253 | if ( !ce.isReached() && !ce.isIgnore() ) {
|
257 |
| - Collections.processUnreachableCollection( (PersistentCollection) me.getKey(), session ); |
| 254 | + Collections.processUnreachableCollection( me.getKey(), session ); |
258 | 255 | }
|
259 | 256 | }
|
260 | 257 |
|
261 | 258 | // Schedule updates to collections:
|
262 | 259 |
|
263 | 260 | LOG.trace( "Scheduling collection removes/(re)creates/updates" );
|
264 | 261 |
|
265 |
| - list = IdentityMap.entries( persistenceContext.getCollectionEntries() ); |
266 |
| - size = list.size(); |
| 262 | + entriesIterator = IdentityMap.entriesIterator( persistenceContext.getCollectionEntries() ); |
267 | 263 | ActionQueue actionQueue = session.getActionQueue();
|
268 |
| - for ( int i = 0; i < size; i++ ) { |
269 |
| - Map.Entry me = (Map.Entry) list.get(i); |
270 |
| - PersistentCollection coll = (PersistentCollection) me.getKey(); |
271 |
| - CollectionEntry ce = (CollectionEntry) me.getValue(); |
| 264 | + while ( entriesIterator.hasNext() ) { |
| 265 | + Map.Entry<PersistentCollection,CollectionEntry> me = entriesIterator.next(); |
| 266 | + PersistentCollection coll = me.getKey(); |
| 267 | + CollectionEntry ce = me.getValue(); |
272 | 268 |
|
273 | 269 | if ( ce.isDorecreate() ) {
|
274 | 270 | session.getInterceptor().onCollectionRecreate( coll, ce.getCurrentKey() );
|
|
0 commit comments