Revision 45195 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/featureset/DefaultFeatureSet.java
DefaultFeatureSet.java | ||
---|---|---|
47 | 47 |
import org.gvsig.fmap.dal.feature.impl.DefaultFeatureStoreTransforms; |
48 | 48 |
import org.gvsig.fmap.dal.feature.impl.DefaultFeatureType; |
49 | 49 |
import org.gvsig.fmap.dal.feature.spi.FeatureSetProvider; |
50 |
import org.gvsig.tools.ToolsLocator; |
|
50 | 51 |
import org.gvsig.tools.dispose.DisposableIterator; |
51 | 52 |
import org.gvsig.tools.dispose.DisposeUtils; |
52 | 53 |
import org.gvsig.tools.evaluator.Evaluator; |
54 |
import org.gvsig.tools.exception.BaseException; |
|
53 | 55 |
import org.gvsig.tools.observer.Observable; |
54 | 56 |
import org.gvsig.tools.observer.Observer; |
55 | 57 |
|
... | ... | |
81 | 83 |
protected FeatureType defaultFeatureType; |
82 | 84 |
protected FeatureType defatulFeatureTypeForProvider; |
83 | 85 |
protected boolean ignoreChanges; |
86 |
private boolean disposed = false; |
|
84 | 87 |
|
85 | 88 |
public DefaultFeatureSet(DefaultFeatureStore store, FeatureQuery query) |
86 | 89 |
throws DataException { |
90 |
DisposeUtils.bind(this); |
|
87 | 91 |
this.featureToIgnoreNotification = null; |
88 | 92 |
this.iteratorMode = NO_CHECKED; |
89 | 93 |
this.sourceStoreModified = false; |
... | ... | |
281 | 285 |
throw new IllegalArgumentException(); |
282 | 286 |
} |
283 | 287 |
} |
288 |
|
|
289 |
@Override |
|
290 |
public synchronized final void dispose() { |
|
291 |
// Check if we have already been disposed, and don't do it again |
|
292 |
if (!disposed) { |
|
293 |
if (DisposeUtils.release(this)) { |
|
294 |
try { |
|
295 |
doDispose(); |
|
296 |
} catch (Exception ex) { |
|
297 |
LOG.error("Error performing dispose", ex); |
|
298 |
} finally { |
|
299 |
disposed = true; |
|
300 |
} |
|
301 |
} |
|
302 |
} |
|
303 |
} |
|
284 | 304 |
|
285 |
public void dispose() { |
|
305 |
public void doDispose() {
|
|
286 | 306 |
if( this.store!=null ) { |
287 | 307 |
this.store.deleteObserver(this); |
288 | 308 |
this.store = null; |
Also available in: Unified diff