Revision 36359 branches/v2_0_0_prep/libraries/libFMap_dal/src/org/gvsig/fmap/dal/feature/impl/DefaultFeatureStore.java

View differences:

DefaultFeatureStore.java
821 821
    }
822 822

  
823 823
    synchronized public void edit(int mode) throws DataException {
824
        LOG.debug("Starting editing in mode: {}", new Integer(mode));
824 825
        try {
825 826
            if (this.mode != MODE_QUERY) {
826 827
                throw new AlreadyEditingException(this.getName());
......
876 877

  
877 878
    private void setIndexesValidStatus(boolean valid) {
878 879
        FeatureIndexes indexes = getIndexes();
880
        LOG.debug("Setting the store indexes to valid status {}: {}", (valid
881
            ? Boolean.TRUE : Boolean.FALSE), indexes);
879 882
        for (Iterator iterator = indexes.iterator(); iterator.hasNext();) {
880 883
            FeatureIndex index = (FeatureIndex) iterator.next();
881
            if (index instanceof DefaultFeatureIndex) {
882
                ((DefaultFeatureIndex) index).setValid(valid);
884
            if (index instanceof FeatureIndexProviderServices) {
885
                FeatureIndexProviderServices indexServices =
886
                    (FeatureIndexProviderServices) index;
887
                indexServices.setValid(valid);
883 888
            }
884 889
        }
885 890
    }
886 891

  
887 892
    private void updateIndexes() throws FeatureIndexException {
888 893
        FeatureIndexes indexes = getIndexes();
894
        LOG.debug("Refilling indexes: {}", indexes);
889 895
        for (Iterator iterator = indexes.iterator(); iterator.hasNext();) {
890 896
            FeatureIndex index = (FeatureIndex) iterator.next();
891 897
            if (index instanceof FeatureIndexProviderServices) {
......
896 902
        }
897 903
    }
898 904

  
905
    private void waitForIndexes() {
906
        FeatureIndexes indexes = getIndexes();
907
        LOG.debug("Waiting for indexes to finish filling: {}", indexes);
908
        for (Iterator iterator = indexes.iterator(); iterator.hasNext();) {
909
            FeatureIndex index = (FeatureIndex) iterator.next();
910
            if (index instanceof FeatureIndexProviderServices) {
911
                FeatureIndexProviderServices indexServices =
912
                    (FeatureIndexProviderServices) index;
913
                indexServices.waitForIndex();
914
            }
915
        }
916
    }
917

  
899 918
    private void disposeIndexes() {
900 919
        FeatureIndexes indexes = getIndexes();
920
        LOG.debug("Disposing indexes: {}", indexes);
901 921
        for (Iterator iterator = indexes.iterator(); iterator.hasNext();) {
902 922
            FeatureIndex index = (FeatureIndex) iterator.next();
903 923
            if (index instanceof FeatureIndexProviderServices) {
......
961 981

  
962 982
    synchronized public void insert(EditableFeature feature)
963 983
        throws DataException {
984
        LOG.debug("In editing mode {}, insert feature: {}", new Integer(mode),
985
            feature);
964 986
        try {
965 987
            switch (mode) {
966 988
            case MODE_QUERY:
......
985 1007
                if (feature.getSource() != null) {
986 1008
                    throw new NoNewFeatureInsertException(this.getName());
987 1009
                }
1010

  
1011
                waitForIndexes();
1012

  
988 1013
                notifyChange(FeatureStoreNotification.BEFORE_INSERT, feature);
989 1014
                newVersionOfUpdate();
990 1015
                if ((lastChangedFeature == null)
......
1105 1130
    }
1106 1131

  
1107 1132
    synchronized public void finishEditing() throws DataException {
1133
        LOG.debug("finish editing of mode: {}", new Integer(mode));
1108 1134
        try {
1109 1135
            switch (mode) {
1110 1136
            case MODE_QUERY:
......
1122 1148
                if (hasStrongChanges && !this.allowWrite()) {
1123 1149
                    throw new WriteNotAllowedException(getName());
1124 1150
                }
1125

  
1126 1151
                notifyChange(FeatureStoreNotification.BEFORE_FINISHEDITING);
1127 1152
                if (hasStrongChanges) {
1128 1153
                    validateFeatures(Feature.FINISH_EDITING);

Also available in: Unified diff