Revision 1055

View differences:

org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/tool/viewexport/Export.java
303 303
	public void setBand(int nband) {
304 304
		
305 305
	}
306

  
307
	public void dispose() {
308
		// TODO Auto-generated method stub
309
		
310
	}
306 311
}
307 312

  
308 313
class MyFileFilter extends FileFilter{
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/tool/saveraster/operation/RasterizerLayer.java
328 328
	public void setBand(int nband) {
329 329
		// TODO Auto-generated method stub
330 330
	}
331

  
332
	public void dispose() {
333
		// TODO Auto-generated method stub
334
		
335
	}
331 336
}
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/tool/filter/FilterListener.java
366 366
			filterProcess.addParam("layer", ((FLyrRaster) getFilterPanel().getLayer()));
367 367
			filterProcess.addParam("listfilterused", listFilterUsed);
368 368
			filterProcess.start();
369
			filterProcess = null;
369 370
		}
370 371
	}
371 372

  
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/tool/filter/ui/FilterDialog.java
31 31
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
32 32
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
33 33
import org.gvsig.raster.fmap.layers.FLyrRaster;
34
import org.gvsig.raster.tools.app.basic.raster.bean.previewbase.PreviewRequestManager;
34 35

  
35 36
/**
36 37
 * Dialogo para los filtros de raster.
......
117 118
		}
118 119
			
119 120
		if (e.getButton() == ButtonsPanel.BUTTON_CLOSE) {
121
			((PreviewRequestManager)getFilterPanel().getPreviewBasePanel().getPreviewManager()).closePreviewLayer();
120 122
			close();
121 123
		}
122 124
	}
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/tool/filter/ui/FilterPanel.java
105 105
	 * Obtiene el panel con el histograma
106 106
	 * @return HistogramPanel
107 107
	 */
108
	private PreviewBasePanel getPreviewBasePanel() {
108
	public PreviewBasePanel getPreviewBasePanel() {
109 109
		if (previewBasePanel == null) {
110 110
			ArrayList<Object> list = new ArrayList<Object>();
111 111
			list.add(getMainPanel());
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/raster/process/ClippingProcess.java
100 100
	
101 101
	private Buffer                        buffer              = null;
102 102
	private IncrementableTask             task                = null;
103

  
103
	
104 104
	/**
105 105
	 * Par?metros obligatorios al proceso:
106 106
	 * <UL>
......
534 534
	public String getTitle() {
535 535
		return RasterToolsUtil.getText(this, "incremento_recorte");
536 536
	}
537
	
538
	/*
539
	 * (non-Javadoc)
540
	 * @see java.lang.Object#finalize()
541
	 */
542
	protected void finalize() throws Throwable {
543
		fileName            = null;
544
		suffix              = null;
545
		rasterSE            = null;
546
		drawableBands       = null;
547
		pValues             = null;
548
		viewName            = null;
549
		params              = null;
550
		colorInterp         = null;
551
		affineTransform     = null;
552
		wcValues            = null;
553
		sparams             = null; 
554
		buffer              = null;
555
		task                = null;
556
		if(selectedRois != null) {
557
			selectedRois.clear();
558
			selectedRois = null;
559
		}
560
		super.finalize();
561
	}
537 562
}
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/raster/process/FilterProcess.java
45 45
import org.gvsig.fmap.dal.coverage.store.RasterQuery;
46 46
import org.gvsig.fmap.dal.coverage.store.RasterWriter;
47 47
import org.gvsig.fmap.dal.coverage.store.props.ColorInterpretation;
48
import org.gvsig.fmap.dal.exception.CloseException;
48 49
import org.gvsig.raster.fmap.layers.FLyrRaster;
49 50
import org.gvsig.raster.tools.app.basic.RasterToolsUtil;
50 51
import org.gvsig.raster.tools.app.basic.raster.bean.previewbase.ParamStruct;
......
124 125
			lyr.setReadingData(Thread.currentThread().toString());
125 126

  
126 127
		RasterDataStore dstoreCopy = null;
127
		RasterQuery query = null;
128
		Buffer buffer = null;
128
		RasterQuery query          = null;
129
		Buffer buffer              = null;
130
		Buffer buff                = null;
131
		Grid grid                  = null;
132
		Buffer alpha               = null;
129 133
		
130 134
		try {
131 135
			insertLineLog(RasterToolsUtil.getText(this, "leyendo_raster"));
......
148 152

  
149 153
			query.setAreaOfInterest();
150 154
			
151
			Buffer buff = dstoreCopy.query(query);
155
			buff = dstoreCopy.query(query);
152 156
			if(buff.isReadOnlyBuffer()) 
153 157
				buff.addDrawableBands(renderBands);
154 158
			
155
			Grid grid = rManager.createGrid(buff, dstoreCopy, true);
159
			grid = rManager.createGrid(buff, dstoreCopy, true);
156 160

  
157 161
			//Obtenemos la lista de filtros
158 162
			rasterFilterList = grid.getFilterList();
......
199 203
					rasterDataSource.getTransparency().getAlphaBandNumber() >= 0) {
200 204
				query.setDrawableBands(new int[]{rasterDataSource.getTransparency().getAlphaBandNumber()});
201 205
				query.setAreaOfInterest();
202
				Buffer alpha = dstoreCopy.query(query);
206
				alpha = dstoreCopy.query(query);
203 207
				if(grid.getFilterList().getAlphaBand() != null)
204 208
					alpha = rManager.getColorConversion().mergeTransparencyBuffers(alpha, grid.getFilterList().getAlphaBand());
205 209
				writerBufferServer.setAlphaBuffer(alpha);
......
266 270
		} catch (FilterManagerException e) {
267 271
			throw new ProcessException("error_adding_filters", e);
268 272
		} finally {
269
			rasterDataSource = null;
270
			if(buffer != null)
271
				buffer.free();
273
			if(writerBufferServer != null)
274
				writerBufferServer.dispose();
275
			if(buff != null)
276
				buff.dispose();
277
			if(rasterFilterList != null)
278
				rasterFilterList.dispose();
279
			if (grid != null)
280
				grid.dispose();
281
			if(alpha != null)
282
				alpha.dispose();
283
			if(dstoreCopy != null)
284
				try {
285
					dstoreCopy.close();
286
				} catch (CloseException e) {
287
				}
272 288
			if(lyr != null)
273 289
				lyr.setReadingData(null);
290
			dispose();
274 291
		}
275 292
	}
276 293

  
......
318 335
	public String getTitle() {
319 336
		return PluginServices.getText(this, "aplicando_filtros");
320 337
	}
338
	
339
	/*
340
	 * (non-Javadoc)
341
	 * @see org.gvsig.raster.tools.app.basic.raster.process.RasterProcess#dispose()
342
	 */
343
	public void dispose() {
344
		rasterDataSource = null;
345
		if(listFilterUsed != null) {
346
			listFilterUsed.clear();
347
			listFilterUsed = null;
348
		}
349
		rasterFilterList = null;
350
		geoRasterWriter  = null;
351
		lyr              = null;
352
	}
353
	
354
	/*
355
	 * (non-Javadoc)
356
	 * @see java.lang.Object#finalize()
357
	 */
358
	@Override
359
	protected void finalize() throws Throwable {
360
		dispose();
361
		super.finalize();
362
	}
321 363
}
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/raster/process/OverviewsProcess.java
41 41
	private int          value         = 0;
42 42
	private int          resamplingAlg = OverviewBuilder.AVERAGE;
43 43
	private int[]        overviews     = new int[] { 2, 4, 8, 16 };
44

  
44
	
45 45
	/*
46 46
	 * (non-Javadoc)
47 47
	 * @see org.gvsig.rastertools.RasterProcess#init()
......
114 114
	public String getTitle() {
115 115
		return PluginServices.getText(this, "incremento_overview");
116 116
	}
117
	
118
	/*
119
	 * (non-Javadoc)
120
	 * @see java.lang.Object#finalize()
121
	 */
122
	protected void finalize() throws Throwable {
123
		rasterSE           = null;
124
		overviews           = null;
125
		super.finalize();
126
	}
117 127
}
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/raster/process/HistogramProcess.java
101 101
	public String getTitle() {
102 102
		return PluginServices.getText(this, "calculando_histograma");
103 103
	}
104
	
105
	/*
106
	 * (non-Javadoc)
107
	 * @see java.lang.Object#finalize()
108
	 */
109
	protected void finalize() throws Throwable {
110
		lastHistogram           = null;
111
		histogramable           = null;
112
		super.finalize();
113
	}
104 114
}
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/raster/process/RasterProcess.java
35 35
import org.gvsig.gui.beans.incrementabletask.IncrementableTask;
36 36
import org.gvsig.raster.fmap.layers.FLyrRaster;
37 37
import org.gvsig.raster.tools.app.basic.RasterToolsUtil;
38
import org.gvsig.tools.dispose.Disposable;
38 39
import org.slf4j.Logger;
39 40
import org.slf4j.LoggerFactory;
40 41
/**
......
45 46
 * 18/12/2007
46 47
 * @author Nacho Brodin nachobrodin@gmail.com
47 48
 */
48
public abstract class RasterProcess implements IIncrementable, IncrementableListener, Runnable {
49
public abstract class RasterProcess implements IIncrementable, IncrementableListener, Runnable, Disposable {
49 50
	protected IncrementableTask incrementableTask = null;
50
	protected volatile Thread   blinker           = new Thread(this);
51
	protected volatile Thread   blinker           = null;
51 52
	protected TaskEventManager  taskEventManager  = null;
52 53
	protected IProcessActions   externalActions   = null;
53 54
	protected Hashtable<String, Object>
......
60 61
	private IProcessActions     queueActions      = null;
61 62
	private Logger              logger            = LoggerFactory.getLogger(RasterProcess.class.toString());
62 63

  
64
	
63 65
	/**
64 66
	 * Crea la ventana de IncrementableTask
65 67
	 */
......
94 96
	 */
95 97
	public void start() {
96 98
		showIncrementableWindow();
99
		if(blinker == null)
100
			blinker = new Thread(this);
97 101
		blinker.start();
98 102
	}
99 103
		
......
182 186
			if (queueActions != null)
183 187
				queueActions.end(this);
184 188
			time = new java.util.Date().getTime() - t1;
189
			blinker = null;
185 190
		}
186 191
	}
187 192
	
......
423 428
	public boolean isPausable() {
424 429
		return false;
425 430
	}
431
	
432
	public void dispose() {
433
		try {
434
			finalize();
435
		} catch (Throwable e) {
436
		}
437
	}
438
	
439
	/*
440
	 * (non-Javadoc)
441
	 * @see java.lang.Object#finalize()
442
	 */
443
	@Override
444
	protected void finalize() throws Throwable {
445
		incrementableTask           = null;
446
		blinker                     = null;
447
		externalActions             = null;
448
		if(taskParams != null) {
449
			taskParams.clear();
450
			taskParams = null;
451
		}
452
		log                         = null;
453
		lastLine                    = null;
454
		queueActions                = null;
455
		logger                      = null;
456
		super.finalize();
457
	}
426 458
}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.fmap/src/main/java/org/gvsig/raster/fmap/layers/DefaultFLyrRaster.java
190 190
	protected String                readingData            = null;
191 191
	//It is set to true if the method init has been called at least once
192 192
	protected boolean               layerInitialize        = false;
193

  
193
	
194 194
	public DefaultFLyrRaster() {
195 195
		affineTransformList = rManager.createHistoricalService();
196 196
	}
......
295 295
		} catch (RasterDriverException e) {
296 296
			throw new LoadLayerException(this.getName());
297 297
		}
298
		
299
		/*if (dataStore != null)
300
			try {
301
				this.init();
302
			} catch (FilePaletteException e) {
303
				throw new LoadLayerException("", e);
304
			}*/
305 298
	}
306 299

  
307 300
	/**
......
963 956
					}
964 957

  
965 958
					dataStore = null;
959
					if(render != null)
960
						render.dispose();
966 961
					render = null;
967 962
					// System.gc();
968 963
					this.setRemoveRasterFlag(true);
......
1488 1483
	 * @see com.iver.cit.gvsig.fmap.layers.layerOperations.Classifiable#removeLegendListener(com.iver.cit.gvsig.fmap.layers.LegendListener)
1489 1484
	 */
1490 1485
	public void removeLegendListener(LegendListener listener) {
1491
		layerChangeSupport.removeLayerListener(listener);
1486
		if(layerChangeSupport != null)
1487
			layerChangeSupport.removeLayerListener(listener);
1492 1488
	}
1493 1489

  
1494 1490
	/*
......
1839 1835

  
1840 1836
	public void enableAwake() throws NotAvailableStateException {state.enableAwake();}
1841 1837

  
1842
	public void enableClosed() throws NotAvailableStateException {state.enableClosed();}
1838
	public void enableClosed() throws NotAvailableStateException {
1839
		if(state != null)
1840
			state.enableClosed();
1841
	}
1843 1842

  
1844 1843
	public void enableOpen() throws NotAvailableStateException {state.enableOpen();}
1845 1844

  
......
1941 1940

  
1942 1941
	@Override
1943 1942
	protected void doDispose() throws BaseException {
1944
		// Nothing to do
1943
		if(render != null)
1944
			render.dispose();
1945
		if(dataStore != null)
1946
			dataStore.dispose();
1947
		finalize();
1945 1948
	}
1946 1949

  
1947 1950
	/*
......
2090 2093
			throw new ReadException(getDataStore().getName(), e);
2091 2094
		} 
2092 2095
	}
2096
	
2097
	/*
2098
	 * (non-Javadoc)
2099
	 * @see java.lang.Object#finalize()
2100
	 */
2101
	protected void finalize() {
2102
		layerChangeSupport             = null;
2103
		state                          = null;
2104
		lastLegend                     = null;
2105
		colorTableLoadedFromProject    = null;
2106
		if(rois != null) {
2107
			rois.clear();
2108
			rois = null;
2109
		}
2110
		strategy                       = null;
2111
		configuration                  = null;
2112
		image                          = null;
2113
		fileUtil                       = null;
2114
		rasterUtil                     = null;
2115
		crsUtil                        = null;
2116
		mathUtil                       = null;
2117
		uri                            = null;
2118
		affineTransformList            = null;
2119
		readingData                    = null;
2120
		dataStore                      = null;
2121
		render                         = null;
2122
	}
2093 2123

  
2094 2124
}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/grid/render/DefaultRender.java
63 63
import org.gvsig.raster.impl.datastruct.DefaultViewPortData;
64 64
import org.gvsig.raster.impl.datastruct.ExtentImpl;
65 65
import org.gvsig.raster.impl.grid.GridImpl;
66
import org.gvsig.raster.impl.grid.filter.DefaultRasterFilterList;
67 66
import org.gvsig.raster.impl.grid.filter.band.ColorTableFilter;
68 67
import org.gvsig.raster.impl.store.properties.DataStoreColorInterpretation;
69 68
import org.gvsig.tools.ToolsLocator;
......
409 408
		throws RasterDriverException, InvalidSetViewException, ProcessInterruptedException {
410 409
		
411 410
		grid = bufferPreprocessing(buf, lastTransparency);
412

  
411
		
412
		if(lastRenderBuffer != null)
413
			lastRenderBuffer.dispose();
413 414
		//Buffer filtrado para renderizar
414 415
		lastRenderBuffer = grid.getRasterBuf();
415 416
		drawer.setBuffer(lastRenderBuffer); // Buffer de datos a renderizar
......
464 465
		} catch (NoninvertibleTransformException e) {
465 466
			LoggerFactory.getLogger(getClass()).debug("Transformation error", e);
466 467
		}
468
		
469
		if(buf != null)
470
			buf.dispose();
471
		
467 472
		return;
468 473
		// long t2 = new Date().getTime();
469 474
		// System.out.println("Renderizando Raster: " + ((t2 - t1) / 1000D) + ", secs.");
......
568 573
			} catch (ProcessInterruptedException e1) {
569 574
			}
570 575
		}
576
		
577
		if(buf != null)
578
			buf.dispose();
579
		if(transparencyBuffer != null)
580
			transparencyBuffer.dispose();
571 581
	}
572 582

  
573 583
	/**
......
921 931
		callVisualPropertyChanged(new VisualPropertyEvent(e.getSource()));
922 932
	}
923 933

  
924
	/**
925
	 * Sets buffers to null
926
	 */
927
	public void free() {
928
		if (lastTransparency != null)
929
			lastTransparency.free();
930
		if (grid != null && grid instanceof GridImpl)
931
			((GridImpl)grid).free();
932
		if (getFilterList() != null && getFilterList() instanceof DefaultRasterFilterList)
933
			((DefaultRasterFilterList)getFilterList()).free();
934
		grid = null;
935
		dataStore = null;
936
		if (lastRenderBuffer != null)
937
			lastRenderBuffer.free();
938
		lastRenderBuffer = null;
939
	}
940

  
941 934
	/*
942 935
	 * (non-Javadoc)
943 936
	 * @see org.gvsig.tools.persistence.Persistent#loadFromState(org.gvsig.tools.persistence.PersistentState)
......
972 965
		definition.addDynFieldList("renderBands").setClassOfItems(int.class).setMandatory(false);
973 966
		//definition.addDynFieldObject("filterList").setClassOfValue(RasterFilterList.class).setMandatory(false);
974 967
	}
968
	
969
	/**
970
	 * Sets buffers to null
971
	 */
972
	public void dispose() {
973
		if (lastTransparency != null)
974
			lastTransparency.dispose();
975
		if (grid != null)
976
			grid.dispose();
977
		if (getFilterList() != null)
978
			getFilterList().dispose();
979
		if (lastRenderBuffer != null)
980
			lastRenderBuffer.dispose();
981
		try {
982
			finalize();
983
		} catch (Throwable e) {
984
		}
985
	}
986
	
987
	/*
988
	 * (non-Javadoc)
989
	 * @see java.lang.Object#finalize()
990
	 */
991
	protected void finalize() throws Throwable {
992
		grid                     = null;
993
		dataStore                = null;
994
		renderBands              = null;
995
        drawer                   = null;
996
		lastTransparency         = null;
997
		filterList               = null;
998
        lastRenderBuffer         = null;
999
        ulPxRequest              = null;
1000
        lrPxRequest              = null;
1001
		lastGraphics             = null;
1002
		lastViewPortData         = null;
1003
		viewDimension            = null;
1004
		
1005
		if(visualPropertyListener != null) {
1006
			visualPropertyListener.clear();
1007
			visualPropertyListener = null;
1008
		}
1009
		super.finalize();
1010
	}
975 1011

  
976 1012
}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/grid/render/ImageDrawer.java
53 53
	private int           width     = 0;
54 54
	private int           height    = 0;
55 55
	private DefaultRender rendering = null;
56

  
56
	
57 57
	public ImageDrawer(DefaultRender rendering) {
58 58
		this.rendering = rendering;
59 59
	}
......
292 292
		this.width = w;
293 293
		this.height = h;
294 294
	}
295
	
296
	public void dispose() {
297
		if(rasterBuf != null)
298
			rasterBuf.dispose();
299
		try {
300
			finalize();
301
		} catch (Throwable e) {
302
		}
303
	}
304
	
305
	/*
306
	 * (non-Javadoc)
307
	 * @see java.lang.Object#finalize()
308
	 */
309
	protected void finalize() throws Throwable {
310
		step        = null;
311
		rendering   = null;
312
		rasterBuf   = null;
313
		super.finalize();
314
	}
295 315

  
296 316
}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/grid/GridWriter.java
212 212
	/**
213 213
	 * Releases buffer resources
214 214
	 */
215
	public void free() {
215
	public void dispose() {
216 216
		if (rasterBuf != null) {
217
			rasterBuf.free();
218
			rasterBuf = null;
217
			rasterBuf.dispose();
219 218
		}
219
		try {
220
			finalize();
221
		} catch (Throwable e) {
222
		}
220 223
	}
224
	
225
	/*
226
	 * (non-Javadoc)
227
	 * @see java.lang.Object#finalize()
228
	 */
229
	protected void finalize() throws Throwable {
230
		rasterBuf     = null;
231
		extent        = null;
232
		super.finalize();
233
	}
221 234
}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/grid/filter/pansharp/PanSharpeningFilter.java
125 125
		} catch (ProcessInterruptedException e) {
126 126
			//TODO: Gestionar cancelaci?n de escritura
127 127
		}
128
		rasterResult.free();
128
		rasterResult.dispose();
129 129
	}
130 130

  
131 131
	public void pre() {	
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/grid/filter/RasterFilterListManagerImpl.java
427 427
		// TODO Auto-generated method stub
428 428
		return null;
429 429
	}
430
	
431
	/*
432
	 * (non-Javadoc)
433
	 * @see java.lang.Object#finalize()
434
	 */
435
	protected void finalize() throws Throwable {
436
		rasterFilterList           = null;
437
		if(managers != null) {
438
			managers.clear();
439
			managers = null;
440
		}
441
		if(filterList != null) {
442
			filterList.clear();
443
			filterList = null;
444
		}
445
		super.finalize();
446
	}
430 447
}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/grid/filter/DefaultRasterFilterList.java
75 75
	                                filterListListener     = new ArrayList<FilterListChangeListener>();
76 76
	private RasterFilterListManagerImpl
77 77
                                    manager                = null;
78

  
78
	
79 79
	/**
80 80
	 * Asigna un listener a la lista que ser? informado cuando cambie un
81 81
	 * filtro o posici?n en la lista.
......
691 691
		return newFilter;
692 692
	}
693 693

  
694
	/**
695
	 * Releases buffer resources
696
	 */
697
	public void free() {
698
		if (rasterBuf != null)
699
			rasterBuf.free();
700
		if (alphaBand != null)
701
			alphaBand.free();
702
		rasterBuf = null;
703
		alphaBand = null;
704
		for (int i = 0; i < lenght(); i++)
705
			((BaseRasterFilter) list.get(i)).free();
706
	}
707
	
708 694
	/*
709 695
	 * (non-Javadoc)
710 696
	 * @see org.gvsig.tools.persistence.Persistent#loadFromState(org.gvsig.tools.persistence.PersistentState)
......
768 754
			//definition.addDynFieldList("paramlist").setClassOfItems(PersistencyFilterParam.class).setMandatory(false);
769 755
		}
770 756
	}
757
	
758
	/**
759
	 * Releases buffer resources
760
	 */
761
	public void dispose() {
762
		if (rasterBuf != null)
763
			rasterBuf.dispose();
764
		if (alphaBand != null)
765
			alphaBand.dispose();
766
		/*if(list != null) {
767
			for (int i = 0; i < lenght(); i++)
768
				((BaseRasterFilter) list.get(i)).dispose();
769
		}*/
770
		try {
771
			finalize();
772
		} catch (Throwable e) {
773
		}
774
	}
775
	
776
	/*
777
	 * (non-Javadoc)
778
	 * @see java.lang.Object#finalize()
779
	 */
780
	protected void finalize() throws Throwable {
781
		rasterBuf           = null;
782
		alphaBand           = null;
783
		if(filterListListener != null) {
784
			filterListListener.clear();
785
			filterListListener = null;
786
		}
787
		if(status != null) {
788
			status.clear();
789
			status = null;
790
		}
791
		if(list != null) {
792
			list.clear();
793
			list = null;
794
		}
795
		super.finalize();
796
	}
771 797
}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/grid/GridImpl.java
95 95
	private ColorTable  			palette = null;
96 96
	private RasterFilterList		filterList = null;
97 97

  
98

  
99

  
100 98
	/**
101 99
	 * Crea un grid a partir de un MultiRasterDataset. Usa el extent de la fuente de datos como
102 100
	 * extent completo y el extent pasado como par?metro como extensi?n de ventana.
......
1197 1195
		return layerExtent;
1198 1196
	}
1199 1197

  
1200
	/**
1201
	 * Releases buffer resources
1198
	/*
1199
	 * (non-Javadoc)
1200
	 * @see org.gvsig.tools.dispose.Disposable#dispose()
1202 1201
	 */
1203
	public void free() {
1202
	public void dispose() {
1204 1203
		if (rasterBuf != null)
1205
			rasterBuf.free();
1204
			rasterBuf.dispose();
1205
		if(reader != null)
1206
			reader.dispose();
1207
		if(writer != null)
1208
			writer.dispose();
1209
		if(statistic != null)
1210
			statistic.dispose();
1206 1211
		//if (filterList != null)
1207 1212
			//filterList.free();
1208 1213
		if (writer != null)
1209
			writer.free();
1214
			writer.dispose();
1215
		try {
1216
			finalize();
1217
		} catch (Throwable e) {
1218
		}
1210 1219
	}
1220
	
1221
	/*
1222
	 * (non-Javadoc)
1223
	 * @see java.lang.Object#finalize()
1224
	 */
1225
	protected void finalize() throws Throwable {
1226
		bands = null;
1227
		rasterBuf = null;
1228
		reader = null;
1229
		writer = null;
1230
		windowExtent = null;
1231
		layerExtent = null;
1232
		statistic = null;
1233
		palette = null;
1234
		filterList = null;
1235
		super.finalize();
1236
	}
1211 1237
}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/grid/GridReader.java
246 246
	public void setBandToOperate(int band){
247 247
		this.bandToOperate = band;
248 248
	}
249
	
250
	public void dispose() {
251
		if(rasterBuf != null)
252
			rasterBuf.dispose();
253
		try {
254
			finalize();
255
		} catch (Throwable e) {
256
		}
257
	}
258
	
259
	/*
260
	 * (non-Javadoc)
261
	 * @see java.lang.Object#finalize()
262
	 */
263
	protected void finalize() throws Throwable {
264
		dataStore      = null;
265
		rasterBuf      = null;
266
		bands          = null;
267
		defaultNoData  = null;
268
		super.finalize();
269
	}
249 270
}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/grid/GridStatistic.java
178 178
		return statisticsCalculated;
179 179
	}
180 180
	
181
	public void dispose() {
182
		try {
183
			finalize();
184
		} catch (Throwable e) {
185
		}
186
	}
187
	
188
	/*
189
	 * (non-Javadoc)
190
	 * @see java.lang.Object#finalize()
191
	 */
192
	protected void finalize() throws Throwable {
193
		max = null;
194
		min = null;
195
		mean = null;
196
		variance = null;
197
		grid = null;
198
		super.finalize();
199
	}
181 200
}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/buffer/DefaultDataServerWriter.java
267 267
	public void setAlphaBuffer(Buffer alphaBuffer) {
268 268
		this.alphaBuffer = alphaBuffer;
269 269
	}
270

  
271
	public void dispose() {
272
		if(buffer != null)
273
			buffer.dispose();
274
		if(alphaBuffer != null)
275
			alphaBuffer.dispose();
276
	}
270 277
}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/buffer/RasterMemoryBuffer.java
42 42
    private FloatBand[]     floatBuf = null;
43 43
    private DoubleBand[]    doubleBuf = null;
44 44
    
45
    public class ByteBand extends RasterBand{
45
    public class ByteBand extends RasterBand {
46 46
    	public byte[][] 	buf = null;
47 47
    	
48
    	public ByteBand(int height, int width, boolean malloc){
48
    	public ByteBand(int height, int width, boolean malloc) {
49 49
    		super(height, width);
50 50
    		if(malloc)
51 51
    			buf = new byte[height][width];
......
55 55
			return buf[line];
56 56
		}
57 57
		
58
		public void setLine(int line, Object value){
58
		public void setLine(int line, Object value) {
59 59
			buf[line] = (byte[])value;
60 60
		}
61 61
		
62
		public Object getBuf(){
62
		public Object getBuf() {
63 63
			return buf;
64 64
		}
65
		
66
		public void dispose() {
67
			buf = null;
68
		}
69
		
70
		/*
71
		 * (non-Javadoc)
72
		 * @see java.lang.Object#finalize()
73
		 */
74
		protected void finalize() throws Throwable {
75
			buf = null;
76
			super.finalize();
77
		}
65 78
    }
66 79
    
67 80
    public class ShortBand extends RasterBand{
......
84 97
		public Object getBuf(){
85 98
			return buf;
86 99
		}
100
		
101
		public void dispose() {
102
			buf = null;
103
		}
104
		
105
		/*
106
		 * (non-Javadoc)
107
		 * @see java.lang.Object#finalize()
108
		 */
109
		protected void finalize() throws Throwable {
110
			buf = null;
111
			super.finalize();
112
		}
87 113
    }
88 114

  
89 115
	public class IntBand extends RasterBand{
......
106 132
		public Object getBuf(){
107 133
			return buf;
108 134
		}
135
		
136
		public void dispose() {
137
			buf = null;
138
		}
139
		
140
		/*
141
		 * (non-Javadoc)
142
		 * @see java.lang.Object#finalize()
143
		 */
144
		protected void finalize() throws Throwable {
145
			buf = null;
146
			super.finalize();
147
		}
109 148
	}
110 149

  
111 150
	public class FloatBand extends RasterBand{
......
128 167
		public Object getBuf(){
129 168
			return buf;
130 169
		}
170
		
171
		public void dispose() {
172
			buf = null;
173
		}
174
		
175
		/*
176
		 * (non-Javadoc)
177
		 * @see java.lang.Object#finalize()
178
		 */
179
		protected void finalize() throws Throwable {
180
			buf = null;
181
			super.finalize();
182
		}
131 183
	}
132 184

  
133 185
	public class DoubleBand extends RasterBand{
......
150 202
		public Object getBuf(){
151 203
			return buf;
152 204
		}
205
		
206
		public void dispose() {
207
			buf = null;
208
		}
209
		
210
		/*
211
		 * (non-Javadoc)
212
		 * @see java.lang.Object#finalize()
213
		 */
214
		protected void finalize() throws Throwable {
215
			buf = null;
216
			super.finalize();
217
		}
153 218
	}
154 219
	
155 220
    /**
......
1159 1224
    public boolean isReadOnlyBuffer() {
1160 1225
    	return false;
1161 1226
    }
1162

  
1227
    
1163 1228
	/**
1164 1229
	 * Libera el buffer de memoria
1165 1230
	 */
1166
	public void free(){
1167
		byteBuf = null;
1168
	    shortBuf = null;
1169
	    intBuf = null;
1170
	    floatBuf = null;
1171
	    doubleBuf = null;
1231
	public void dispose() {
1232
		if(byteBuf != null) {
1233
			for (int i = 0; i < byteBuf.length; i++) {
1234
				byteBuf[i].dispose();
1235
				byteBuf[i] = null;
1236
			}
1237
			byteBuf = null;
1238
		}
1239
		if(shortBuf != null) {
1240
			for (int i = 0; i < shortBuf.length; i++) {
1241
				shortBuf[i].dispose();
1242
				shortBuf[i] = null;
1243
			}
1244
			shortBuf = null;
1245
		}
1246
		if(intBuf != null) {
1247
			for (int i = 0; i < intBuf.length; i++) {
1248
				intBuf[i].dispose();
1249
				intBuf[i] = null;
1250
			}
1251
			intBuf = null;
1252
		}
1253
		if(floatBuf != null) {
1254
			for (int i = 0; i < floatBuf.length; i++) {
1255
				floatBuf[i].dispose();	
1256
				floatBuf[i] = null;
1257
			}
1258
			floatBuf = null;
1259
		}
1260
		if(doubleBuf != null) {
1261
			for (int i = 0; i < doubleBuf.length; i++) {
1262
				doubleBuf[i].dispose();
1263
				doubleBuf[i] = null;
1264
			}
1265
			doubleBuf = null;
1266
		}
1172 1267
	}
1173 1268
	
1174
	//****************************************************
1175
	//*********Implementing Disposable methods************
1176
	//****************************************************
1177
	
1178
	public void dispose() {
1179
		free();
1269
	/*
1270
	 * (non-Javadoc)
1271
	 * @see java.lang.Object#finalize()
1272
	 */
1273
	protected void finalize() throws Throwable {
1274
		if(byteBuf != null) {
1275
			for (int i = 0; i < byteBuf.length; i++) {
1276
				byteBuf[i] = null;
1277
			}
1278
			byteBuf = null;
1279
		}
1280
		if(shortBuf != null) {
1281
			for (int i = 0; i < shortBuf.length; i++) {
1282
				shortBuf[i] = null;
1283
			}
1284
			shortBuf = null;
1285
		}
1286
		if(intBuf != null) {
1287
			for (int i = 0; i < intBuf.length; i++) {
1288
				intBuf[i] = null;
1289
			}
1290
			intBuf = null;
1291
		}
1292
		if(floatBuf != null) {
1293
			for (int i = 0; i < floatBuf.length; i++) {
1294
				floatBuf[i] = null;
1295
			}
1296
			floatBuf = null;
1297
		}
1298
		if(doubleBuf != null) {
1299
			for (int i = 0; i < doubleBuf.length; i++) {
1300
				doubleBuf[i] = null;
1301
			}
1302
			doubleBuf = null;
1303
		}
1304
		super.finalize();
1180 1305
	}
1181 1306

  
1182 1307
}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/buffer/cache/CacheDataFromDriverServer.java
48 48
 * @author Nacho Brodin (nachobrodin@gmail.com)
49 49
 *
50 50
 */
51
public class CacheDataFromDriverServer implements ICacheDataSource{
51
public class CacheDataFromDriverServer implements ICacheDataSource {
52 52
	
53 53
	private DefaultRasterProvider           dataset    = null;
54 54
	private Extent                          pageExtent = null; 
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/buffer/cache/RasterCache.java
68 68
			 return null;
69 69
		 }
70 70
		 
71
		 public void setLine(int line, Object value){
71
		 public void setLine(int line, Object value) {
72 72
			
73 73
		 }
74 74
		 
75
		 public Object getBuf(){
75
		 public Object getBuf() {
76 76
			 return null;
77 77
		 }
78 78
		 
......
80 80
			for (int i = 0; i < cacheDataServer.length; i++) 
81 81
				((CacheDataServer)cacheDataServer[i]).setName(null, numBand, i);
82 82
		 }
83
		 
84
		 public void dispose() {
85
			 for (int i = 0; i < cacheDataServer.length; i++) {
86
				 cacheDataServer[i] = null;
87
			 }
88
			 cacheDataServer = null;
89
		 }
83 90
	}
84 91
	 
85 92
    /**
......
109 116
		cache.clearCache(this.nBands);
110 117
	}
111 118
	
112
	/**
113
	 * Borra la cach? cuando se elimina el objeto RasterCache ya que
114
	 * los trozos ya no pueden ser referenciados.
115
	 */
116
	protected void finalize() throws Throwable {
117
		free();
118
	}
119
	
120 119
	/*
121 120
     * (non-Javadoc)
122 121
     * @see org.gvsig.raster.driver.Buffer#isBandSwitchable()
......
811 810
	 * (non-Javadoc)
812 811
	 * @see org.gvsig.raster.dataset.Buffer#free()
813 812
	 */
814
	public void free(){
815
		cache.getAccessPage().free();
816
		for (int i = 0; i < cache.getNPags(); i++) {
817
			if(cache.getPageBufferFromNumberCachePage(i) != null)
818
				cache.getPageBufferFromNumberCachePage(i).free();
813
	public void dispose() {
814
		if(cache != null) {
815
			if(cache.getAccessPage() != null)
816
				cache.getAccessPage().dispose();
817
			for (int i = 0; i < cache.getNPags(); i++) {
818
				if(cache.getPageBufferFromNumberCachePage(i) != null)
819
					cache.getPageBufferFromNumberCachePage(i).dispose();
820
			}
821
			try {
822
				clearCache();
823
			} catch (IOException e) {
824
			}
825
			cache = null;
819 826
		}
820
		try {
821
			clearCache();
822
		} catch (IOException e) {
823
		}
827
		lru = null;
824 828
	}
825 829
	
826
	//****************************************************
827
	//*********Implementing Disposable methods************
828
	//****************************************************
829
	
830 830
	/*
831 831
	 * (non-Javadoc)
832
	 * @see org.gvsig.tools.dispose.Disposable#dispose()
832
	 * @see java.lang.Object#finalize()
833 833
	 */
834
	public void dispose() {
835
		free();
834
	protected void finalize() throws Throwable {
835
		cache = null;
836
		lru = null;
837
		super.finalize();
836 838
	}
837 839
}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/buffer/cache/PageBuffer.java
754 754
		return null;
755 755
	}
756 756
	
757
	/**
758
	 * Libera el buffer de memoria
759
	 */
760
	public void free() {
761
		if(pageBandBuffer != null)
762
			for (int i = 0; i < pageBandBuffer.length; i++) 
763
				pageBandBuffer[i].free();
764
	}
765
	
766 757
	/*
767 758
	 * (non-Javadoc)
768 759
	 * @see org.gvsig.fmap.dal.coverage.buffer.Buffer#getAdjustedWindow(int, int, int)
......
824 815
	 * @see org.gvsig.tools.dispose.Disposable#dispose()
825 816
	 */
826 817
	public void dispose() {
827
		free();
818
		if(pageBandBuffer != null) {
819
			for (int i = 0; i < pageBandBuffer.length; i++) { 
820
				pageBandBuffer[i].dispose();
821
			}
822
		}
823
		try {
824
			finalize();
825
		} catch (Throwable e) {
826
		}
828 827
	}
828
	
829
	/*
830
	 * (non-Javadoc)
831
	 * @see java.lang.Object#finalize()
832
	 */
833
	protected void finalize() throws Throwable {
834
		limits               = null;
835
		histogramComputer    = null;
836
		if(pageBandBuffer != null) {
837
			for (int i = 0; i < pageBandBuffer.length; i++) { 
838
				pageBandBuffer[i] = null;
839
			}
840
			pageBandBuffer = null;
841
		}
842
		limits = null;
843
		super.finalize();
844
	}
829 845
}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/buffer/cache/WriterBufferCompleteServer.java
177 177
		// TODO Auto-generated method stub
178 178
		
179 179
	}
180

  
181
	public void dispose() {
182
		// TODO Auto-generated method stub
183
		
184
	}
180 185
}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/buffer/cache/RasterReadOnlyBuffer.java
97 97
	private int            offset = 1;
98 98
	
99 99
	private int            bufWidth, bufHeight;
100
	 
101
		/**
102
		 * Constructor. Asigna las variables de inicializaci?n y crea la estructura de 
103
		 * la cach? con los datos pasados.
104
		 * @param dataType Tipo de dato
105
		 * @param width Ancho
106
		 * @param height Alto
107
		 * @param bandNr Banda
108
		 * @param orig
109
		 * @throws RasterDriverException 
110
		 * @throws NotSupportedExtensionException 
111
		 * @throws FileNotFoundException 
112
		 */
100
	
101
	/**
102
	 * Constructor. Asigna las variables de inicializaci?n y crea la estructura de 
103
	 * la cach? con los datos pasados.
104
	 * @param dataType Tipo de dato
105
	 * @param width Ancho
106
	 * @param height Alto
107
	 * @param bandNr Banda
108
	 * @param orig
109
	 * @throws RasterDriverException 
110
	 * @throws NotSupportedExtensionException 
111
	 * @throws FileNotFoundException 
112
	 */
113 113
	public RasterReadOnlyBuffer(int dataType, int width, int height, int nBand) {
114 114
		this.dataType = dataType;
115 115
				this.width = width;
......
632 632
	
633 633
	/*
634 634
	 * (non-Javadoc)
635
	 * @see org.gvsig.raster.dataset.Buffer#free()
635
	 * @see org.gvsig.tools.dispose.Disposable#dispose()
636 636
	 */
637
	public void free() {
638
		if(page != null)
639
			page.free();
640
		datasource = null;
641
		bandList = null;
637
	public void dispose() {
638
		if(page != null) {
639
			page.dispose();
640
		}
641
		if(secondPage != null) {
642
			secondPage.dispose();
643
		}
644
		try {
645
			finalize();
646
		} catch (Throwable e) {
647
		}
642 648
	}
643

  
644
	//****************************************************
645
	//*********Implementing Disposable methods************
646
	//****************************************************
647 649
	
648 650
	/*
649 651
	 * (non-Javadoc)
650
	 * @see org.gvsig.tools.dispose.Disposable#dispose()
652
	 * @see java.lang.Object#finalize()
651 653
	 */
652
	public void dispose() {
653
		free();
654
	protected void finalize() throws Throwable {
655
		page = null;
656
		secondPage = null;
657
		query            = null;
658
		drawableBands    = null;
659
		bandList         = null;
660
		datasource       = null;
661
		super.finalize();
654 662
	}
655 663
}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/buffer/RasterBand.java
25 25

  
26 26

  
27 27

  
28
public abstract class RasterBand implements Band{	
28
public abstract class RasterBand implements Band {	
29 29
	public double 			noDataValue = -99999;
30 30
    protected int 			width;
31 31
    protected int 			height;
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/buffer/RasterBuffer.java
665 665
	 */
666 666
	public void accept(Visitor visitor) throws BaseException {
667 667
		RasterTask task = RasterTaskQueue.get(Thread.currentThread().toString());
668
		
668

  
669 669
		switch (getDataType()) {
670 670
		case Buffer.TYPE_BYTE:
671 671
			for (int i = 0; i < getBandCount(); i++) {
......
717 717
				}
718 718
			}
719 719
			break;
720
		}
720 721
	}
722

  
723
	/*
724
	 * (non-Javadoc)
725
	 * @see java.lang.Object#finalize()
726
	 */
727
	protected void finalize() throws Throwable {
728
		histogramComputer          = null;
729
		interp                     = null;
730
		store                      = null;
731
		dataExtent                 = null;
732
		cancel                     = null;
733
		noDataValue                = null;
734
		super.finalize();
721 735
	}
722 736

  
723 737
}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/provider/DefaultRasterProvider.java
99 99
import org.gvsig.timesupport.Interval;
100 100
import org.gvsig.timesupport.Time;
101 101
import org.gvsig.tools.dynobject.DynObject;
102
import org.gvsig.tools.task.TaskStatus;
102 103

  
103 104
/**
104 105
 * Base class for all raster providers. 
......
325 326
	abstract public RasterProvider load();
326 327

  
327 328
	/**
328
	 * Cierra el fichero y libera los recursos.
329
	 */
330
	abstract public void close();
331

  
332
	/**
333 329
	 * Obtiene el ancho de la imagen
334 330
	 * @return Ancho de la imagen
335 331
	 */
......
376 372
			q.getType() == DefaultRasterQuery.TYPE_PX_SIZE || 
377 373
			q.getType() == DefaultRasterQuery.TYPE_PX) {
378 374
			return getWindow(q.getPixelX(), q.getPixelY(), q.getPixelW(), q.getPixelH(), 
379
					q.getBandList(), q.getBuffer());
375
					q.getBandList(), q.getBuffer(), q.getTaskStatus());
380 376
		}
381 377
		
382 378
		if(q.getType() == DefaultRasterQuery.TYPE_COORDS_SIZE) {
383
			return getWindow(q.getBBox(), q.getBufWidth(), q.getBufHeight(), q.getBandList(), q.getBuffer(), q.isAdjustToExtent());
379
			return getWindow(q.getBBox(), q.getBufWidth(), q.getBufHeight(), 
380
					q.getBandList(), q.getBuffer(), q.isAdjustToExtent(), q.getTaskStatus());
384 381
		}
385 382
		
386 383
		if(q.getType() == DefaultRasterQuery.TYPE_COORDS) {
387 384
			if(q.getBBox() == null)
388
				return getWindow(q.getX(), q.getY(), q.getW(), q.getH(), q.getBandList(), q.getBuffer(), q.isAdjustToExtent());
385
				return getWindow(q.getX(), q.getY(), q.getW(), q.getH(), 
386
						q.getBandList(), q.getBuffer(), q.isAdjustToExtent(), q.getTaskStatus());
389 387
			else
390
				return getWindow(q.getBBox(), q.getBandList(), q.getBuffer());
388
				return getWindow(q.getBBox(), q.getBandList(), q.getBuffer(), q.getTaskStatus());
391 389
		}
392 390
		
393 391
		if(q.getType() == DefaultRasterQuery.TYPE_COORDS_SIZE_TILED) {
394
			getWindow(q.getBBox(), q.getBufWidth(), q.getBufHeight(), q.getBandList(), q.getTileListener());
392
			getWindow(q.getBBox(), q.getBufWidth(), q.getBufHeight(), 
393
					q.getBandList(), q.getTileListener(), q.getTaskStatus());
395 394
		}
396 395
		return null;
397 396
	}
......
408 407
	 * @throws RasterDriverException
409 408
	 */
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff