if ( getDialect() instanceof PostgreSQLDialect ) { return; //doesn't like boolean=1 } Session s = openSession(); Transaction t = s.beginTransaction(); Auction a = new Auction(); a.setDescription( "an auction for something" ); a.setEnd( new Date() ); Bid b = new Bid(); b.setAmount( new BigDecimal( 123.34 ).setScale( 19, BigDecimal.ROUND_DOWN ) ); b.setSuccessful( true ); b.setDatetime( new Date() ); b.setItem( a ); a.getBids().add( b ); a.setSuccessfulBid( b ); s.persist( b ); t.commit(); s.close(); Long aid = a.getId(); Long bid = b.getId(); s = openSession(); t = s.beginTransaction(); b = ( Bid ) s.load( Bid.class, bid ); assertFalse( Hibernate.isInitialized( b ) ); a = ( Auction ) s.get( Auction.class, aid ); assertFalse( Hibernate.isInitialized( a.getBids() ) ); assertTrue( Hibernate.isInitialized( a.getSuccessfulBid() ) ); assertSame( a.getBids().iterator().next(), b ); assertSame( b, a.getSuccessfulBid() ); assertTrue( Hibernate.isInitialized( b ) ); assertTrue( b.isSuccessful() ); t.commit(); s.close(); s = openSession(); t = s.beginTransaction(); b = ( Bid ) s.load( Bid.class, bid ); assertFalse( Hibernate.isInitialized( b ) ); a = ( Auction ) s.createQuery( "from Auction a left join fetch a.bids" ).uniqueResult(); assertTrue( Hibernate.isInitialized( b ) ); assertTrue( Hibernate.isInitialized( a.getBids() ) ); assertSame( b, a.getSuccessfulBid() ); assertSame( a.getBids().iterator().next(), b ); assertTrue( b.isSuccessful() ); t.commit(); s.close(); s = openSession(); t = s.beginTransaction(); b = ( Bid ) s.load( Bid.class, bid ); a = ( Auction ) s.load( Auction.class, aid ); assertFalse( Hibernate.isInitialized( b ) ); assertFalse( Hibernate.isInitialized( a ) ); s.createQuery( "from Auction a left join fetch a.successfulBid" ).list(); assertTrue( Hibernate.isInitialized( b ) ); assertTrue( Hibernate.isInitialized( a ) ); assertSame( b, a.getSuccessfulBid() ); assertFalse( Hibernate.isInitialized( a.getBids() ) ); assertSame( a.getBids().iterator().next(), b ); assertTrue( b.isSuccessful() ); t.commit(); s.close(); s = openSession(); t = s.beginTransaction(); b = ( Bid ) s.load( Bid.class, bid ); a = ( Auction ) s.load( Auction.class, aid ); assertFalse( Hibernate.isInitialized( b ) ); assertFalse( Hibernate.isInitialized( a ) ); assertSame( s.get( Bid.class, bid ), b ); assertTrue( Hibernate.isInitialized( b ) ); assertSame( s.get( Auction.class, aid ), a ); assertTrue( Hibernate.isInitialized( a ) ); assertSame( b, a.getSuccessfulBid() ); assertFalse( Hibernate.isInitialized( a.getBids() ) ); assertSame( a.getBids().iterator().next(), b ); assertTrue( b.isSuccessful() ); t.commit(); s.close();
if ( ! getDialect().supportsExistsInSelect() ) { reportSkip( "dialect does not support exist fragments in the select clause", "bidi support" ); return; } Session s = openSession(); Transaction t = s.beginTransaction(); Auction a = new Auction(); a.setDescription( "an auction for something" ); a.setEnd( new Date() ); Bid b = new Bid(); b.setAmount( new BigDecimal( 123.34 ).setScale( 19, BigDecimal.ROUND_DOWN ) ); b.setSuccessful( true ); b.setDatetime( new Date() ); b.setItem( a ); a.getBids().add( b ); a.setSuccessfulBid( b ); s.persist( b ); t.commit(); s.close(); Long aid = a.getId(); Long bid = b.getId(); s = openSession(); t = s.beginTransaction(); b = ( Bid ) s.load( Bid.class, bid ); assertFalse( Hibernate.isInitialized( b ) ); a = ( Auction ) s.get( Auction.class, aid ); assertFalse( Hibernate.isInitialized( a.getBids() ) ); assertFalse( Hibernate.isInitialized( a.getSuccessfulBid() ) ); assertSame( a.getBids().iterator().next(), b ); assertSame( b, a.getSuccessfulBid() ); assertTrue( Hibernate.isInitialized( b ) ); assertTrue( b.isSuccessful() ); t.commit(); s.close(); s = openSession(); t = s.beginTransaction(); b = ( Bid ) s.load( Bid.class, bid ); assertFalse( Hibernate.isInitialized( b ) ); a = ( Auction ) s.createQuery( "from Auction a left join fetch a.bids" ).uniqueResult(); assertTrue( Hibernate.isInitialized( b ) ); assertTrue( Hibernate.isInitialized( a.getBids() ) ); assertSame( b, a.getSuccessfulBid() ); assertSame( a.getBids().iterator().next(), b ); assertTrue( b.isSuccessful() ); t.commit(); s.close(); s = openSession(); t = s.beginTransaction(); b = ( Bid ) s.load( Bid.class, bid ); a = ( Auction ) s.load( Auction.class, aid ); assertFalse( Hibernate.isInitialized( b ) ); assertFalse( Hibernate.isInitialized( a ) ); s.createQuery( "from Auction a left join fetch a.successfulBid" ).list(); assertTrue( Hibernate.isInitialized( b ) ); assertTrue( Hibernate.isInitialized( a ) ); assertSame( b, a.getSuccessfulBid() ); assertFalse( Hibernate.isInitialized( a.getBids() ) ); assertSame( a.getBids().iterator().next(), b ); assertTrue( b.isSuccessful() ); t.commit(); s.close(); s = openSession(); t = s.beginTransaction(); b = ( Bid ) s.load( Bid.class, bid ); a = ( Auction ) s.load( Auction.class, aid ); assertFalse( Hibernate.isInitialized( b ) ); assertFalse( Hibernate.isInitialized( a ) ); assertSame( s.get( Bid.class, bid ), b ); assertTrue( Hibernate.isInitialized( b ) ); assertSame( s.get( Auction.class, aid ), a ); assertTrue( Hibernate.isInitialized( a ) ); assertSame( b, a.getSuccessfulBid() ); assertFalse( Hibernate.isInitialized( a.getBids() ) ); assertSame( a.getBids().iterator().next(), b ); assertTrue( b.isSuccessful() ); t.commit(); s.close();
Clone fragments detected by clone detection tool
File path: /hibernate-distribution-3.3.2.GA/project/testsuite/src/test/java/org/hibernate/test/bidi/AuctionTest.java File path: /hibernate-distribution-3.3.2.GA/project/testsuite/src/test/java/org/hibernate/test/bidi/AuctionTest2.java
Method name: void testLazy() Method name: void testLazy()
Number of AST nodes: 75 Number of AST nodes: 76
1
if ( getDialect() instanceof PostgreSQLDialect ) {
1
if ( ! getDialect().supportsExistsInSelect() ) {
2
			return; //doesn't like boolean=1
2
			reportSkip( "dialect does not support exist fragments in the select clause", "bidi support" );
3
			return;
3
		}
4
		}
4
		Session s = openSession();
5
		Session s = openSession();
5
		Transaction t = s.beginTransaction();
6
		Transaction t = s.beginTransaction();
6
		Auction a = new Auction();
7
		Auction a = new Auction();
7
		a.setDescription( "an auction for something" );
8
		a.setDescription( "an auction for something" );
8
		a.setEnd( new Date() );
9
		a.setEnd( new Date() );
9
		Bid b = new Bid();
10
		Bid b = new Bid();
10
		b.setAmount( new BigDecimal( 123.34 ).setScale( 19, BigDecimal.ROUND_DOWN ) );
11
		b.setAmount( new BigDecimal( 123.34 ).setScale( 19, BigDecimal.ROUND_DOWN ) );
11
		b.setSuccessful( true );
12
		b.setSuccessful( true );
12
		b.setDatetime( new Date() );
13
		b.setDatetime( new Date() );
13
		b.setItem( a );
14
		b.setItem( a );
14
		a.getBids().add( b );
15
		a.getBids().add( b );
15
		a.setSuccessfulBid( b );
16
		a.setSuccessfulBid( b );
16
		s.persist( b );
17
		s.persist( b );
17
		t.commit();
18
		t.commit();
18
		s.close();
19
		s.close();
19
		Long aid = a.getId();
20
		Long aid = a.getId();
20
		Long bid = b.getId();
21
		Long bid = b.getId();
21
		s = openSession();
22
		s = openSession();
22
		t = s.beginTransaction();
23
		t = s.beginTransaction();
23
		b = ( Bid ) s.load( Bid.class, bid );
24
		b = ( Bid ) s.load( Bid.class, bid );
24
		assertFalse( Hibernate.isInitialized( b ) );
25
		assertFalse( Hibernate.isInitialized( b ) );
25
		a = ( Auction ) s.get( Auction.class, aid );
26
		a = ( Auction ) s.get( Auction.class, aid );
26
		assertFalse( Hibernate.isInitialized( a.getBids() ) );
27
		assertFalse( Hibernate.isInitialized( a.getBids() ) );
27
		assertTrue( Hibernate.isInitialized( a.getSuccessfulBid() ) );
28
		assertFalse( Hibernate.isInitialized( a.getSuccessfulBid() ) );
28
		assertSame( a.getBids().iterator().next(), b );
29
		assertSame( a.getBids().iterator().next(), b );
29
		assertSame( b, a.getSuccessfulBid() );
30
		assertSame( b, a.getSuccessfulBid() );
30
		assertTrue( Hibernate.isInitialized( b ) );
31
		assertTrue( Hibernate.isInitialized( b ) );
31
		assertTrue( b.isSuccessful() );
32
		assertTrue( b.isSuccessful() );
32
		t.commit();
33
		t.commit();
33
		s.close();
34
		s.close();
34
		s = openSession();
35
		s = openSession();
35
		t = s.beginTransaction();
36
		t = s.beginTransaction();
36
		b = ( Bid ) s.load( Bid.class, bid );
37
		b = ( Bid ) s.load( Bid.class, bid );
37
		assertFalse( Hibernate.isInitialized( b ) );
38
		assertFalse( Hibernate.isInitialized( b ) );
38
		a = ( Auction ) s.createQuery( "from Auction a left join fetch a.bids" ).uniqueResult();
39
		a = ( Auction ) s.createQuery( "from Auction a left join fetch a.bids" ).uniqueResult();
39
		assertTrue( Hibernate.isInitialized( b ) );
40
		assertTrue( Hibernate.isInitialized( b ) );
40
		assertTrue( Hibernate.isInitialized( a.getBids() ) );
41
		assertTrue( Hibernate.isInitialized( a.getBids() ) );
41
		assertSame( b, a.getSuccessfulBid() );
42
		assertSame( b, a.getSuccessfulBid() );
42
		assertSame( a.getBids().iterator().next(), b );
43
		assertSame( a.getBids().iterator().next(), b );
43
		assertTrue( b.isSuccessful() );
44
		assertTrue( b.isSuccessful() );
44
		t.commit();
45
		t.commit();
45
		s.close();
46
		s.close();
46
		s = openSession();
47
		s = openSession();
47
		t = s.beginTransaction();
48
		t = s.beginTransaction();
48
		b = ( Bid ) s.load( Bid.class, bid );
49
		b = ( Bid ) s.load( Bid.class, bid );
49
		a = ( Auction ) s.load( Auction.class, aid );
50
		a = ( Auction ) s.load( Auction.class, aid );
50
		assertFalse( Hibernate.isInitialized( b ) );
51
		assertFalse( Hibernate.isInitialized( b ) );
51
		assertFalse( Hibernate.isInitialized( a ) );
52
		assertFalse( Hibernate.isInitialized( a ) );
52
		s.createQuery( "from Auction a left join fetch a.successfulBid" ).list();
53
		s.createQuery( "from Auction a left join fetch a.successfulBid" ).list();
53
		assertTrue( Hibernate.isInitialized( b ) );
54
		assertTrue( Hibernate.isInitialized( b ) );
54
		assertTrue( Hibernate.isInitialized( a ) );
55
		assertTrue( Hibernate.isInitialized( a ) );
55
		assertSame( b, a.getSuccessfulBid() );
56
		assertSame( b, a.getSuccessfulBid() );
56
		assertFalse( Hibernate.isInitialized( a.getBids() ) );
57
		assertFalse( Hibernate.isInitialized( a.getBids() ) );
57
		assertSame( a.getBids().iterator().next(), b );
58
		assertSame( a.getBids().iterator().next(), b );
58
		assertTrue( b.isSuccessful() );
59
		assertTrue( b.isSuccessful() );
59
		t.commit();
60
		t.commit();
60
		s.close();
61
		s.close();
61
		s = openSession();
62
		s = openSession();
62
		t = s.beginTransaction();
63
		t = s.beginTransaction();
63
		b = ( Bid ) s.load( Bid.class, bid );
64
		b = ( Bid ) s.load( Bid.class, bid );
64
		a = ( Auction ) s.load( Auction.class, aid );
65
		a = ( Auction ) s.load( Auction.class, aid );
65
		assertFalse( Hibernate.isInitialized( b ) );
66
		assertFalse( Hibernate.isInitialized( b ) );
66
		assertFalse( Hibernate.isInitialized( a ) );
67
		assertFalse( Hibernate.isInitialized( a ) );
67
		assertSame( s.get( Bid.class, bid ), b );
68
		assertSame( s.get( Bid.class, bid ), b );
68
		assertTrue( Hibernate.isInitialized( b ) );
69
		assertTrue( Hibernate.isInitialized( b ) );
69
		assertSame( s.get( Auction.class, aid ), a );
70
		assertSame( s.get( Auction.class, aid ), a );
70
		assertTrue( Hibernate.isInitialized( a ) );
71
		assertTrue( Hibernate.isInitialized( a ) );
71
		assertSame( b, a.getSuccessfulBid() );
72
		assertSame( b, a.getSuccessfulBid() );
72
		assertFalse( Hibernate.isInitialized( a.getBids() ) );
73
		assertFalse( Hibernate.isInitialized( a.getBids() ) );
73
		assertSame( a.getBids().iterator().next(), b );
74
		assertSame( a.getBids().iterator().next(), b );
74
		assertTrue( b.isSuccessful() );
75
		assertTrue( b.isSuccessful() );
75
		t.commit();
76
		t.commit();
76
		s.close();
77
		s.close();
Summary
Number of common nesting structure subtrees0
Number of refactorable cases0
Number of non-refactorable cases0
Time elapsed for finding largest common nesting structure subtrees (ms)0.0
Clones locationClones are in different classes having the same super class
Number of node comparisons1