SAX XML Warning

Sou novo em programação java, então quem puder me ajudar, ficarei muito grato. Meu código abaixo está me retornando 2 warnings que não sei como acertar. Alguém se habilita. Muito obrigado pessoal.

package xmlgrandesax;

import java.io.File;
import com.sun.management.OperatingSystemMXBean;
import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;

/**********************************************************/
class Usuario implements Comparable{
private String nome;
private int ocorrencias;

public Usuario() {
}

public Usuario(String nome, int ocorrencias) {
	this.nome = nome;
	this.ocorrencias = ocorrencias;
}

public String getNome() {
	return nome;
}

public int getOcorrencias() {
	return ocorrencias;
}

 public void incOcorrencias() {
	this.ocorrencias++;
}

public void setNome(String nome) {
	this.nome = nome;
}

public void setOcorrencias(int ocorrencias) {
	this.ocorrencias = ocorrencias;
}

public boolean equals(Object obj) {
	if (obj == null) {
		return false;
	}
	if (getClass() != obj.getClass()) {
		return false;
	}
	final Usuario other = (Usuario) obj;
	if (this.nome == null || !this.nome.equals(other.nome)) {
		return false;
	}
	return true;
}

public int compareTo(Object o) {
	if (o == null)
		return 0;
	final Usuario other = (Usuario) o;

	if (this.ocorrencias > other.getOcorrencias())
		return -1;
	else if (this.ocorrencias < other.getOcorrencias())
		return 1;

	return 0;
}

public String toString(){
	StringBuffer str = new StringBuffer("Nome: ");
	str.append(nome);
	str.append("\t");
 //   str.append("Ocorrências: ");
	str.append(ocorrencias);

	return str.toString();
}

}

/**********************************************************/

class ListaDeUsuarios extends ArrayList {

public ListaDeUsuarios() {
	super();
}

public void incOcorrencia(Usuario usuario){
	if (this.contains(usuario)){
	   this.get(this.indexOf(usuario)).incOcorrencias();
	   usuario = null;
	}
	else
		this.add(usuario);
}

public void sort(){
	Collections.sort(this);
}

public String toString(){
	StringBuffer str = new StringBuffer();
	for (Iterator<Usuario> it = this.iterator(); it.hasNext();) {
		Usuario usuario = it.next();
		str.append(usuario);
		str.append("\n");
	}

	return str.toString();
}

}

public class MySaxApp extends DefaultHandler {

boolean inUsuario;
ListaDeUsuarios list;

public MySaxApp() {
    super();
    list = new ListaDeUsuarios();
}

public static void main (String args[]) throws Exception {

    if (args.length != 1) {
        System.err.println("Modo de usar: MySAXApp <nome do arquivo XML>");
        System.exit(1);
    }
    // Usa uma instância da propria classe como o gerenciador de eventos SAX
    DefaultHandler handler = new MySaxApp();

    // Usa o parsing default (sem validação)
    SAXParserFactory factory = SAXParserFactory.newInstance();

    try {

        // Faz o parsing
        SAXParser saxParser = factory.newSAXParser();


        OperatingSystemMXBean osM = (OperatingSystemMXBean)ManagementFactory.getOperatingSystemMXBean();
        MemoryMXBean menM = (MemoryMXBean)ManagementFactory.getMemoryMXBean();

        System.out.println("Tempo de CPU:" + osM.getProcessCpuTime());
        System.out.println("Memoria: " + osM.getCommittedVirtualMemorySize());
        System.out.println("Memoria Livre: " + osM.getFreePhysicalMemorySize());
        long tempoAntes = System.nanoTime();
        saxParser.parse(new File(args[0]), handler );
        long tempoDepois = System.nanoTime();
        System.out.println("Tempo de CPU:" + osM.getProcessCpuTime());
        System.out.println("Memoria: " + osM.getCommittedVirtualMemorySize());
        System.out.println("Memoria Livre: " + osM.getFreePhysicalMemorySize());
        System.out.println("Tempo total (ns): "+ ((tempoDepois -tempoAntes)));

  } catch (Throwable t) {
    t.printStackTrace();
  }
  System.exit(0);
}

public void characters(char[] ch, int start, int length) throws SAXException {
    if (inUsuario){
        list.incOcorrencia(new Usuario(new String(ch, start, length),1));
    }
}

public void endDocument() throws SAXException {
    list.sort();
    System.out.println(list);
    System.out.println("total: "+list.size());
}

public void endElement(String uri, String localName, String qName) throws SAXException {
    inUsuario = false;
}

public void processingInstruction(String target, String data) throws SAXException {
    super.processingInstruction(target, data);
}

public void startDocument() throws SAXException {

}

public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
    if (qName.equals("author")){
        inUsuario = true;
    }
}

}