Revision 46940

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/DefaultForeingKey.java
4 4
import org.gvsig.fmap.dal.feature.ForeingKey;
5 5
import java.util.List;
6 6
import java.util.Objects;
7
import org.apache.commons.codec.digest.DigestUtils;
7 8
import org.apache.commons.lang3.StringUtils;
8 9
import org.gvsig.expressionevaluator.Expression;
9 10
import org.gvsig.expressionevaluator.ExpressionBuilder;
......
482 483
                !StringUtils.equalsIgnoreCase(theStoresRepository.getLabel(), this.repositoryLabelOfAvailableValues)
483 484
                ) {
484 485

  
485
            LOGGER.info("Loading available values for field '" + this.getStoreName() + "." + this.descriptor.getName()+ "' from table '" + this.getTableName() + "'.");
486 486
            FeatureStore foreingStore = null;
487 487
            try {
488 488
                this.repositoryLabelOfAvailableValues = theStoresRepository.getLabel();
......
490 490
                foreingStore = (FeatureStore) theStoresRepository.getStore(
491 491
                        this.getTableName()
492 492
                );
493
                LOGGER.info("Loading available values for field '" + this.getStoreName() + "." + this.descriptor.getName()+ "' from table '" + this.getTableName() + "'/"+DataStore.getFullNameQuietly(foreingStore)+".");
493 494
                this.availableValues = this.getAvailableValuesFromStore(foreingStore);
494 495

  
495 496
            } catch (Exception ex) {
......
663 664
                    }
664 665
                    DataStoreParameters params = explorer.get(tableName);
665 666
                    if( explorer.exists(params) ) {
666
                        String id = tableName+"-"+dataManager.createUniqueID().replace("-", "");
667
                        String id = getRepositoryId(store, tableName); //tableName+"-"+dataManager.createUniqueID().replace("-", "");
667 668
                        BaseStoresRepository repo3 = new BaseStoresRepository(id, null, explorer.getParameters());
668 669
                        repo3.add(tableName, params);
669 670
                        return repo3;
......
674 675
                return repository;
675 676
            }
676 677
    }
678
    
679
    private String getRepositoryId(FeatureStore store, String tableName) {
680
        String id;
681
        if(store == null){
682
            DataManager dataManager = DALLocator.getDataManager();
683
            id = tableName+"-"+dataManager.createUniqueID().replace("-", "");
684
        } else {
685
            id = tableName + "-" + DigestUtils.md5Hex(store.getFullName());
686
        }
687
        return id;
688
    }
677 689

  
678 690
}

Also available in: Unified diff