ciao a tutti.

quel che segue mi causa un'eccezione OutOfMemory che passa da
(freeMemory) 26743960 a 296584 dopo il ciclo.
ho provato a mettere a null tutti gli oggetti utilizzati ma non cambia niente.

sto utilizzando un server JBoss 4 e anche a modificare all'interno del file run.bat i parametri
-Xms512m -Xmx1024m -XX:MaxPermSize=1024m -XX:PermSize=512m

non mi cambia niente
anzi. non mi vede nemmeno la MaxPermSize a 1 gb...
dandomi maxMemory() = 66 mega

mi aiutate?
sono a vostra disposizione se non mi sono spiegato bene!

codice:
Workbook wb = (Workbook)req.getSession().getAttribute("fileXls");
        req.getSession().removeAttribute("fileXls");
        System.out.println("Free Memory"+Runtime.getRuntime().freeMemory());
        
        try {
        	
        	Sheet[] arraySheet = wb.getSheets();
        	
        	td = new TemplateDao();
        	
        	Cell[] campiRiga = null;
        	ArrayList campiFinali = null;
        	String campoFormattato = "";
        	ControlloCampo tempo = null;
        	String tipoControllo = "";
        	//Vector vettoreCampiSC01 = new Vector();  
        	ArrayList arrayCampiSC01 = new ArrayList();
        	
        	Vector listaControlli = td.getControlli("SC_01");
        	Sheet sc01 = arraySheet[0];
        	for(int i = 1; i < sc01.getRows(); i++){
        		campiRiga = sc01.getRow(i);        		
        		campiFinali = new ArrayList();
        		campoFormattato = "";
        		for(int k = 0; k < campiRiga.length; k++){
        			tempo = (ControlloCampo)listaControlli.get(k);
        			tipoControllo = tempo.getTipoCampo();
        			if(tipoControllo.equals("CHAR")){
        				campoFormattato = checkChar(campiRiga[k],tempo);        				
        			}else if(tipoControllo.equals("DATE")){
        				campoFormattato = checkDate(campiRiga[k],tempo);
        			}else if(tipoControllo.equals("NUM")){
        				campoFormattato = checkNumCollection(campiRiga[k],tempo);
        			}
        			if (campoFormattato != ""){
        				campiFinali.add(campoFormattato);
	    			}else{
	    				//formato errato
	    				String errore = "Errore nella formattazione del campo "+sc01.getCell(k, 0).getContents()+" alla riga "+i;	    	            	    	            
	    	            throw new Exception(errore);
	    			}
	        			
        		}
        		arrayCampiSC01.add(campiFinali);
        		//vettoreCampiSC01.add(campiFinali);
        	}
        	
        	
        	campiRiga = null;
        	campiFinali = null;
        	campoFormattato = null;
        	tempo = null;
        	tipoControllo = null;
        	wb = null;
        	listaControlli = null;
        	sc01 = null;