Antes de empezar, complete el Ejercicio 1.3: Análisis de posibles fugas.
Ahora ya sabe que la cola secundaria es la cola que se está fugando. Echemos un vistazo al código fuente para encontrar el problema.
Para abrir el origen de la cola secundaria y arreglar la fuga de memoria:
public class SecondaryQueue { private Vector myQ; private int currentPos; public SecondaryQueue(){ myQ = new Vector(); currentPos=0; } public void add(Object obj){ myQ.add(obj); } public Object getNext(){ // First In First Out. // Get an object exactly once, // currentPos keeps track of last item removed. if(myQ.size()>currentPos){ currentPos++; return myQ.get(currentPos-1); } } }
public class SecondaryQueue { private Vector myQ; private int currentPos; public SecondaryQueue(){ myQ = new Vector(); currentPos=0; } public void add(Object obj){ myQ.add(obj); } public Object getNext(){ if(myQ.size()>0){ return myQ.remove(0); } return null; } }
En el menú principal, pulsa Archivo > Guardar para guardar los cambios.
Vuelva a crear el perfil de la aplicación, capturando los vuelcos de almacenamiento dinámico tal como lo ha hecho antes. Cuando efectúe el análisis en busca de fugas, en la vista Posibles fugas aparecerá el mensaje "El resultado de Análisis de fugas no dio como resultado ninguna posible fuga". Ha arreglado la fuga en la cola secundaria, y el algoritmo Posibles fugas no ha encontrado ninguna fuga adicional.
Finalice esta guía de aprendizaje revisando los materiales de la sección Resumen.