File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/collection/PersistentIdentifierBag.java | File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/collection/PersistentMap.java | |||
Method name: void initializeFromCache(CollectionPersister, Serializable, Object)
|
Method name: void initializeFromCache(CollectionPersister, Serializable, Object)
|
|||
Number of AST nodes: 6 | Number of AST nodes: 5 | |||
1 | Serializable[] array = (Serializable[]) disassembled;↵ | 1 | Serializable[] array = ( Serializable[] ) disassembled;↵ | |
2 | int size = array.length;↵ | 2 | int size = array.length;↵ | |
3 | beforeInitialize( persister, size );↵ | 3 | beforeInitialize( persister, size );↵ | |
4 | for ( int i = 0; i < size; i+=2 ) {↵ | 4 | for ( int i = 0; i < size; i+=2 ) {↵ | |
5 | identifiers.put(↵ | 5 | ↵ | |
6 | new Integer(i/2),↵ | |||
6 | map.put(↵ | |||
7 | persister.getIdentifierType().assemble( array[i], getSession(), owner )↵ | 7 | persister.getIndexType().assemble( array[i], getSession(), owner ),↵ | |
8 | );↵ | 8 | ↵ | |
9 | values.add( persister.getElementType().assemble( array[i+1], getSession(), owner ) ↵ | 9 | persister.getElementType().assemble( array[i+1], getSession(), owner )↵ | |
10 | );↵ | 10 | );↵ | |
11 | } | 11 |
| |
See real code fragment | See real code fragment |
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.2 |
Clones location | Clones are in different classes having the same super class |
Number of node comparisons | 11 |
Number of mapped statements | 4 |
Number of unmapped statements in the first code fragment | 2 |
Number of unmapped statements in the second code fragment | 1 |
Time elapsed for statement mapping (ms) | 1.0 |
Clone type | Type 3 |
ID | Statement | ID | Statement | ||||
---|---|---|---|---|---|---|---|
1 | Serializable[] array = (Serializable[])disassembled; | 1 | Serializable[] array = (Serializable[])disassembled; | ||||
2 | int size = array.length; | 2 | int size = array.length; | ||||
3 | beforeInitialize(persister, size); | 3 | beforeInitialize(persister, size); | ||||
4 | for (int i = 0; i < size; i += 2) | 4 | for (int i = 0; i < size; i += 2) | ||||
|
| 5 | map.put(persister.getIndexType().assemble(array[i], getSession(), owner), persister.getElementType().assemble(array[i + 1], getSession(), owner)); | ||||
5 | identifiers.put(new Integer(i / 2), persister.getIdentifierType().assemble(array[i], getSession(), owner)); |
| | ||||
6 | values.add(persister.getElementType().assemble(array[i + 1], getSession(), owner)); |
| |
Row | Violation |
---|---|
1 | Unmatched statement map.put(persister.getIndexType().assemble(array[i],getSession(),owner),persister.getElementType().assemble(array[i + 1],getSession(),owner)); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
2 | Unmatched statement identifiers.put(new Integer(i / 2),persister.getIdentifierType().assemble(array[i],getSession(),owner)); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
3 | Unmatched statement values.add(persister.getElementType().assemble(array[i + 1],getSession(),owner)); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
4 | Clone fragment #1 returns variables array, i , while Clone fragment #2 returns variables array, i |