EntityMode entityMode = getSession().getEntityMode();
ArrayList clonedList = new ArrayList( bag.size() );
Iterator iter = bag.iterator();
while ( iter.hasNext() ) {
clonedList.add( persister.getElementType().deepCopy( iter.next(), entityMode, persister.getFactory() ) );
}
return clonedList;
Map map = new HashMap();
Iterator iter = region.toMap().entrySet().iterator();
while ( iter.hasNext() ) {
Map.Entry me = (Map.Entry) iter.next();
map.put( ( (CacheKey) me.getKey() ).getKey(), me.getValue() );
}
return map;
Clone fragments detected by clone detection tool
File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/collection/PersistentBag.java
|
|
File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/stat/SecondLevelCacheStatistics.java
|
Method name: Serializable getSnapshot(CollectionPersister)
|
|
Method name: Map getEntries()
|
Number of AST nodes: 6
|
|
Number of AST nodes: 6
|
|
1 | EntityMode entityMode = getSession().getEntityMode();↵ | | |
|
2 | ArrayList clonedList = new ArrayList( bag.size() );↵ | | |
|
3 | Iterator iter = bag↵ | | 1 | Map map = new HashMap();↵
|
4 | .iterator();↵ | | 2 | Iterator iter = region.toMap().entrySet().iterator();↵
|
5 | while ( iter.hasNext() ) {↵ | | 3 | while ( iter.hasNext() ) {↵
|
6 | clonedList.add( persister.getElementType().deepCopy( iter.next(), entityMode, persister.getFactory() ↵ | | 4 | Map.Entry me = (Map.Entry) iter.next();↵
|
7 | ) );↵ | | 5 | map.put( ( (CacheKey) me.getKey() ).getKey(), me.getValue() );↵
|
8 | }↵ | | 6 | }↵
|
9 | return clonedList; | | 7 | return map;
|
See real code fragment |
|
See real code fragment |
Summary
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 0 |
Number of non-refactorable cases | 1 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 0.1 |
Clones location | Clones are in different classes |
Number of node comparisons | 18 |
-
{Non-refactorable}
Mapping Summary
Number of mapped statements | 1 |
Number of unmapped statements in the first code fragment | 5 |
Number of unmapped statements in the second code fragment | 5 |
Time elapsed for statement mapping (ms) | 0.8 |
Clone type | Type 3 |
Mapped Statements
ID |
Statement |
|
ID |
Statement |
| | | 1 | Map map = new HashMap(); |
1 | EntityMode entityMode = getSession().getEntityMode(); | | | |
| | | 2 | Iterator iter = region.toMap().entrySet().iterator(); |
2 | ArrayList clonedList = new ArrayList(bag.size()); | | | |
3 | Iterator iter = bag.iterator(); | | | |
4 | while (iter.hasNext()) | | 3 | while (iter.hasNext()) |
| | | 4 | Map.Entry me = (Map.Entry)iter.next(); |
| | | 5 | map.put(((CacheKey)me.getKey()).getKey(), me.getValue()); |
5 | clonedList.add(persister.getElementType().deepCopy(iter.next(), entityMode, persister.getFactory())); | | | |
| | | 6 | return map; |
6 | return clonedList; | | | |
Precondition Violations (3)
Row |
Violation |
1 | Unmatched statement Map.Entry me=(Map.Entry)iter.next(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
2 | Unmatched return map; |
3 | Unmatched return clonedList; |