File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/persister/collection/AbstractCollectionPersister.java | File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/tuple/component/ComponentMetamodel.java | |||
Method name: void AbstractCollectionPersister(Collection, CollectionRegionAccessStrategy, Configuration, SessionFactoryImplementor)
|
Method name: void ComponentMetamodel(Component)
|
|||
Number of AST nodes: 5 | Number of AST nodes: 5 | |||
1 | while ( iter.hasNext() ) {↵ | 1 | while ( itr.hasNext() ) { ↵ | |
2 | // NativeSQL: collect key column and auto-aliases↵ | 2 | ↵ | |
3 | Column col = ( (Column) iter.next() );↵ | 3 | Property property = ( Property ) itr.next(); ↵ | |
4 | keyColumnNames[k] = col.getQuotedName(dialect);↵ | 4 | properties[i] = PropertyFactory.buildStandardProperty( property, false ); ↵ | |
5 | keyColumnAliases[k] = col.getAlias(dialect);↵ | 5 | propertyIndexes.put( property.getName(), new Integer( i ) ); ↵ | |
6 | k++;↵ | 6 | i++; ↵ | |
7 | } | 7 |
| |
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.1 |
Clones location | Clones are in different classes |
Number of node comparisons | 25 |
Number of mapped statements | 2 |
Number of unmapped statements in the first code fragment | 3 |
Number of unmapped statements in the second code fragment | 3 |
Time elapsed for statement mapping (ms) | 8.5 |
Clone type | Type 2 |
ID | Statement | ID | Statement | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
46 | while (iter.hasNext()) |
| 7 | while (itr.hasNext()) | ||||||||||
|
| 8 | Property property = (Property)itr.next(); | |||||||||||
|
| 9 | properties[i] = PropertyFactory.buildStandardProperty(property, false); | |||||||||||
|
| 10 | propertyIndexes.put(property.getName(), new Integer(i)); | |||||||||||
47 | Column col = ((Column)iter.next()); |
| | |||||||||||
48 | keyColumnNames[k] = col.getQuotedName(dialect); |
| | |||||||||||
49 | keyColumnAliases[k] = col.getAlias(dialect); |
| | |||||||||||
50 | k++; |
| 11 | i++; |
Row | Violation |
---|---|
1 | Unmatched statement Property property=(Property)itr.next(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
2 | Unmatched statement properties[i]=PropertyFactory.buildStandardProperty(property,false); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
3 | Unmatched statement properties[i]=PropertyFactory.buildStandardProperty(property,false); cannot be moved before or after the extracted code, because it throws exception(s) that should be caught by a try block that will be extracted |
4 | Unmatched statement propertyIndexes.put(property.getName(),new Integer(i)); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
5 | Unmatched statement Column col=((Column)iter.next()); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
6 | Unmatched statement keyColumnNames[k]=col.getQuotedName(dialect); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
7 | Unmatched statement keyColumnAliases[k]=col.getAlias(dialect); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
8 | The refactoring of the clones is infeasible, because classes org.hibernate.persister.collection.AbstractCollectionPersister and org.hibernate.tuple.component.ComponentMetamodel do not have a common superclass |