Revision 46277 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

View differences:

DefaultFeatureSet.java
246 246
    }
247 247

  
248 248
    private long calculateSize() throws DataException {
249
        boolean hasLimit = this.query.hasLimit();
249 250
        long limit = this.query.getLimit();
250 251
        long mySize = 0;
251 252
        
......
258 259
                return 0;
259 260
            }
260 261
            mySize = provider.getSize();
261
            return (limit>0 && mySize>limit)? limit:mySize;
262
            return (hasLimit && mySize>limit)? limit:mySize;
262 263

  
263 264
        case FILTERED:
264 265
        case ORDERED_FILTERED:
265 266
            try {
266 267
                iter = this.fastIterator();
267
                while ((limit>0 && (mySize<limit)) || limit==0 ) {
268
                while ((hasLimit && (mySize<limit)) || !hasLimit ) {
268 269
                    iter.next();
269 270
                    mySize++;
270 271
                }
......
273 274
            } finally {
274 275
                DisposeUtils.disposeQuietly(iter);
275 276
            }
276
            return (limit>0 && mySize>limit)? limit:mySize;
277
            return (limit>=0 && mySize>limit)? limit:mySize;
277 278

  
278 279
        case EDITED:
279 280
        case ORDERD_EDITED:
280 281
            mySize = provider.getSize()
281 282
                + store.getFeatureManager().getDeltaSize();
282
            return (limit>0 && mySize>limit)? limit:mySize;
283
            return (hasLimit && mySize>limit)? limit:mySize;
283 284

  
284 285
        case EDITED_FILTERED:
285 286
        case ORDERED_EDITED_FILTER:
286 287
            try {
287 288
                iter = this.fastIterator();
288
                while ((limit>0 && (mySize<limit)) || limit==0 ) {
289
                while ((hasLimit && (mySize<limit)) || !hasLimit ) {
289 290
                    iter.next();
290 291
                    mySize++;
291 292
                }
......
294 295
            } finally {
295 296
                DisposeUtils.disposeQuietly(iter);
296 297
            }
297
            return (limit>0 && mySize>limit)? limit:mySize;
298
            return (hasLimit && mySize>limit)? limit:mySize;
298 299
            
299 300
        default:
300 301
            throw new IllegalArgumentException();

Also available in: Unified diff