EntityPersister persister = session.getFactory().getEntityPersister( li.getEntityName() ); EntityKey key = new EntityKey( li.getIdentifier(), persister, session.getEntityMode() ); // any earlier proxy takes precedence if ( !proxiesByKey.containsKey( key ) ) { proxiesByKey.put( key, proxy ); } proxy.getHibernateLazyInitializer().setSession( session );
if ( reassociateIfUninitializedProxy( object, source ) ) { log.trace( "reassociated uninitialized proxy" ); // an uninitialized proxy, noop, don't even need to // return an id, since it is never a save() } else { //initialize properties of the event: final Object entity = source.getPersistenceContext().unproxyAndReassociate( object ); event.setEntity( entity ); event.setEntry( source.getPersistenceContext().getEntry( entity ) ); //return the id in the event object event.setResultId( performSaveOrUpdate( event ) ); }
Clone fragments detected by clone detection tool
File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/engine/StatefulPersistenceContext.java File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/event/def/DefaultSaveOrUpdateEventListener.java
Method name: void reassociateProxy(LazyInitializer, HibernateProxy) Method name: void onSaveOrUpdate(SaveOrUpdateEvent)
Number of AST nodes: 5 Number of AST nodes: 6
1
EntityPersister persister = session.getFactory().getEntityPersister( li.getEntityName() );
2
			EntityKey key = new EntityKey( li.getIdentifier(), persister, session.getEntityMode() );
1
if ( reassociateIfUninitializedProxy( object, source ) ) {
2
			log.trace( "reassociated uninitialized proxy" );
3
			// an uninitialized proxy, noop, don't even need to
4
			// return an id, since it is never a save()
5
		}
6
		else {
3
		  	// any earlier proxy takes precedence
7
			//
4
			if ( !proxiesByKey.containsKey( key ) ) {
5
				proxiesByKey.put( key, proxy );
6
			}
7
			proxy.getHibernateLazyInitializer()
8
initialize properties of the event:
9
			final Object entity = source.getPersistenceContext().unproxyAndReassociate( object );
10
			event.setEntity( entity );
11
			event.setEntry( source.getPersistenceContext().getEntry( entity ) );
12
			//return the id in the event object
8
.setSession( session );
13
			event.setResultId( performSaveOrUpdate( event ) );
14
		}
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.2
Clones locationClones are in different classes
Number of node comparisons1