Revision 43361 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/JDBCStoreProviderBase.java
JDBCStoreProviderBase.java | ||
---|---|---|
5 | 5 |
import java.util.Collections; |
6 | 6 |
import java.util.Iterator; |
7 | 7 |
import java.util.List; |
8 |
import org.apache.commons.lang3.BooleanUtils; |
|
9 |
import org.apache.commons.lang3.StringUtils; |
|
8 | 10 |
import org.cresques.cts.IProjection; |
9 | 11 |
import org.gvsig.fmap.dal.DALLocator; |
10 | 12 |
import org.gvsig.fmap.dal.DataManager; |
... | ... | |
135 | 137 |
} |
136 | 138 |
|
137 | 139 |
@Override |
138 |
public Envelope get() { |
|
140 |
public synchronized Envelope get() {
|
|
139 | 141 |
if( needCalculate ) { |
140 | 142 |
this.calculate(); |
141 | 143 |
} |
... | ... | |
196 | 198 |
super(params, storeServices, metadata); |
197 | 199 |
this.helper = helper; |
198 | 200 |
this.initializeFeatureType(); |
201 |
try { |
|
202 |
if( BooleanUtils.isTrue((Boolean) params.getDynValue("precalculateEnvelope")) ) { |
|
203 |
FeatureType featureType = this.getStoreServices().getDefaultFeatureType(); |
|
204 |
if( !StringUtils.isEmpty(featureType.getDefaultGeometryAttributeName()) ) { |
|
205 |
Thread thread = new Thread(new Runnable() { |
|
206 |
@Override |
|
207 |
public void run() { |
|
208 |
logger.debug("Precalculating envelope of '"+getSourceId()+"'."); |
|
209 |
getEnvelopeValue().get(); |
|
210 |
} |
|
211 |
}, "PrecalculateEnvelopeOfDBTable"); |
|
212 |
thread.start(); |
|
213 |
Thread.sleep(1); |
|
214 |
} |
|
215 |
} |
|
216 |
} catch(Exception ex) { |
|
217 |
logger.warn("Probems precalculating the envelope of table '"+this.getSourceId()+"'.", ex); |
|
218 |
} |
|
199 | 219 |
} |
200 | 220 |
|
201 | 221 |
|
... | ... | |
345 | 365 |
|
346 | 366 |
@Override |
347 | 367 |
public String getSourceId() { |
348 |
return this.getHelper().getSourceId(this.getParameters()); |
|
368 |
try { |
|
369 |
return this.getHelper().getSourceId(this.getParameters()); |
|
370 |
} catch(Exception ex) { |
|
371 |
return "unknow"; |
|
372 |
} |
|
349 | 373 |
} |
350 | 374 |
|
351 | 375 |
@Override |
Also available in: Unified diff