File path: /hibernate-distribution-3.3.2.GA/project/testsuite/src/test/java/org/hibernate/test/iterate/IterateTest.java | File path: /hibernate-distribution-3.3.2.GA/project/testsuite/src/test/java/org/hibernate/test/ops/MergeTest.java | |||
Method name: void testIterate()
|
Method name: void testMergeManagedInitializedCollection()
|
|||
Number of AST nodes: 29 | Number of AST nodes: 29 | |||
1 | getSessions().getStatistics().clear();↵ | |||
2 | Session s = openSession();↵ | 1 | Session s = openSession();↵ | |
3 | Transaction t = s.beginTransaction();↵ | 2 | Transaction tx = s.beginTransaction();↵ | |
4 | Item i1 = new Item("foo");↵ | 3 | ↵ | |
5 | Item i2 = new Item("bar");↵ | |||
6 | s.persist("Item", i1↵ | 4 | NumberedNode root = new NumberedNode( "root" );↵ | |
7 | );↵ | 5 | root.addChild( new NumberedNode( "child" ) );↵ | |
8 | s.persist("Item", i2);↵ | 6 | s.persist(root);↵ | |
9 | t.commit();↵ | 7 | tx.commit();↵ | |
10 | s.close();↵ | 8 | s.close();↵ | |
9 | clearCounts();↵ | |||
10 | NumberedNode newRoot = new NumberedNode( "root" );↵ | |||
11 | newRoot.setId( root.getId() );↵ | |||
11 | s = openSession();↵ | 12 | s = openSession();↵ | |
12 | t = s.beginTransaction();↵ | 13 | tx = s.beginTransaction();↵ | |
13 | Iterator iter = s.getNamedQuery("Item.nameDesc").iterate();↵ | 14 | ↵ | |
14 | i1 = (Item) iter.next();↵ | |||
15 | i2 = (Item) iter.next();↵ | |||
16 | assertFalse( ↵ | 15 | root = ( NumberedNode ) s.get( NumberedNode.class, root.getId() );↵ | |
16 | Set managedChildren = root.getChildren();↵ | |||
17 | Hibernate.isInitialized(i1) );↵ | 17 | Hibernate.initialize( managedChildren );↵ | |
18 | assertFalse( Hibernate.isInitialized(i2) );↵ | 18 | assertTrue( Hibernate.isInitialized(↵ | |
19 | i1.getName();↵ | |||
20 | i2.getName();↵ | |||
21 | assertFalse( Hibernate.isInitialized(i1↵ | 19 | managedChildren ) );↵ | |
20 | newRoot.setChildren( managedChildren );↵ | |||
21 | assertSame( root, s.merge( newRoot ) );↵ | |||
22 | ) );↵ | 22 | assertSame( managedChildren, root.getChildren() );↵ | |
23 | assertFalse( Hibernate.isInitialized(i2) );↵ | 23 | assertTrue( Hibernate.isInitialized(↵ | |
24 | assertEquals( i1.getName(), "foo" );↵ | |||
25 | assertEquals( i2.getName(), "bar" ↵ | 24 | managedChildren ) );↵ | |
25 | tx.commit();↵ | |||
26 | assertInsertCount(0);↵ | |||
27 | assertUpdateCount(0);↵ | |||
26 | );↵ | 28 | assertDeleteCount(0);↵ | |
27 | Hibernate.initialize(i1);↵ | 29 | tx = s.beginTransaction();↵ | |
28 | assertFalse( iter.hasNex↵ | 30 | assertEquals(↵ | |
31 | s.createCriteria(NumberedNode.class)↵ | |||
29 | t() );↵ | 32 | .setProjection( Projections.rowCount() )↵ | |
30 | s.delete(i1);↵ | |||
31 | s.delete(i2↵ | |||
33 | .uniqueResult(),↵ | |||
34 | new Integer(2)↵ | |||
32 | );↵ | 35 | );↵ | |
33 | t.commit();↵ | 36 | tx.commit();↵ | |
34 | s.close();↵ | 37 | s.close();↵ | |
35 | assertEquals( getSessions().getStatistics().getEntityFetchCount(), 2 ); | 38 | cleanup(); | |
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.0 |
Clones location | Clones are in different classes having the same super class |
Number of node comparisons | 604 |
Number of mapped statements | 15 |
Number of unmapped statements in the first code fragment | 14 |
Number of unmapped statements in the second code fragment | 14 |
Time elapsed for statement mapping (ms) | 0.0 |
Clone type | Type 2 |
ID | Statement | ID | Statement | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | getSessions().getStatistics().clear(); |
| 29 | cleanup(); | |||||||||||||||||||||
2 | Session s = openSession(); | 1 | Session s = openSession(); | ||||||||||||||||||||||
3 | Transaction t = s.beginTransaction(); |
| 2 | Transaction tx = s.beginTransaction(); | |||||||||||||||||||||
|
| 3 | NumberedNode root = new NumberedNode("root"); | ||||||||||||||||||||||
| 4 | root.addChild(new NumberedNode("child")); | |||||||||||||||||||||||
4 | Item i1 = new Item("foo"); |
| | ||||||||||||||||||||||
5 | Item i2 = new Item("bar"); |
| | ||||||||||||||||||||||
6 | s.persist("Item", i1); |
| 5 | s.persist(root); | |||||||||||||||||||||
7 | s.persist("Item", i2); |
| | ||||||||||||||||||||||
8 | t.commit(); |
| 6 | tx.commit(); | |||||||||||||||||||||
9 | s.close(); | 7 | s.close(); | ||||||||||||||||||||||
|
| 9 | NumberedNode newRoot = new NumberedNode("root"); | ||||||||||||||||||||||
|
| 10 | newRoot.setId(root.getId()); | ||||||||||||||||||||||
10 | s = openSession(); | 11 | s = openSession(); | ||||||||||||||||||||||
11 | t = s.beginTransaction(); |
| 12 | tx = s.beginTransaction(); | |||||||||||||||||||||
12 | Iterator iter = s.getNamedQuery("Item.nameDesc").iterate(); |
| | ||||||||||||||||||||||
|
| 13 | root = (NumberedNode)s.get(NumberedNode.class, root.getId()); | ||||||||||||||||||||||
13 | i1 = (Item)iter.next(); |
| | ||||||||||||||||||||||
| 14 | Set managedChildren = root.getChildren(); | |||||||||||||||||||||||
14 | i2 = (Item)iter.next(); | | |||||||||||||||||||||||
|
| 17 | newRoot.setChildren(managedChildren); | ||||||||||||||||||||||
|
| 18 | assertSame(root, s.merge(newRoot)); | ||||||||||||||||||||||
15 | assertFalse(Hibernate.isInitialized(i1)); |
| 19 | assertSame(managedChildren, root.getChildren()); | |||||||||||||||||||||
16 | assertFalse(Hibernate.isInitialized(i2)); | | |||||||||||||||||||||||
17 | i1.getName(); | | |||||||||||||||||||||||
18 | i2.getName(); | | |||||||||||||||||||||||
19 | assertFalse(Hibernate.isInitialized(i1)); | | |||||||||||||||||||||||
20 | assertFalse(Hibernate.isInitialized(i2)); | | |||||||||||||||||||||||
21 | assertEquals(i1.getName(), "foo"); |
| 20 | assertTrue(Hibernate.isInitialized(managedChildren)); | |||||||||||||||||||||
22 | assertEquals(i2.getName(), "bar"); |
| 16 | assertTrue(Hibernate.isInitialized(managedChildren)); | |||||||||||||||||||||
23 | Hibernate.initialize(i1); |
| 15 | Hibernate.initialize(managedChildren); | |||||||||||||||||||||
24 | assertFalse(iter.hasNext()); | | |||||||||||||||||||||||
25 | s.delete(i1); |
| | ||||||||||||||||||||||
26 | s.delete(i2); |
| | ||||||||||||||||||||||
27 | t.commit(); |
| 21 | tx.commit(); | |||||||||||||||||||||
| 22 | assertInsertCount(0); | |||||||||||||||||||||||
| 23 | assertUpdateCount(0); | |||||||||||||||||||||||
| 24 | assertDeleteCount(0); | |||||||||||||||||||||||
|
| 25 | tx = s.beginTransaction(); | ||||||||||||||||||||||
|
| 26 | assertEquals(s.createCriteria(NumberedNode.class).setProjection(Projections.rowCount()).uniqueResult(), new Integer(2)); | ||||||||||||||||||||||
|
| 27 | tx.commit(); | ||||||||||||||||||||||
28 | s.close(); | 28 | s.close(); | ||||||||||||||||||||||
29 | assertEquals(getSessions().getStatistics().getEntityFetchCount(), 2); |
| 8 | clearCounts(); |
Row | Violation |
---|---|
1 | Expression getSessions().getStatistics().clear() is a void method call, and thus it cannot be parameterized |
2 | Expression cleanup() is a void method call, and thus it cannot be parameterized |
3 | Expression getSessions().getStatistics().clear() is a void method call, and thus it cannot be parameterized |
4 | Expression cleanup() is a void method call, and thus it cannot be parameterized |
5 | Unmatched statement NumberedNode root=new NumberedNode("root"); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted |
6 | Unmatched statement Item i1=new Item("foo"); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted |
7 | Unmatched statement Item i2=new Item("bar"); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted |
8 | Expression s.persist("Item",i1) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
9 | Expression s.persist(root) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
10 | Expression s.persist("Item",i1) is a void method call, and thus it cannot be parameterized |
11 | Expression s.persist(root) is a void method call, and thus it cannot be parameterized |
12 | Unmatched statement s.persist("Item",i2); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
13 | Unmatched statement NumberedNode newRoot=new NumberedNode("root"); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted |
14 | Unmatched statement newRoot.setId(root.getId()); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted |
15 | Unmatched statement Iterator iter=s.getNamedQuery("Item.nameDesc").iterate(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
16 | Unmatched statement root=(NumberedNode)s.get(NumberedNode.class,root.getId()); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
17 | Unmatched statement i1=(Item)iter.next(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
18 | Unmatched statement newRoot.setChildren(managedChildren); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted |
19 | Unmatched statement assertSame(root,s.merge(newRoot)); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
20 | Expression assertFalse(Hibernate.isInitialized(i1)) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
21 | Expression assertSame(managedChildren,root.getChildren()) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
22 | Expression assertFalse(Hibernate.isInitialized(i1)) is a void method call, and thus it cannot be parameterized |
23 | Expression assertSame(managedChildren,root.getChildren()) is a void method call, and thus it cannot be parameterized |
24 | Expression assertFalse(Hibernate.isInitialized(i1)) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
25 | Expression assertSame(managedChildren,root.getChildren()) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
26 | Expression assertFalse(Hibernate.isInitialized(i1)) is a void method call, and thus it cannot be parameterized |
27 | Expression assertSame(managedChildren,root.getChildren()) is a void method call, and thus it cannot be parameterized |
28 | Expression assertEquals(i1.getName(),"foo") cannot be parameterized, because it has dependencies to/from statements that will be extracted |
29 | Expression assertTrue(Hibernate.isInitialized(managedChildren)) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
30 | Expression assertEquals(i1.getName(),"foo") is a void method call, and thus it cannot be parameterized |
31 | Expression assertTrue(Hibernate.isInitialized(managedChildren)) is a void method call, and thus it cannot be parameterized |
32 | Expression assertEquals(i1.getName(),"foo") cannot be parameterized, because it has dependencies to/from statements that will be extracted |
33 | Expression assertTrue(Hibernate.isInitialized(managedChildren)) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
34 | Expression assertEquals(i1.getName(),"foo") is a void method call, and thus it cannot be parameterized |
35 | Expression assertTrue(Hibernate.isInitialized(managedChildren)) is a void method call, and thus it cannot be parameterized |
36 | Expression assertEquals(i2.getName(),"bar") cannot be parameterized, because it has dependencies to/from statements that will be extracted |
37 | Expression assertTrue(Hibernate.isInitialized(managedChildren)) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
38 | Expression assertEquals(i2.getName(),"bar") is a void method call, and thus it cannot be parameterized |
39 | Expression assertTrue(Hibernate.isInitialized(managedChildren)) is a void method call, and thus it cannot be parameterized |
40 | Expression assertEquals(i2.getName(),"bar") cannot be parameterized, because it has dependencies to/from statements that will be extracted |
41 | Expression assertTrue(Hibernate.isInitialized(managedChildren)) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
42 | Expression assertEquals(i2.getName(),"bar") is a void method call, and thus it cannot be parameterized |
43 | Expression assertTrue(Hibernate.isInitialized(managedChildren)) is a void method call, and thus it cannot be parameterized |
44 | Type org.hibernate.test.iterate.Item of variable i1 does not match with type java.util.Set of variable managedChildren |
45 | Unmatched statement s.delete(i1); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
46 | Unmatched statement s.delete(i2); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
47 | Unmatched statement tx=s.beginTransaction(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
48 | Unmatched statement assertEquals(s.createCriteria(NumberedNode.class).setProjection(Projections.rowCount()).uniqueResult(),new Integer(2)); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
49 | Unmatched statement tx.commit(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
50 | Expression assertEquals(getSessions().getStatistics().getEntityFetchCount(),2) is a void method call, and thus it cannot be parameterized |
51 | Expression clearCounts() is a void method call, and thus it cannot be parameterized |
52 | Expression assertEquals(getSessions().getStatistics().getEntityFetchCount(),2) is a void method call, and thus it cannot be parameterized |
53 | Expression clearCounts() is a void method call, and thus it cannot be parameterized |