Revision 981 org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/dataObjects/FlyrVectIVectorLayer.java

View differences:

FlyrVectIVectorLayer.java
301 301
    }
302 302

  
303 303
    public void close() {
304
        if( this.m_Layer==null ) {
304
        if( this.m_Layer==null ) {           
305 305
            this.free();
306 306
        }
307 307
    }
......
489 489
            return;
490 490
        }
491 491
        try {
492
            featureStore.finishEditing();
492
            if( featureStore.isEditing() || featureStore.isAppending() ) {
493
                featureStore.finishEditing();
494
            }
493 495
            String name = featureStore.getProviderName();
494 496
            DataStoreParameters params = featureStore.getParameters();
495 497
            featureStore.dispose();
496 498
            featureStore = (FeatureStore) DALLocator.getDataManager().openStore(name, params);
497 499
            featureType = featureStore.getDefaultFeatureType();
498
        } catch (final DataException e) {
499
            // No puede finalizar la edici?n. Es posible que se haya cerrado previamente.
500
        } catch (ValidateDataParametersException e) {
501
			org.slf4j.LoggerFactory.getLogger(FlyrVectIVectorLayer.class).debug("Error opening store", e);
502
		} catch (LocatorException e) {
503
			org.slf4j.LoggerFactory.getLogger(FlyrVectIVectorLayer.class).debug("Error opening store", e);
500
        } catch (final Exception e) {
501
            logger.warn("Can't execute postProcess on '"+this.getName()+"'.",e);
504 502
		}
505 503
    }
506 504

  
......
527 525
    }
528 526

  
529 527
    public void free() {
528
        if( this.featureStore!=null ) {
529
            if( featureStore.isEditing() || featureStore.isAppending() ) {
530
                try {
531
                    featureStore.finishEditing();
532
                } catch (DataException ex) {
533
                    logger.warn("Can't free '"+this.getName()+"'.",ex);
534
                }
535
            }            
536
            featureStore.dispose();
537
            featureStore = null;
538
        }
530 539
        if( m_Layer!=null ) {
531 540
            m_Layer.dispose();
532 541
            m_Layer = null;
533 542
        }
534
        if( this.featureStore!=null ) {
535
            featureStore.dispose();
536
            featureStore = null;
537
        }
538 543
    }
539 544

  
540 545
    public IOutputChannel getOutputChannel() {

Also available in: Unified diff