File path: /hibernate-distribution-3.3.2.GA/project/testsuite/src/test/java/org/hibernate/test/version/VersionTest.java | File path: /hibernate-distribution-3.3.2.GA/project/testsuite/src/test/java/org/hibernate/test/version/VersionTest.java | |||
Method name: void testCollectionVersion()
|
Method name: void testCollectionNoVersion()
|
|||
Number of AST nodes: 29 | Number of AST nodes: 29 | |||
1 | Session s = openSession();↵ | 1 | Session s = openSession();↵ | |
2 | Transaction t = s.beginTransaction();↵ | 2 | Transaction t = s.beginTransaction();↵ | |
3 | Person gavin = new Person("Gavin");↵ | 3 | Person gavin = new Person("Gavin");↵ | |
4 | new Thing("Passport", gavin);↵ | 4 | new Task("Code", gavin);↵ | |
5 | s.persist(gavin);↵ | 5 | s.persist(gavin);↵ | |
6 | t.commit();↵ | 6 | t.commit();↵ | |
7 | s.close();↵ | 7 | s.close();↵ | |
8 | ↵ | 8 | ↵ | |
9 | assertEquals(0, gavin.getVersion());↵ | 9 | assertEquals(0, gavin.getVersion());↵ | |
10 | ↵ | 10 | ↵ | |
11 | s = openSession();↵ | 11 | s = openSession();↵ | |
12 | t = s.beginTransaction();↵ | 12 | t = s.beginTransaction();↵ | |
13 | gavin = (Person) s.createCriteria(Person.class).uniqueResult();↵ | 13 | gavin = (Person) s.createCriteria(Person.class).uniqueResult();↵ | |
14 | new Thing("Laptop", gavin);↵ | 14 | new Task("Document", gavin);↵ | |
15 | t.commit();↵ | 15 | t.commit();↵ | |
16 | s.close();↵ | 16 | s.close();↵ | |
17 | ↵ | 17 | ↵ | |
18 | assertEquals(1, gavin.getVersion());↵ | 18 | assertEquals(0, gavin.getVersion());↵ | |
19 | assertFalse( Hibernate.isInitialized( gavin.getThings() ) );↵ | 19 | assertFalse( Hibernate.isInitialized( gavin.getTasks() ) );↵ | |
20 | s = openSession();↵ | 20 | s = openSession();↵ | |
21 | t = s.beginTransaction();↵ | 21 | t = s.beginTransaction();↵ | |
22 | gavin = (Person) s.createCriteria(Person.class).uniqueResult();↵ | 22 | gavin = (Person) s.createCriteria(Person.class).uniqueResult();↵ | |
23 | gavin.getThings().clear();↵ | 23 | gavin.getTasks().clear();↵ | |
24 | t.commit();↵ | 24 | t.commit();↵ | |
25 | s.close();↵ | 25 | s.close();↵ | |
26 | ↵ | 26 | ↵ | |
27 | assertEquals(2, gavin.getVersion());↵ | 27 | assertEquals(0, gavin.getVersion());↵ | |
28 | assertTrue( Hibernate.isInitialized( gavin.getThings() ) );↵ | 28 | assertTrue( Hibernate.isInitialized( gavin.getTasks() ) );↵ | |
29 | s = openSession();↵ | 29 | s = openSession();↵ | |
30 | t = s.beginTransaction();↵ | 30 | t = s.beginTransaction();↵ | |
31 | s.delete(gavin);↵ | 31 | s.delete(gavin);↵ | |
32 | t.commit();↵ | 32 | t.commit();↵ | |
33 | s.close(); | 33 |
| |
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 declared in the same class |
Number of node comparisons | 190 |
Number of mapped statements | 27 |
Number of unmapped statements in the first code fragment | 2 |
Number of unmapped statements in the second code fragment | 2 |
Time elapsed for statement mapping (ms) | 0.0 |
Clone type | Type 2 |
ID | Statement | ID | Statement | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Session s = openSession(); | 1 | Session s = openSession(); | |||||||||||||
2 | Transaction t = s.beginTransaction(); | 2 | Transaction t = s.beginTransaction(); | |||||||||||||
3 | Person gavin = new Person("Gavin"); | 3 | Person gavin = new Person("Gavin"); | |||||||||||||
|
| 4 | new Task("Code", gavin); | |||||||||||||
4 | new Thing("Passport", gavin); |
| | |||||||||||||
5 | s.persist(gavin); | 5 | s.persist(gavin); | |||||||||||||
6 | t.commit(); | 6 | t.commit(); | |||||||||||||
7 | s.close(); | 7 | s.close(); | |||||||||||||
8 | assertEquals(0, gavin.getVersion()); | 8 | assertEquals(0, gavin.getVersion()); | |||||||||||||
9 | s = openSession(); | 9 | s = openSession(); | |||||||||||||
10 | t = s.beginTransaction(); | 10 | t = s.beginTransaction(); | |||||||||||||
11 | gavin = (Person)s.createCriteria(Person.class).uniqueResult(); | 11 | gavin = (Person)s.createCriteria(Person.class).uniqueResult(); | |||||||||||||
|
| 12 | new Task("Document", gavin); | |||||||||||||
12 | new Thing("Laptop", gavin); |
| | |||||||||||||
13 | t.commit(); | 13 | t.commit(); | |||||||||||||
14 | s.close(); | 14 | s.close(); | |||||||||||||
15 | assertEquals(1, gavin.getVersion()); |
| 15 | assertEquals(0, gavin.getVersion()); | ||||||||||||
16 | assertFalse(Hibernate.isInitialized(gavin.getThings())); |
| 16 | assertFalse(Hibernate.isInitialized(gavin.getTasks())); | ||||||||||||
17 | s = openSession(); | 17 | s = openSession(); | |||||||||||||
18 | t = s.beginTransaction(); | 18 | t = s.beginTransaction(); | |||||||||||||
19 | gavin = (Person)s.createCriteria(Person.class).uniqueResult(); | 19 | gavin = (Person)s.createCriteria(Person.class).uniqueResult(); | |||||||||||||
20 | gavin.getThings().clear(); |
| 20 | gavin.getTasks().clear(); | ||||||||||||
21 | t.commit(); | 21 | t.commit(); | |||||||||||||
22 | s.close(); | 22 | s.close(); | |||||||||||||
23 | assertEquals(2, gavin.getVersion()); |
| 23 | assertEquals(0, gavin.getVersion()); | ||||||||||||
24 | assertTrue(Hibernate.isInitialized(gavin.getThings())); |
| 24 | assertTrue(Hibernate.isInitialized(gavin.getTasks())); | ||||||||||||
25 | s = openSession(); | 25 | s = openSession(); | |||||||||||||
26 | t = s.beginTransaction(); | 26 | t = s.beginTransaction(); | |||||||||||||
27 | s.delete(gavin); | 27 | s.delete(gavin); | |||||||||||||
28 | t.commit(); | 28 | t.commit(); | |||||||||||||
29 | s.close(); | 29 | s.close(); |
Row | Violation |
---|---|
1 | Unmatched statement new Task("Code",gavin); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
2 | Unmatched statement new Thing("Passport",gavin); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
3 | Unmatched statement new Task("Document",gavin); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
4 | Unmatched statement new Thing("Laptop",gavin); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
5 | Expression gavin.getThings() cannot be parameterized, because it has dependencies to/from statements that will be extracted |
6 | Expression gavin.getTasks() cannot be parameterized, because it has dependencies to/from statements that will be extracted |
7 | Expression gavin.getThings() cannot be parameterized, because it has dependencies to/from statements that will be extracted |
8 | Expression gavin.getTasks() cannot be parameterized, because it has dependencies to/from statements that will be extracted |
9 | Expression gavin.getThings() cannot be parameterized, because it has dependencies to/from statements that will be extracted |
10 | Expression gavin.getTasks() cannot be parameterized, because it has dependencies to/from statements that will be extracted |