Revision 46133

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/featureset/EditedIterator.java
38 38
import org.gvsig.fmap.dal.feature.impl.featurereference.FeatureReferenceFactory;
39 39
import org.gvsig.fmap.dal.feature.spi.FeatureProvider;
40 40
import org.gvsig.fmap.dal.feature.spi.FeatureSetProvider;
41
import org.gvsig.tools.dispose.DisposableIterator;
42
import org.gvsig.tools.dispose.DisposeUtils;
41 43
import org.gvsig.tools.exception.BaseException;
42 44
import org.gvsig.tools.util.ChainedIterator;
43 45

  
......
77 79
        }
78 80

  
79 81

  
80
        Iterator<FeatureProvider> wrappedProviderIterator = new Iterator<FeatureProvider>() {
82
        Iterator<FeatureProvider> wrappedProviderIterator = new DisposableIterator<FeatureProvider>() {
81 83
            @Override
82 84
            public boolean hasNext() {
83 85
                return providerIterator.hasNext();
......
104 106
            public void remove() {
105 107
                EditedIterator.super.remove();
106 108
            }
109

  
110
            @Override
111
            public void dispose() {
112
                DisposeUtils.disposeQuietly(providerIterator);
113
            }
107 114
        };
108 115
        this.iterator = new ChainedIterator(wrappedProviderIterator, insertedFeatures, updatedFeatures);
109 116
        if (!canDelegateInProvider) {
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/DefaultIterator.java
156 156
	}
157 157

  
158 158
	protected void doDispose() throws BaseException {
159
		if (iterator instanceof DisposableIterator){
160
			((DisposableIterator)this.iterator).dispose();
161
		}
159
                DisposeUtils.disposeQuietly(this.iterator);
162 160
		this.iterator = null;
163 161
                DisposeUtils.disposeQuietly(this.fset);
164 162
		this.fset = null;

Also available in: Unified diff