Revision 1066

View differences:

org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/store/properties/SimpleProviderStatistics.java
343 343
			initializedBand[iBand] = false;
344 344
			type[iBand] = provider.getDataType()[iBand];
345 345
		}
346
		
347
		Buffer refToBuffer = null;
346 348

  
347 349
		for (int height = 0; height < provider.getHeight(); height += blockHeight) {
348 350
			Object buf = null;
......
350 352
				buf = provider.readBlock(height, blockHeight, scale);
351 353
				if(buf == null)
352 354
					return;
353
				if(buf instanceof Buffer) 
355
				if(buf instanceof Buffer) {
356
					refToBuffer = (Buffer)buf; //Guardamos la referencia para hacer un dispose al acabar
354 357
					buf = getDataFromBuffer(type, (Buffer)buf);
358
				}
355 359

  
356 360
				switch (type[0]) {
357 361
				case Buffer.TYPE_BYTE:	  b = (byte[][][]) buf; break;
......
462 466
			}
463 467
			percent = ((height * 100) / datasetHeight);
464 468
			
465
			if(buf != null && buf instanceof Buffer)
466
				((Buffer)buf).dispose();
469
			if(refToBuffer != null && refToBuffer instanceof Buffer)
470
				((Buffer)refToBuffer).dispose();
471
			buf = null;
467 472
		}
468 473
		percent = 100;
469 474

  

Also available in: Unified diff