Revision 44346 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/JDBCServerExplorerBase.java

View differences:

JDBCServerExplorerBase.java
36 36
import org.gvsig.fmap.dal.DataManager;
37 37
import org.gvsig.fmap.dal.DataStore;
38 38
import org.gvsig.fmap.dal.DataStoreParameters;
39
import org.gvsig.fmap.dal.DatabaseWorkspaceManager;
39 40
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.TABLE_RESOURCES_NAME;
40 41
import org.gvsig.fmap.dal.NewDataStoreParameters;
41 42
import org.gvsig.fmap.dal.exception.CloseException;
......
69 70
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.UpdateTableStatisticsOperation;
70 71
import org.gvsig.tools.exception.BaseException;
71 72
import org.gvsig.tools.resourcesstorage.EmptyResourcesStorage;
73
import org.gvsig.tools.resourcesstorage.FilesResourcesStorage;
72 74
import org.gvsig.tools.resourcesstorage.ResourcesStorage;
73 75
import org.slf4j.Logger;
74 76
import org.slf4j.LoggerFactory;
......
406 408
    }
407 409

  
408 410
    private ResourcesStorage getResourcesStorage(DataStoreParameters parameters, String storeName) {
409
        try {
410
            List<JDBCStoreParameters> tables = this.list();
411
            for (JDBCStoreParameters params : tables) {
412
                String theTableName = params.getTable();
413
                if (StringUtils.equals(theTableName, TABLE_RESOURCES_NAME)) {
414
                    JDBCResourcesStorage theResourcesStorage = new JDBCResourcesStorage(
415
                            params,
416
                            storeName
417
                    );
418
                    return theResourcesStorage;
411
        
412
        if( !DatabaseWorkspaceManager.isInternalTable(storeName) ) {
413
            ResourcesStorage alternateResourcesStorage = null;
414
            try {
415
                DataManager dataManager = DALLocator.getDataManager();
416
                DatabaseWorkspaceManager workspace = dataManager.getDatabaseWorkspace(parameters);
417
                if( workspace != null ) {
418
                    alternateResourcesStorage = workspace.getAlternativeResourcesStorage();
419 419
                }
420
            } catch(Throwable th) {
421
                alternateResourcesStorage = null;
420 422
            }
421
        } catch (Throwable ex) {
422
            LOG.warn("Can't retrieve reources storage from table '" + TABLE_RESOURCES_NAME + "' in '"+this.getParameters().getUrl()+"'.", ex);
423
            try {
424
                List<JDBCStoreParameters> tables = this.list();
425
                for (JDBCStoreParameters params : tables) {
426
                    String theTableName = params.getTable();
427
                    if (StringUtils.equals(theTableName, TABLE_RESOURCES_NAME)) {
428
                        JDBCResourcesStorage theResourcesStorage = new JDBCResourcesStorage(
429
                                alternateResourcesStorage,
430
                                params,
431
                                storeName
432
                        );
433
                        return theResourcesStorage;
434
                    }
435
                }
436
            } catch (Throwable ex) {
437
                LOG.warn("Can't retrieve reources storage from table '" + TABLE_RESOURCES_NAME + "' in '"+this.getParameters().getUrl()+"'.", ex);
438
            }
423 439
        }
424 440
        EmptyResourcesStorage theResourcesStorage = new EmptyResourcesStorage();
425 441
        return theResourcesStorage;            

Also available in: Unified diff