Buggy code:
@ Service ( "descriptionBo" ) public class DescriptionBoImpl implements DescriptionBo { @ Autowired private DescriptionAuth descriptionAuth ; @ Autowired private DescriptionValidator descriptionValidator ; @ Autowired private DescriptionDao descriptionDao ; @ Autowired private RdfIndexer rdfIndexer ; @ Autowired private OfferingResolver offeringResolver ; @ Autowired private UserBo userBo ; @ Autowired private StoreBo storeBo ; @ Autowired private OfferingDao offeringDao ; @ Autowired private StoreDao storeDao ; private static final String JENA_ERROR = "Your<seq2seq4repair_space>RDF<seq2seq4repair_space>could<seq2seq4repair_space>not<seq2seq4repair_space>be<seq2seq4repair_space>parsed." ; @ Override @ Transactional ( readOnly = false ) public void save ( String storeName , Description description ) throws NotAuthorizedException , StoreNotFoundException , ValidationException { } @ Override @ Transactional ( readOnly = false ) public void update ( String storeName , String descriptionName , Description updatedDescription ) throws DescriptionNotFoundException , NotAuthorizedException , StoreNotFoundException , ValidationException { try { Description descriptionToBeUpdated = this . findByNameAndStore ( storeName , descriptionName ) ; if ( ! ( descriptionAuth . canUpdate ( descriptionToBeUpdated ) ) ) { throw new NotAuthorizedException ( "update<seq2seq4repair_space>description" ) ; } updatedDescription . setStore ( descriptionToBeUpdated . getStore ( ) ) ; descriptionValidator . validateUpdatedDescription ( descriptionToBeUpdated , updatedDescription ) ; if ( ( updatedDescription . getDisplayName ( ) ) != null ) { descriptionToBeUpdated . setDisplayName ( updatedDescription . getDisplayName ( ) ) ; } if ( ( updatedDescription . getDescription ( ) ) != null ) { descriptionToBeUpdated . setDescription ( updatedDescription . getDescription ( ) ) ; } if ( ( updatedDescription . getUrl ( ) ) != null ) { descriptionToBeUpdated . setUrl ( updatedDescription . getUrl ( ) ) ; List < Offering > previousOfferingsCopy = new ArrayList < Offering > ( descriptionToBeUpdated . getOfferings ( ) ) ; List < Offering > descriptionOfferings = descriptionToBeUpdated . getOfferings ( ) ; descriptionOfferings . clear ( ) ; List < Offering > newOfferings = offeringResolver . resolveOfferingsFromServiceDescription ( descriptionToBeUpdated ) ; for ( Offering updatedOffering : newOfferings ) { int index = previousOfferingsCopy . indexOf ( updatedOffering ) ; if ( index < 0 ) { descriptionOfferings . add ( updatedOffering ) ; } else { Offering previousOffering = previousOfferingsCopy . get ( index ) ; previousOffering . setDescription ( updatedOffering . getDescription ( ) ) ; previousOffering . setDisplayName ( updatedOffering . getDisplayName ( ) ) ; previousOffering . setImageUrl ( updatedOffering . getImageUrl ( ) ) ; previousOffering . setVersion ( updatedOffering . getVersion ( ) ) ; previousOffering . setDisplayName ( updatedOffering . getDisplayName ( ) ) ; <START_BUG> previousOffering . setName ( updatedOffering . getVersion ( ) ) ; <END_BUG> descriptionOfferings . add ( previousOffering ) ; } } rdfIndexer . deleteService ( descriptionToBeUpdated ) ; rdfIndexer . indexService ( descriptionToBeUpdated ) ; } descriptionToBeUpdated . setLasteditor ( userBo . getCurrentUser ( ) ) ; descriptionDao . update ( descriptionToBeUpdated ) ; } catch ( MalformedURLException ex ) { throw new ValidationException ( "url" , ex . getMessage ( ) ) ; } catch ( JenaException ex ) { throw new ValidationException ( "url" , DescriptionBoImpl . JENA_ERROR ) ; } catch ( UserNotFoundException ex ) { throw new RuntimeException ( ex ) ; } } @ Override @ Transactional ( readOnly = false ) public void delete ( String storeName , String descriptionName ) throws DescriptionNotFoundException , NotAuthorizedException , StoreNotFoundException { } @ Override @ Transactional public Description findById ( Integer id ) throws DescriptionNotFoundException , NotAuthorizedException { } @ Override @ Transactional public Description findByNameAndStore ( String storeName , String descriptionName ) throws DescriptionNotFoundException , NotAuthorizedException , StoreNotFoundException { } @ Override @ Transactional public List < Description > getCurrentUserDescriptions ( ) { } @ Override @ Transactional public List < Description > getAllDescriptions ( ) throws NotAuthorizedException { } @ Override @ Transactional public List < Description > getDescriptionsPage ( int offset , int max ) throws NotAuthorizedException { } @ Override @ Transactional public List < Description > getStoreDescriptions ( String storeName ) throws NotAuthorizedException , StoreNotFoundException { } @ Override @ Transactional public List < Description > getStoreDescriptionsPage ( String storeName , int offset , int max ) throws NotAuthorizedException , StoreNotFoundException { } }

Fix:
previousOffering . setName ( updatedOffering . getName ( ) ) ;