Revision 43691

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/FeatureManager.java
169 169
    private Feature getCorrectFeature(Feature feature, FeatureStore store,
170 170
			FeatureType featureType) throws DataException {
171 171
    	 Iterator iterator=featureType.iterator();
172
         EditableFeature newFeature=feature.getEditable();//store.createNewFeature(featureType, false);
172
         EditableFeature newFeature;
173
//         newFeature = feature.getEditable();
174
         newFeature = store.createNewFeature(featureType, false);
173 175
         FeatureType orgType = feature.getType();
174 176
         int orgIndex;
175 177
         while (iterator.hasNext()) {
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/paging/impl/FeaturePagingHelperImpl.java
70 70

  
71 71
    private static class Page {
72 72

  
73
        private final Feature[] features;
73
        private Feature[] features;
74 74
        private final long number;
75 75
        private final int size;
76 76
        private long lastaccess;
......
102 102
        public int size() {
103 103
            return this.size;
104 104
        }
105
        
106
        public void dispose() {
107
            for (int i = 0; i < features.length; i++) {
108
                features[i] = null;
109
            }
110
            this.features = null;
111
            this.lastaccess = 0;
112
        }
105 113
    } 
106 114
    
107 115
    private static class PageCache {
108 116

  
109 117
        private final int maxpages;
110
        private final List<Page> pages;
118
        private List<Page> pages;
111 119
        
112 120
        public PageCache(int maxpages) {
113 121
            this.maxpages = maxpages;
114 122
            this.pages = new ArrayList<>();
115 123
        }
116 124
        
125
        public void clear() {
126
            for (Page page : pages) {
127
                page.dispose();
128
            }
129
            this.pages = new ArrayList<>();    
130
        }
131
        
117 132
        public Page get(long pageNumber) {
118 133
            for( Page page : pages ) {
119 134
                if( page.getPageNumber() == pageNumber ) {
......
366 381
        return featSet;
367 382
    }
368 383

  
384
    @Override
369 385
    public DynObjectSet getDynObjectSet() {
370 386
    	return getFeatureSet(false).getDynObjectSet();
371 387
    }
372 388

  
389
    @Override
373 390
    public void reloadCurrentPage() throws BaseException {
374 391

  
375 392
        boolean sel_up = this.isSelectionUp();
376 393

  
377 394
        setSelectionUp(false);
378 395
        if (getCalculator().getCurrentPage() > -1) {
396
            this.cachedPages.clear();
379 397
            loadCurrentPageData();
380 398
        }
381 399

  
......
384 402
        }
385 403
    }
386 404

  
405
    @Override
387 406
    public void reload() throws BaseException {
388 407

  
389 408
        /*

Also available in: Unified diff