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;

Rispondi quotando

